1、安装PHP程序
1.1、PHP程序依赖包安装
yum -y install curl curl-devel tcl* libxml2-devel
gd gd-devel gmp-devel libjpeg* libpng freetype libjpeg-devel
libpng-devel freetype-devel libmcrypt
libmcrypt-dev bzip2 bzip2-devel libevent-devel
cp /usr/lib64/libjpeg.so /usr/lib/
1.2、解压源码包程序
cd /usr/local/src
tar zxvf php-5.3.3.tar.gz
tar zxvf gd-2.0.36RC1.tar.gz
wget
ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
tar zxvf libmcrypt-2.5.7.tar.gz
1.3、编译安装gd-2.0.36RC1程序
cd gd-2.0.36RC1
./configure --prefix=/usr/local/libgd --with-png
--with-freetype --with-jpeg && make && make
install
1.4、编译安装libmcrypt-2.5.7程序
cd /usr/local/src/libmcrypt-2.5.7
./configure && make && make
install
1.5、编译安装php-5.3.3程序
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc
\
--with-mysql=mysqlnd
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd --enable-fpm
--with-mcrypt= \
--with-libxml-dir= --enable-mbstring --with-curl \
--with-gmp= --enable-soap
--enable-inline-optimization \
--with-bz2 --with-zlib --enable-sockets
--enable-sysvsem \
--enable-sysvshm --enable-sysvmsg --enable-pcntl
\
--enable-mbregex --with-mhash --enable-bcmath
\
--enable-zip --with-pcre-regex
--with-gd=/usr/local/libgd/ \
--enable-gd-native-ttf --with-jpeg-dir
--with-png-dir \
--with-freetype-dir && make &&
make install
1.6、配置PHP文件和环境变量
cp php.ini-development
/usr/local/php/etc/php.ini
cd /usr/local/php/etc
cp php-fpm.conf.default
/usr/local/php/etc/php-fpm.conf
echo "export
PATH=\$PATH:/usr/local/php/bin:/usr/local/php/sbin" >
/etc/profile.d/php.sh
source /etc/profile.d/php.sh
2.安装Nginx服务程序
2.1、Nginx依赖包安装
yum -y install pcre pcre-devel zlib* openssl-devel
lua*
2.2、Nginx源码编译安装
cd /usr/local/src/
tar zxvf tengine-1.5.2.tar.gz
cd tengine-1.5.2
./configure --prefix=/usr/local/nginx --with-http_ssl_module
\
--with-pcre --with-http_gzip_static_module --with-file-aio
\
--with-http_stub_status_module \
--add-module=/usr/local/src/simpl-ngx_devel_kit-4192ba6/
\
--add-module=/usr/local/src/set-misc-nginx-module-master/
\
--add-module=/usr/local/src/redis2-nginx-module-master/
\
--add-module=/usr/local/src/chaoslawful-lua-nginx-module-e607b63/
\
--add-module=/usr/local/src/echo-nginx-module-master/
\
--add-module=/usr/local/src/nginx-http-concat-master/
\
--add-module=/usr/local/src/nginx-push-stream-module-master
\
--with-http_realip_module && make
&& make install
3.安装php_hidef程序
3.1、程序包下载
wget
http://pecl.php.net/get/hidef-0.1.8.tgz
3.2、源码编译安装
tar zxvf hidef-0.1.8.tgz
cd hidef-0.1.8
/usr/local/php/bin/phpize
./configure --enable-hidef
--with-php-config=/usr/local/php/bin/php-config &&make
&& make install
3.3、配置文件修改
4.安装git程序
yum -y install git
cd /usr/local/src
git clone
https://github.com/redis/hiredis.git
git clone
https://github.com/nrk/phpiredis.git
4.1、源码编译安装
cd hiredis && make && make
install
cd /usr/local/src/phpiredis
/usr/local/php/bin/phpize
./configure --enable-phpiredis
--with-hiredis-dir=/usr/local
--with-php-config=/usr/local/php/bin/php-config && make
&& make install
4.2、配置文件修改
sed -i
'/extension=msql.so/aextension=phpiredis.so'
/usr/local/php/etc/php.ini
5.1、安装包程序下载
cd /usr/local/src
wget
http://pecl.php.net/get/redis-2.2.5.tgz
5.2、源码编译安装
tar zxvf redis-2.2.5.tgz
cd redis-2.2.5 && phpize
./configure
--with-php-config=/usr/local/php/bin/php-config&& make
&& make install
5.3、配置文件修改
sed -i '/extension=msql.so/aextension=redis.so'
/usr/local/php/etc/php.ini
useradd -d /web -s /sbin/nologin www
cd /usr/local/php/etc
sed -i 's/user = nobody/user = www/g'
/usr/local/php/etc/php-fpm.conf
sed -i 's/group = nobody/group = www/g'
/usr/local/php/etc/php-fpm.conf
sed -i 's/pm.max_children = 50/pm.max_children =
600/g' /usr/local/php/etc/php-fpm.conf
sed -i 's/;pm.start_servers = 20/pm.start_servers
= 500/g' /usr/local/php/etc/php-fpm.conf
sed -i 's/;pm.min_spare_servers =
5/pm.min_spare_servers = 400/g'
/usr/local/php/etc/php-fpm.conf
sed -i 's/;pm.max_spare_servers =
35/pm.max_spare_servers = 600/g'
/usr/local/php/etc/php-fpm.conf
sed -i 's/;pm.max_requests = 500/pm.max_requests =
2000/g' /usr/local/php/etc/php-fpm.conf
sed -i 's/;pid =
\/usr\/local\/php\/var\/run\/php-fpm.pid/pid =
\/usr\/local\/php\/var\/run\/php-fpm.pid/g'
/usr/local/php/etc/php-fpm.conf
7.设置PHP和Nginx启动脚本
7.1、设置PHP程序启动脚本说明
7.1.1、将下面php-fpm脚本复制到/etc/init.d/并命名为php-fpm
#!/bin/bash
#
#
php-fpm.sh This shell this use to crontal
php-fpm.
#
# Source
function library.
.
/etc/rc.d/init.d/functions
# Source
networking configuration.
.
/etc/sysconfig/network
# Check
that networking is up.
[
"$NETWORKING" = "no" ] && exit 0
prefix=/usr/local/php
exec_prefix=${prefix}
php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pid
php_fpm_name=$(basename
${php_fpm_BIN})
lockfile=/var/lock/subsys/php-fpm
function
start(){
echo -n "start php-fpm
..."
[ -x $php_fpm ] || echo
"php-fpm no permit"
daemon
${php_fpm_BIN}
RETVAL=$?
[ $RETVAL -eq 0 ] &&
touch $lockfile
echo
return $RETVAL
}
function
stop(){
echo -n "stop
php-fpm..."
killproc
${php_fpm_name}
RETVAL=$?
[ $RETVAL -eq 0 ] &&
(rm -f $lockfile ; rm -f
${php_fpm_PID})
echo
return $RETVAL
}
function
restart(){
stop
start
}
function
checkconfig(){
echo "checking php-fpm config
..."
${php_fpm_BIN} -t
}
function
reload(){
echo
"reload the php-fpm config..."
killproc ${php_fpm_name}
-HUP
RETVAL=$?
return $RETVAL
}
function
_ngstatus(){
status -p ${php_fpm_PID}
${php_fpm_name}
}
function
showhelp(){
echo "Usage:
/etc/init.d/php-fpm.sh
{start|stop|restart|status|checkconfig|reload}"
}
case $1
in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
status)
_ngstatus
;;
checkconfig)
checkconfig
;;
*)
showhelp
;;
esa
11.1.2、赋予/etc/init.d/php-fpm执行权限
chmod +x /etc/init.d/php-fpm
11.1.3、设置php-fpm开机启动
vim /etc/rc.local
/etc/init.d/php-fpm start
11.1.4、修改php-fpm.conf将pid注释去掉,修改为你的对应地址
pid = /usr/local/webserver/php/var/run/php-fpm.pid
11.1.5、 然后就可以通过
/etc/init.d/php-fpm start|restart|stop|reload
7.2、设置Nginx启动脚本
7.2.1将下面的nginx脚本拷贝到/etc/init.d/路径下并命名为nginx
#!/bin/bash
#
# nginx.sh This shell this use to
crontal nginx.
#
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
NGINX_HOME=/usr/local/nginx
NGNIX_CONF=${NGINX_HOME}/conf/nginx.conf
NGINX_PID_FILE=${NGINX_HOME}/nginx.pid
NGINX_BIN=${NGINX_HOME}/sbin/nginx
NGINX_NAME=$(basename ${NGINX_BIN})
lockfile=/var/lock/subsys/nginx
function start(){
echo -n "start Nginx ..."
[ -x $nginx ] || echo "Nginx
no permit"
daemon ${NGINX_BIN}
RETVAL=$?
[ $RETVAL -eq 0 ] &&
touch $lockfile
echo
return $RETVAL
}
function stop(){
echo -n "stop Nginx..."
killproc $NGINX_NAME
RETVAL=$?
[ $RETVAL -eq 0 ] &&
(rm -f $lockfile ; rm -f ${NGINX_PID_FILE})
echo
return $RETVAL
}
function restart(){
stop
start
}
function checkconfig(){
echo "checking Nginx config
..."
${NGINX_BIN} -t
}
function reload(){
echo
"reload the Nginx config..."
killproc ${NGINX_NAME}
-HUP
RETVAL=$?
return $RETVAL
}
function _ngstatus(){
status -p ${NGINX_PID_FILE}
${NGINX_NAME}
}
function showhelp(){
echo "Usage:
/etc/init.d/nginx.sh
{start|stop|restart|status|checkconfig|reload}"
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
status)
_ngstatus
;;
checkconfig)
checkconfig
;;
*)
showhelp
;;
esac
7.2.2、赋予/etc/init.d/nginx文件执行权限
chmod +x /etc/init.d/nginx
7.2.3、设置nginx开机启动
vim /etc/rc.local/
/etc/init.d/nginx start
7.2.4、然后进行验证
service nginx start|stop|restart|reload
当然这样也可以
/etc/init.d/nginx start|restart|stop|reload
8、Nginx配置环境变量
8.1、配置Nginx和PHP程序的环境变量
在/etc/profile中export PATH USER LOGNAME MAIL上面添加如下信息:
vim /etc/profile
export
PATH="$PATH:/usr/local/nginx/sbin"
9、Keepalived安装说明
9.1、安装包下载
yum -y install openssl-devel openssl popt-devel
popt
cd /usr/local/src/
9.2、源码编译安装
tar -zxvf keepalived-1.2.6.tar.gz
cd keepalived-1.2.6
./configure --prefix=/usr/local/keepalived
--with-kernel-dir=/usr/src/kernels/内核版本
&& make && make install
9.3、创建服务启动脚本
cp
/usr/local/keepalived/etc/rc.d/init.d/keepalived
/etc/init.d/keepalived
chmod +x /etc/init.d/keepalived
9.5、修改启动脚本相对路径
vim /etc/init.d/keepalived
/etc/sysconfig/keepalived, 修改为:. /usr/local/keepalived/etc/sysconfig/keepalived即指向正确的文件位置
并在启动脚本中添加如下环境变量
PATH="$PATH:/usr/local/keepalived/sbin"
export PATH
9.6、修改启动脚本参数路径
vim
/usr/local/keepalived/etc/sysconfig/keepalived
修改如下服务启动参数
把KEEPALIVED_OPTIONS="-D"
KEEPALIVED_OPTIONS="-D -f
/etc/keepalived/keepalived.conf"
9.7、创建目录文件
mkdir
/etc/keepalived
cp
/usr/local/keepalived/etc/keepalived/keepalived.conf
/etc/keepalived/
9.8、复制执行文件到指定目录下
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
9.9、启动服务程序
service keepalived restart
9.10、设置服务开机启动
chkconfig keepalived on