使用systemd管理PHP7的php-fpm服务时遇到无法正常启动的问题,php-fpm报错如下:
systemd[1]: Started The PHP FastCGI Process Manager.
php-fpm[26521]: [25-Feb-2021 09:24:08] ERROR: failed to open error_log (/usr/local/php/var/log/php-fpm.log): Read-only file system (30)
php-fpm[26521]: [25-Feb-2021 09:24:08] ERROR: failed to post process the configuration
php-fpm[26521]: [25-Feb-2021 09:24:08] ERROR: FPM initialization failed
即使selinux是关闭状态,把文件/usr/local/php/var/log/php-fpm.log权限设为777,问题依然存在。
- 问题原因
php-fpm的systemd配置文件(/usr/lib/systemd/system/php-fpm.service)中,
当ProtectSystem=true时php-fpm进程将以只读的方式挂载/usr、/boot目录;
当ProtectSystem=full时php-fpm进程将以只读的方式挂载/usr、/boot和/etc目录。 - 解决方法
1)打开php-fpm的systemd配置文件/usr/lib/systemd/system/php-fpm.service,把ProtectSystem=true改成ProtectSystem=false,这种方式会对系统造成一定风险,生产环境不建议使用;
2)修改php-fpm的配置文件php-fpm.conf,把error_log设置为除/usr、/boot、/etc以外的目录中的文件。
网友评论