【Plesk经验分享】网站不可用或在PHP-FPM上运行缓慢?

适用版本:Plesk for Linux

问题描述

  • 在网站的PHP设置中选择了PHP处理器FPM application served by ApacheFPM application served by nginx
  • 在PHP-FPM错误日志中,可以看到以下信息(/var/log/phpX-fpm.log 或 /var/log/plesk-phpXX-fpm/error.log,X是PHP的一个版本):

 

注(翻译):

服务器达到最大的子进程数,考虑提高数值

错误:无法读取子进程所说:无效的文件描述符(9)

或者

  • 网站因下列原因无法访问:

503 Service Temporarily Unavailable

注(翻译):

503 服务暂时不可用

或者:

502 Bad Gateway

注(翻译):

502网关错误

或者:

500 Internal Server Error

注(翻译):

500 内部服务器错误

  • 服务器性能可能较差。

原因

pm.max_children(服务器子进程数,为PHP-FPM池参数)已经达到最大。

此外,可能需要调整pm.start_servers, pm.min_spare_servers and pm.max_spare_servers。

解决办法

Plesk Onyx第32次更新开始,可以经由Plesk UI更改PHP-FPM限制值,具体操作步骤如下:

1. 登录进入Plesk

2. 转到Domains > example.com > PHP设置 > PHP-FPM设置

3. 更改域名的PHP-FPM设置

对于版本低于Plesk Onyx的Plesk版本,可以使用以下解决办法:

1. 使用SSH连接到服务器

2. 在目录中创建php.ini文件

/var/www/vhosts/system/example.com/conf/:

# touch /var/www/vhosts/system/example.com/conf/php.ini

3. 在文本中打开php.ini文件,并添加以下记录:

[php-fpm-pool-settings]pm.max_children = 40

4. 转到Domains > example.com > PHP 设置,点击确认按钮,更新PHP-FPM池配置文件

如果问题仍旧存在,请增加pm.max_children的数值。

:在一些案例中,没有优化的应用程序代码可能会使PHP-FPM进程延长,从而造成过度使用限制的情况。在这种情况下,最好的做法是解决应用程序的代码问题,而不是提高pm.max_children的数值。

提交
还没有评论,快来抢沙发吧!
售前
支持
代理
合作
售后
支持