本文完整阅读约需 5 分钟,如时间较长请考虑收藏后慢慢阅读~

作为RHEL系最方便的网页搭建工具集仓库,Remi仓库以其极快的更新速度与简单实现多版本共存的优势大受运维欢迎,既不用受限于官方仓库较低的版本,也不用纠结于源码编译的复杂配置。美中不足的是,其PHP-FPM包并不支持Systemd启动,也就造成了其常驻后台的不便之处。今天我们来讲解一下如何为通过Remi仓库安装的PHP-FPM配置Systemd服务。

此处以CentOS7.5+PHP-FPM 7.2为例
首先找到PHP-FPM的可执行文件位置:

find / -name php-fpm

找到位置为/opt/remi/php72/root/usr/sbin/php-fpm的可执行文件(不同情况下可能位置不一样,以你搜索到的文件为准)

然后在/usr/lib/systemd/system/下建立名为php-fpm-7.2.service的文件(可以任意指定),输入以下内容

[Unit]
Description=PHP Fast Process Manager 7.2
After=syslog.target network.target

[Service]
Type=simple
# 可执行文件位置参考之前的搜索结果,最终配置文件建议删除该行
ExecStart=/opt/remi/php72/root/usr/sbin/php-fpm

[Install]
WantedBy=multi-user.target

如果你有在其他网站上搜索过PHP-FPM的Systemd配置,可能会发现,我这里使用的Type与其他文章的内容有所区别,网上的教程可能是fork或者oneshot,但是对于Remi安装的PHP-FPM而言,应该设置为simple,因为执行该可执行文件之后,并未fork出PHP-FPM主进程(它自己就是主进程),也没有执行某个特定的脚本,它们的具体区别见该链接:systemd.service 中文手册

保存刚刚的配置文件,并执行以下命令

systemctl daemon-reload
systemctl enable php-fpm-72
systemctl start php-fpm-72

最后执行systemctl status php-fpm-72,如果看到Active: active (running)的绿色提示,则说明Systemd配置成功。