php7.4使用systemd服务器管理文件无法启动的解决办法


由于业务需要使用php7.4运行环境,编译安装好PHP7.4,并做好systemd服务管理文件,发现用systemctl start php-fpm.service 时无法正常启动php-fpm,报了一个很奇怪的错。
ERROR: failed to open error_log (/usr/local/php/var/log/php-fpm.log): Read-only file system (30)
此时,selinux是关闭状态,普通用户对这个文件也可写,问题就迷离了。

解决方法:
vim /usr/lib/systemd/system/php-fpm.service

ProtectSystem=full
改成
ProtectSystem=false

原因:当这个值为true的时候,php-fpm进程将以只读的方式挂载 /usr 目录,这就是问题所在。