Laravel Daily 日誌許可權問題

MArtian發表於2023-12-30

執行 schedule:run 的是 www 使用者,

crontab -e -u www
* * * * * cd /my_project/ && php artisan schedule:run >> /dev/null 2>&1

並且在 logging 中也配置了

'daily' => [
    ...
    'permission' => 0666,
],

建立出來的日誌檔案許可權依然是 644,導致寫入日誌失敗報錯。


分析具體原因可能是因為 Linux 預設的建立檔案模式設定為 644,即 umask 的優先順序高於 Laravel 的 logging.php 配置,導致建立檔案許可權錯誤。

CLI 輸入 umask 檢視

umask
0022

Unix 系統對於新建立檔案基準許可權是 666 再減去 umask 的 022,導致建立檔案的許可權就是 644,猜測是這樣。

* * * * * umask 000 && cd /my_project/ && php artisan schedule:run >> /dev/null 2>&1
php artisan config:clear

忘了清快取了。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
我從未見過一個早起、勤奮、謹慎,誠實的人抱怨命運。

相關文章