PHP-FPM常见配置
- daemonize = no //是否将程序运行在后台
- listen = 127.0.0.1:9000 //FPM 监听地址
- listen = /var/run/php.sock //UDF模式使用,指定生成的unix socket文件的路径
注意:Unix Domain Socket (UDS) support added in httpd-2.4.7
http://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypass - listen.owner = apache //UDF模式使用,指定生成的unix socket文件的所有者
- listen.group = apache //UDF模式使用,指定生成的unix socket文件的所属组
- listen.mode= 0666 //UDF模式使用,,指定生成的unix socket文件的权限
- listen.acl_users = apache,nginx //指定用户访问unix socket文件,listen.owner
和listen.group 将无效 - listen.backlog = -1 //等待队列的长度 -1表示无限制
- listen.allowed_clients = 127.0.0.1 //仅允许哪些WEB主机访问
- pm = dynamic|static //static 固定数量的子进程, //dynamic子进程数据以动态模式管理
- pm.max_childen=500 //static 固定数量的子进程
- pm.start_servers=500 //动态模式下初始进程数,必须大于等于pm.min_spare_servers和小于等于pm.max_children的值。
- pm.min_spare_servers=100 //最小空闲进程数
- pm.max_spare_servers=200 //最大空闲进程数
- pm.max_requests = 500 //进程累计请求回收值,会重启
- php_value[session.save_handler] = files
- php_value[session.save_path] = /var/lib/php/session //设置session存放位置
php-fpm配置案例
cat /etc/php-fpm.d/www.conf
[www]
listen = 127.0.0.1:9000 #监听地址及IP
listen.allowed_clients = 127.0.0.1 #允许客户端从哪个源IP地址访问,要允许所有行首加 ;注释
即可
user = apache #php-fpm启动的用户和组,会涉及到后期文件的权限问题
group = apache
pm = dynamic #动态模式进程管理
pm.max_children = 500 #静态方式下开启的php-fpm进程数量,在动态方式下他限定php-fpm的最大进
程数
pm.start_servers = 100 #动态模式下初始进程数,必须大于等于pm.min_spare_servers和小于等
于pm.max_children的值。
pm.min_spare_servers = 100 #最小空闲进程数
pm.max_spare_servers = 200 #最大空闲进程数
pm.max_requests = 500000 #进程累计请求回收值,会重启
pm.status_path = /fpm_status #状态访问URL
ping.path = /ping #ping访问动地址
ping.response = ping-pong #ping返回值
slowlog = /var/log/php-fpm/www-slow.log #慢日志路径
php_admin_value[error_log] = /var/log/php-fpm/www-error.log #错误日志
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files #phpsession保存方式及路径
php_value[session.save_path] = /var/lib/php/session #当时使用file保存session的文件
路径
基于PHP-FPM模式监听在127.0.0.1下的LAMP,需要HTTPD开启代理,并作以下配置
DirectoryIndex index.php
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://php-fpm服务器IP(127.0.0.1):9000/var/www/html/$1
#ProxyPassMatch ^/(fpm_status|ping) fcgi://127.0.0.1:9000
#以上开启FCGI反向代理,“^/”这处的”/“相对于后面的/var/www/html而言,后面的$1是指前面
的/(.*.php)
[root@centos8 ~]#vim /etc/httpd/conf.d/php.conf
<IfModule !mod_php5.c>
<IfModule !mod_php7.c>
# Enable http authorization headers
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
<FilesMatch \.(php|phar)$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>
</IfModule>
</IfModule>