WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
php-fpm并发进程满了,修改php-fpm.conf的配置信息
pm.max_children = 30 //最大子进程 (默认是5个)
pm.start_servers = 10 //php-fpm启动起始进程数
pm.min_spare_servers = 10 //php-fpm的最小空闲进程数
pm.max_spare_servers = 24 //php-fpm的最大空闲进程数
pm.max_requests = 500 //所有子进程重启时间
然后重启 php,问题解决。
执行如下命令查看是否启动了php-fpm,如果没有则启动你的php-fpm即可
netstat -ant | grep 9000
没有运行为空,有运行显示
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
启动方法
sudo /usr/local/php/sbin/php-fpm //sudo 启动
/usr/local/php/sbin/php-fpm -R //以root身份启动
常用
确定php.ini文件的位置
php --ini
启动php-fpm
/usr/local/php/sbin/php-fpm
重启php-fpm - php小小菜鸟 - 博客园
nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息。
nginx把对php的请求发给php-fpm fastcgi进程来处理,默认的php-fpm只会输出php-fpm的错误信息,在php-fpm的errors log里也看不到php的errorlog
原因是php-fpm的配置文件php-fpm.conf中默认是关闭worker进程的错误输出,直接把他们重定向到/dev/null,所以我们在nginx的error log 和php-fpm的errorlog都看不到php的错误日志。
调试起来就很痛苦了。解决nginx下php-fpm不记录php错误日志的办法:
1.修改php-fpm.conf中配置 没有则增加
catch_workers_output = yes
error_log = log/error_log
2.修改php.ini中配置,没有则增加
log_errors = On
error_log = "/usr/local/lnmp/php/var/log/error_log"
error_reporting=E_ALL&~E_NOTICE
3.重启php-fpm
当PHP执行错误时就能看到错误日志在"/usr/local/lnmp/php/var/log/error_log"中了
PHP-FPM 输出PHP错误日志 - etwits - 博客园
Nginx报错:nginx: [error] invalid PID number in "/run/nginx.pid"的解决方案
nginx -s reload
nginx -c /etc/nginx/nginx.conf
killall nginx
nginx
nginx -s reload