systemctl start php-fpm报错Read-only file system (30)

使用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以外的目录中的文件。

你可能感兴趣的:(systemctl start php-fpm报错Read-only file system (30))