關於 Laravel 日誌許可權

allencao發表於2017-11-17

有時候 laravel 會出現無許可權寫日誌的問題,我們可以按以下步驟去檢查:

  1. 執行 laravel 的 php-fpm 是什麼使用者,一般是 www/nobody,不要使用 root。
  2. laravel 專案中的 storage/logs 目錄 www/nobody 使用者是否有讀寫許可權。
  3. 是否有執行 crontab/supervisor/laravel 指令碼,切執行的使用者是否是 www/nobody。注意!如果以其他身份(例如root)執行指令碼,laravel 可能會建立當天的日誌檔案,那這個日誌檔案是屬於其他使用者的,www/nobody 使用者無法寫入。

解決辦法

  1. 修改 php-fpm 的配置檔案,修改 user 和 group 為 www/nobody。
  2. chmod a+w storage/logs
  3. 執行任何 laravel 的指令碼需要注意執行的使用者,supervisor可以設定使用者,crontab 可以加在 www/nobody 使用者下。手動執行指令碼可以 su www/nobody。
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章