有時候 laravel 會出現無許可權寫日誌的問題,我們可以按以下步驟去檢查:
- 執行 laravel 的 php-fpm 是什麼使用者,一般是 www/nobody,不要使用 root。
- laravel 專案中的 storage/logs 目錄 www/nobody 使用者是否有讀寫許可權。
- 是否有執行 crontab/supervisor/laravel 指令碼,切執行的使用者是否是 www/nobody。注意!如果以其他身份(例如root)執行指令碼,laravel 可能會建立當天的日誌檔案,那這個日誌檔案是屬於其他使用者的,www/nobody 使用者無法寫入。
解決辦法
- 修改 php-fpm 的配置檔案,修改 user 和 group 為 www/nobody。
- chmod a+w storage/logs
- 執行任何 laravel 的指令碼需要注意執行的使用者,supervisor可以設定使用者,crontab 可以加在 www/nobody 使用者下。手動執行指令碼可以 su www/nobody。
本作品採用《CC 協議》,轉載必須註明作者和本文連結