nginx+php_php-fpm编译版

背景:

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_module
make && make install
tar xzf php-5.6.22.tar.bz2 
./configure  --prefix=/usr/local/php  --enable-fpm
make && 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 = $poo
llisten =127.0.0.1:9000
listen.backlog = 4096
pm = dynamic
pm.max_children = 32
pm.start_servers = 8
pm.min_spare_servers = 8
pm.max_spare_servers = 12
pm.max_requests = 2048
pm.status_path = /$pool_status
ping.path = /$pool_ping
ping.response = $pool_OK
access.log = /opt/logs/php/$pool.access.log
access.format = %R - %u %t %n " "  "%m %r%Q%q" " "  %s %f %{mili}d %{kilo}M %C%%
slowlog = /opt/logs/php/$pool.slow.log
request_slowlog_timeout = 5
request_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=0
start() {
    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=2
esac
exit $RETVAL

2.php-fpm

RETVAL=0
prog="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
        ;;
esac
exit $RETVAL
时间: 2024-11-03 21:10:35

nginx+php_php-fpm编译版的相关文章

Android L Preview for mako本人编译版的启动log

本人没此手机, log由cofface获取, 目前是卡到开机动画: https://gist.github.com/syhost/d9f2481b28d5aa8b01a0 编译时使用的vendor是Android4.4.4的, 看log貌似ks大面积报错, 也可能是内核跟vendor不搭配 Android L Preview for mako本人编译版的启动log,布布扣,bubuko.com

记录一次自己对nginx+fastcgi(fpm)+mysql压力测试结果

nginx + fastcgi(fpm) 压力测试: CentOS release 5.9 16核12G内存 静态页面: 并发1000,压测200秒,测试结果: 系统最大负载5.47 成功响应: 2563065, 502:0, 失败:0 PHP页面(对mysql进行一次带索引的查询,数据库记录500条): 并发1000,压测200秒,测试结果: 系统最大负载15.66 成功响应: 114368, 502:712, 失败:58715 并发200,压测200秒,测试结果: 系统最大负载25.81 成

深入理解PHP之:Nginx 与 FPM 的工作机制

完全转载(算是一个收藏了) https://zhuanlan.zhihu.com/p/20694204 网络上有很多关于如何配置 Nginx + FPM 的文章,但它们更多从操作的角度出发,告诉我们怎么做,但却没有告诉我们为什么要这么做,本文从 Nginx 与 FPM 的工作机制出发,探讨配置背后的原理,让我们真正理解 Nginx 与 PHP 是如何协同工作的. 要说 Nginx 与 PHP 是如何协同工作的,首先得说 CGI (Common Gateway Interface) 和 FastC

Firefox(59.0.2)tete009编译版

本版介绍 * 根据不同的CPU指令集制作不同的版本,使Firefox能够做到根据不同的平台而优化. 这也是众多第三方编译版本共同的特征. * 改进了Firefox的内存使用. 众所周知, Firefox的内存使用一直为人诟病. tete009的版本根据不同的CPU指令集重写了tmemutil.dll,即内存管理的dll文件,使效率大为提高. * 改善浏览器的渲染过程, 使渲染效率更高. * Module Binder能缩短Firefox的启动时间. 中文语言包使用方法 1.将下载的中文语言包直接

[Nginx] - PHP+FPM相关的配置

CodeIgniter的配置: worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; fastcgi_connect_timeout 300s; fastcgi_send_timeout 300s; fastcgi_read_timeout

nginx和fpm的进程数配置和502,504错误

一般来说 php-cgi进程数不够用.php执行时间长(mysql慢).或者是php-cgi进程死掉,都会出现502错误: Nginx 504 Gateway Time-out则是与nginx.conf的设置有关: 1.502 和 php-fpm.conf 1.request_terminate_timeout引起的资源问题 request_terminate_timeout的值如果设置为0或者过长的时间,可能会引起file_get_contents的资源问题. 如果file_get_conte

GExpert 1.38 实验版含经典代码格式工具 Berlin 编译版

安装方法:修改install.reg,然后导入.源代码地址:http://blog.dummzeuch.de/experimental-gexperts-version/ http://bbs.2ccc.com/topic.asp?topicid=511124

红米1S Mokee4.4.4 本人编译版耳机线控改动调音量以及上下曲方法

改动的文件为,用Re管理器编辑: system/usr/keylayout/msm8226-tapan-snd-card_Button_Jack.kl 默认的耳机线控的上下键是切换上下曲功能,因此此文件内容为: key 226 HEADSETHOOK WAKE key 257 MEDIA_PREVIOUS WAKE key 258 MEDIA_NEXT WAKE 假设想改成上下键调节音量功能则仅仅须要改为: key 226 HEADSETHOOK WAKE key 257 VOLUME_UP W

nginx+php fpm日志报错信息

recv() failed (104:connect  reset by peer) while reading response header from upstream的原因和解决方案 原因是 php-fpm进程数耗尽了,两个方案: (1). 调整php-fpm.conf里面的pm.max_children,增大,不建议超过300(2). php-fpm.conf里面打开每个对应池的slow日志,根据慢执行日志来优化php代码