由於業務需要使用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 目錄,這就是問題所在。