我在使用 PHP 7 FPM 的 Ubuntu 16.04 服务器上不断收到错误
ERROR: fork() failed: Resource temporarily unavailable (11)
这导致我的网站无法正常运行,并出现 502 错误。
注意:我正在使用 php7 的 ondrej repo,并安装了以下模块(如果有帮助的话......)
php7.0-fpm php7.0-cli php7.0-curl php7.0-gd php7.0-intl php7.0-mysql php7.0-json php7.0-sqlite3 php7.0-opcache php-memcached php-pear
并利用 nGinx
我怎样才能解决这个问题?
答案1
为了解决我的问题,我需要从我的服务器中清除 php7,删除 ondrej 存储库,并从 Ubuntu 存储库安装所有内容。
我的步骤:
apt-get --purge remove php7*
rm -f /etc/apt/sources.list.d/ondrej*
apt-get update && apt-get -y upgrade #just for safeties sake
apt-get -y install php7.0-fpm php7.0-curl php7.0-gd php7.0-intl php7.0-mysql php7.0-json php7.0-sqlite3 php7.0-opcache php-memcached php-pear
现在一切都好了。
答案2
我遇到了同样的问题,PHP-FPM 似乎“卡”在 500 个子进程左右,并且由于错误“资源暂时不可用”而无法分叉更多子进程。
根据 Oli 的上述评论,我调查了https://unix.stackexchange.com/a/274830/880
这是我的修复方法,与 systemd 设置的默认任务限制有关(在我的情况下是 512)。我运行了“systemctl edit php-fpm”,添加了以下几行:
[Service]
TasksMax=infinity
然后就跑systemctl daemon-reload
了systemctl restart php-fpm
。