背景:
centos6.6_64
nginx-1.11
php5.6.22
依赖:
(nginx)yum install -y gcc pcre openssl make
(php)yum install -y gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel glibc glibc-devel glib2 glib2-devel
安装:
tar xzf nginx-1.11.1.tar.gz ./configure --prefix=/usr/local/nginx --with-http_gzip_static_module --with-http_stub_status_modulemake && make install
tar xzf php-5.6.22.tar.bz2 ./configure --prefix=/usr/local/php --enable-fpmmake && make install
配置:
1.nginx
server { listen 80; server_name localhost; root /usr/local/nginx/html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { root /usr/local/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } # $document_root
2.php-fpm
[www]user = $poolgroup = $poollisten =127.0.0.1:9000listen.backlog = 4096pm = dynamicpm.max_children = 32pm.start_servers = 8pm.min_spare_servers = 8pm.max_spare_servers = 12pm.max_requests = 2048pm.status_path = /$pool_statusping.path = /$pool_pingping.response = $pool_OKaccess.log = /opt/logs/php/$pool.access.logaccess.format = %R - %u %t %n " " "%m %r%Q%q" " " %s %f %{mili}d %{kilo}M %C%%slowlog = /opt/logs/php/$pool.slow.logrequest_slowlog_timeout = 5request_terminate_timeout = 30
脚本:
1.nginx
nginx=${NGINX-/opt/yingmoo/nginx/sbin/nginx}prog=`/bin/basename $nginx`conffile=${CONFFILE-/opt/yingmoo/nginx/conf/nginx.conf}lockfile=${LOCKFILE-/var/lock/subsys/nginx}pidfile=${PIDFILE-/opt/yingmoo/nginx/logs/nginx.pid}SLEEPMSEC=${SLEEPMSEC-200000}UPGRADEWAITLOOPS=${UPGRADEWAITLOOPS-5}RETVAL=0start() { echo -n $"Starting $prog: " daemon --pidfile=${pidfile} ${nginx} -c ${conffile} RETVAL=$? echo [ $RETVAL = 0 ] && touch ${lockfile} return $RETVAL}stop() { echo -n $"Stopping $prog: " killproc -p ${pidfile} ${prog} RETVAL=$? echo [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}}reload() { echo -n $"Reloading $prog: " killproc -p ${pidfile} ${prog} -HUP RETVAL=$? echo}upgrade() { oldbinpidfile=${pidfile}.oldbin configtest -q || return echo -n $"Starting new master $prog: " killproc -p ${pidfile} ${prog} -USR2 echo for i in `/usr/bin/seq $UPGRADEWAITLOOPS`; do /bin/usleep $SLEEPMSEC if [ -f ${oldbinpidfile} -a -f ${pidfile} ]; then echo -n $"Graceful shutdown of old $prog: " killproc -p ${oldbinpidfile} ${prog} -QUIT RETVAL=$? echo return fi done echo $"Upgrade failed!" RETVAL=1}configtest() { if [ "$#" -ne 0 ] ; then case "$1" in -q) FLAG=$1 ;; *) ;; esac shift fi ${nginx} -t -c ${conffile} $FLAG RETVAL=$? return $RETVAL}rh_status() { status -p ${pidfile} ${nginx}}# See how we were called.case "$1" in start) rh_status >/dev/null 2>&1 && exit 0 start ;; stop) stop ;; status) rh_status RETVAL=$? ;; restart) configtest -q || exit $RETVAL stop start ;; upgrade) rh_status >/dev/null 2>&1 || exit 0 upgrade ;; condrestart|try-restart) if rh_status >/dev/null 2>&1; then stop start fi ;; force-reload|reload) reload ;; configtest) configtest ;; *) echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|upgrade|reload|status|help|configtest}" RETVAL=2esacexit $RETVAL
2.php-fpm
RETVAL=0prog="php-fpm"pidfile=${PIDFILE-/var/run/php-fpm/php-fpm.pid}lockfile=${LOCKFILE-/var/lock/subsys/php-fpm}daemon="/usr/local/php/sbin/php-fpm"configfile="/usr/local/php/etc/php-fpm.conf"start () { echo -n $"Starting $prog: " dir=$(dirname ${pidfile}) [ -d $dir ] || mkdir $dir /usr/local/php/sbin/php-fpm -g ${pidfile} -y $configfile -D RETVAL=$? echo [ $RETVAL -eq 0 ] && touch ${lockfile}}stop () { echo -n $"Stopping $prog: " killproc -p ${pidfile} php-fpm RETVAL=$? echo if [ $RETVAL -eq 0 ] ; then rm -f ${lockfile} ${pidfile} fi}restart () { stop start}reload () { echo -n $"Reloading $prog: " if ! $PHP-FPM --test ; then RETVAL=6 echo $"not reloading due to configuration syntax error" failure $"not reloading $prog due to configuration syntax error" else killproc -p ${pidfile} php-fpm -USR2 RETVAL=$? fi echo}# See how we were called.case "$1" in start) start ;; stop) stop ;; status) status -p ${pidfile} php-fpm RETVAL=$? ;; restart) restart ;; reload|force-reload) reload ;; configtest) /usr/sbin/php-fpm --test RETVAL=$? ;; condrestart|try-restart) [ -f ${lockfile} ] && restart || : ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart|try-restart|configtest}" RETVAL=2 ;;esacexit $RETVAL