服务 php8.0-fpm 拒绝启动

服务 php8.0-fpm 拒绝启动

我正要对 php.ini 进行一些更改,当我检查服务时,我发现它处于失败状态。停止并启动服务没有奏效。最有用的日志条目是来自 php8.0-fpm.log 文件的这个:

ERROR: fork() failed: Resource temporarily unavailable (11)

起初我以为我达到了一些 PID 限制,但是:

❯ ps -eLf | wc -l
130

❯ sysctl kernel.pid_max
kernel.pid_max = 32768

事实并非如此。

我检查了 fpm 的 php.ini,但没有发现任何错误。

这里有一些可能有帮助的输出(我广泛搜索了它们但找不到任何解决方案)

❯systemctl status -l php8.0-fpm
php8.0-fpm.service - The PHP 8.0 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php8.0-fpm.service; enabled; vendor preset: enabled)
   Active: failed (Result: protocol) since Thu 2022-07-14 23:07:24 CEST; 20min ago
     Docs: man:php-fpm8.0(8)
  Process: 6960 ExecStart=/usr/sbin/php-fpm8.0 --nodaemonize --fpm-config /etc/php/8.0/fpm/php-fpm.conf (code=exited, status=0/SUCCESS)
  Process: 7126 ExecStopPost=/usr/lib/php/php-fpm-socket-helper remove /run/php/php-fpm.sock /etc/php/8.0/fpm/pool.d/www.conf 80 (code=exited, status=0/SUCCESS)
 Main PID: 6960 (code=exited, status=0/SUCCESS)
❯ journalctl -b -u php8.0-fpm
-- Logs begin at Fri 2022-07-15 00:45:44 CEST, end at Fri 2022-07-15 21:56:46 CEST. --
Jul 15 xxxxxx systemd[1]: Starting The PHP 8.0 FastCGI Process Manager...
Jul 15 xxxxxx systemd[1]: php8.0-fpm.service: Failed with result 'protocol'.
Jul 15 xxxxxx systemd[1]: Failed to start The PHP 8.0 FastCGI Process Manager.
❯cat php8.0-fpm.log
NOTICE: fpm is running, pid 1794
ERROR: fork() failed: Resource temporarily unavailable (11)
NOTICE: exiting, bye-bye!
❯ php -v
PHP 8.0.20 (cli) (built: Jun 14 2022 10:25:42) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.20, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.20, Copyright (c), by Zend Technologies

我正在运行 Debian 10 和 apache,并且没有安装其他 php 版本。

答案1

发生的事情是,在 apt 升级后,php-fpm.conf 文件被删除了。我使用默认 conf 创建了一个新文件,但 apt 升级仍然无法更新,并出现错误:

installed php8.0-fpm package post-installation script subprocess returned error exit status 1

我使用以下命令删除了该包:

sudo apt remove --purge -y php8.0-fpm

并重新安装

sudo apt install php8.0-fpm

然后使用以下方式激活配置

sudo a2enconf php8.0-fpm

最后重新加载 Apache:

sudo systemctl reload apache2

相关内容