前言
當我們需要使用 artisan
命令列,或者使用 laravel
的定時任務,這個時候寫入日誌的使用者可能預設會屬於 root
,但 php-fpm
一般都在 php-fpm.conf
檔案中指定了我們的使用者和使用者組屬於 www
,這時候如果定時任務先寫入了日誌,我們在呼叫介面,那麼會報無法寫入的錯誤
UnexpectedValueException : The stream or file“/test.com/storage/logs/laravel-2020-04-27.log” could not be opened:failed to open stream: Permission denied
如何解決這個問題。
1. crontab 指定使用者執行指令碼
crontab -e -u www
2. 更改 laravel logging 日誌配置檔案
'command' => [
'driver' => 'daily',
'path' => storage_path('logs/command/command.log'),
'days' => 7,
// 給 command 寫入的日誌檔案賦予許可權,允許其它使用者也可寫入。
'permission' => '0666'
],
參考文章
Laravel 日誌檔案許可權問題 | Laravel China 社群 (learnku.com)
laravel 修改日誌許可權
本作品採用《CC 協議》,轉載必須註明作者和本文連結