我正在运行 PHP-FPM 和 Nginx,有时,出于某种原因,我必须重新启动服务器。一旦服务器再次运行,nginx 服务就会自动启动,但 PHP-FPM 不会启动。当我在sudo /etc/init.d/php-fpm restart
重新启动后立即运行命令并得到结果时,可以看到这一点:
$ sudo /etc/init.d/php-fpm restart
Stopping php-fpm: [FAILED]
Starting php-fpm: [ OK ]
这是预期的行为吗?使 PHP-FPM 自动启动的最佳方法是什么?是否有任何配置选项,或者我必须将命令添加到 Linux 启动脚本之一中?
谢谢。
答案1
因此将其设置为在启动时启动:
chkconfig php-fpm on
答案2
我刚刚在 Ubuntu 16.04 上遇到了这个问题,我将我的答案留在这里,以便将来偶然遇到此问题的 Google 用户使用。由于chkconfig
主要是 CentOS 特有的,因此显然在 Ubuntu 上不存在。显然,要让自定义的 PHP(php-fpm
SAPI)在启动时启动systemd
,这是 Ubuntu 16.04(以前称为 Upstart)的新功能,它需要在系统中注册,而不仅仅是将脚本放入init.d
。/etc/init.d/
要注册脚本,我运行:
update-rc.d php-fpm defaults
随后reboot
确认ps aux
确实php-fpm
在启动时启动。它还被添加到/etc/init.d/.depend.start
。
update-rc.d
其他想法:Ubuntu Upstart 非常好,所以我放置 init.d 脚本后就无需运行- 它就可以正常工作。完全忘记了那个命令。
答案3
从 CentOS 7 开始,你只需要通过 systemctl 启用服务:
systemctl enable php-fpm
您可以通过以下方式检查它是否正在运行:
systemctl status php-fpm
答案4
您可以向.bashrc
启动脚本添加一些命令:
打开.bashrc
:
nano .bashrc
粘贴一些启动时运行的命令:
(检查哪些命令适合你)
# Start fpm-services
sudo /etc/init.d/php-fpm start
sudo /etc/init.d/php8.3-fpm start
sudo /etc/init.d/php8.2-fpm start
sudo /etc/init.d/php8.1-fpm start
sudo /etc/init.d/php8.0-fpm start
sudo /etc/init.d/php7.4-fpm start