LAMP+LVS+KEEPALIVED(一)
1、apache工作模式及参数说明
(1)prefork模式
prefork是Unix平台上的默认(缺省)MPM,使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接,效率高,但内存占用量比较大。
(2)worker模式
worker使用多个子进程,每个子进程有多个线程,每个线程在某个确定的时间只能维持一个连接,内存占用量比较小,适合高流量的http服务器。缺点是假如一个线程崩溃,整个进程就会连同其任何线程一起"死掉",所以要保证一个程式在运行时必须被系统识别为"每个线程都是安全的"。
(3)参数说明
2、源码安装lamp
(1)安装httpd-2.4.12
#安装过程缺少依赖的包提示:
#缺少apr-devel
configure: error: APR not found. Please read the documentation
#缺少apr-util-devel
configure: error: APR-util not found. Please read the documentation
#缺少pcre-devel
configure: error: pcre-config for libpcre not found
#使用yum来安装:
yum -y install apr-devel apr-util-devel pcre-devel
#或者源码安装apr-1.5.1和apr-util-1.5.4
cd apr-1.5.1
./configure && make && make install
cd ../apr-util-1.5.4
./configure --with-apr=/usr/local/apr/ && make && make install
#安装openssl-1.0.2a
yum -y install libgcrypt-devel.x86_64
./config && make && make install
#安装httpd-2.4.12
./configure--prefix=/usr/local/apache2 --enable-so
--enable-ssl=static --with-ssl=/usr/local/ssl/
--enable-mods-shared=all
--with-apr=/usr/local/apr/
--with-apr-util=/usr/local/apr/
make && make install
#默认会安装到/usr/local/apache2/下
#可以在./configure 时添加--prefix=/mypath
#可以通过./configure --help来查看相关编译参数,根据需求调整
(2)安装php-5.6.8
#安装过程缺少依赖包:
#缺少gcc
configure: error: no acceptable C compiler found in $PATH
#缺少libxml2-devel
configure: error: xml2-config not found. Please check your libxml2 installation
#使用yum来安装:
yum -y install gcc gcc-c++ libxml2-devel
#安装php-5.6.8
#apxs是在安装php时生成动态连接模块工具,如果不指明路径,apache就无法调用php
#一定要添加--with-apxs2=/usr/local/apache2/bin/apxs
#php安装完成后,可以看到会在httpd.conf文件添加"LoadModule php5_module modules/libphp5.so"
#动态加载php来完成解析
./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-mysql=/usr/local/mysql/ --with-apxs2=/usr/local/apache2/bin/apxs
make && make install
#默认会安装到/usr/local/php/下
#可以在./configure 时添加--prefix=/mypath 更改安装路径
#可以通过./configure --help来查看相关编译参数,根据需求调整
(3)安装mysql-advanced-5.6.23-linux-glibc2.5-x86_64
#具体安装和应用方法查看之前的mysql文档
#具体可以参考目录下的INSTALL-BINARY文件
#安装mysql,将mysql压缩解压到/usr/local
tar zxvf mysql-advanced-5.6.23-linux-glibc2.5-x86_64.tar.gz -C /uar/local/
cd /usr/local
ln -s mysql-advanced-5.6.23-linux-glibc2.5-x86_64 mysql
cd mysql
#添加mysql用户和群组
groupadd mysql
useradd -r -g mysql mysql
#修改相关目录和文件属主和所属群组
chown -R mysql .
chgrp -R mysql .
或者:chown -R mysql:mysql .
#将目录属主更改为root,避免mysql用户将目录删除
chown -R root .
chown -R mysql data
#使用mysql用户权限来初始化数据库
scripts/mysql_install_db --user=mysql
#会提示缺少perl-modules
#FATAL ERROR: please install the following Perl modules before executing scripts/mysql_install_db
yum -y install perl-Module-Install.noarch
#缺少依赖包libaio
#error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
yum -y install libaio-devel
#将mysql添加为服务
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
#将mysql的bin目录加入到PATH环境变量
#在/etc/profile最后面添加
PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
#脚本初始化已经添加mysqld脚本,如果没有直接cp /etc/init.d/mysqld
/etc/rc.d/init.d/mysqld
#启动mysql
/usr/local/mysql/bin/mysqld_safe &
#更改mysql root密码提示
#error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock'
/usr/local/mysqladmin -u root -p password --socket=/var/lib/mysql/mysql.sock
#或者
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
#在/etc/my.cnf 文件socket参数指定为/tmp/mysql.sock
socket=/tmp/mysql.sock
3、lamp连接测试
(1)设置service方式启动apache
#将启动脚本复制为/etc/init.d/httpd
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
#可以这样来停止、启动和重启apache
service httpd stop/start/restart
/etc/init.d/httpd stop/start/restart
/usr/local/apache2/bin/apachectl stop/start/restart
#或许是因为兼容性不好,无法使用chkconfig设置开机启动
chkconfig add httpd
#但是可以使用下面的方式设置为开机启动apache
(2)复制php.ini文件
cp php.ini-development /etc/php.ini
#不需要进行手动更改就可以让apache调用php
#php在编译的时候会修改httpd.conf配置文件,添加如下一行
LoadModule php5_module modules/libphp5.so
#如果在编译的时候没有指定--with-apxs2=/usr/local/apache2/bin/apxs,则apache无法加载php