現在我們在Laravel專案中面臨一個破壞性的問題:
存盤日志檔案
production.ERROR: 無法創建可鎖定的檔案。/var/www/html/storage/framework/cache/data/... 請確保你有權限在此位置創建檔案。
#0 /var/www/html/vendor/laravel/framework/src/Illuminate/Filesystem/LockableFile.php(43)。
當問題發生時ls -l給出
drwxrwsr-x 2 apache apache 4096 Sep 2 14: 36 日志
為了解決這個問題,我們運行sudo chown -R ec2-user:apache logs/,得到
drwxrwsr-x 2 ec2-user apache 4096 Sep 2 14: 36 日志
但這是一個手動修復...
因此,我想問:
A) 如何防止檔案系統突然改變所有者而破壞編碼?
B) 另外,如何在Laravel專案中觸發生產錯誤通知,以警告此類問題?
uj5u.com熱心網友回復:
回答你的第二個問題, 你可以使用其中任何一個來進行錯誤報告:
所有的例外都由AppExceptionsHandler類來處理,在這個類中,有一個名為register的方法,你可以在其中配置上述任何工具,這樣就可以在那里報告例外。否則,你可以建立你的自定義報告方法,比如向你發送帶有例外資訊的電子郵件或發送slack通知。
uj5u.com熱心網友回復:
為了永久地解決這個問題,你必須在代碼中給予正確的權限,所以去config/logging.php你會發現如下內容:
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['daily']。
'ignore_exceptions' => false,
],
'single' => [
'driver' => 'single',
'path' => storage_path('logs/laravel.log')。
'level' => 'debug',
],
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log')。
'level' => 'debug',
'day' => 14,
],
...
],
添加'permission' => 0775,到使用的頻道,所以它將像下面一樣(我已經添加到single和daily頻道):
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['daily']。
'ignore_exceptions' => false,
],
'single' => [
'driver' => 'single',
'path' => storage_path('logs/laravel.log')。
'level' => 'debug',
'permission' => 0775,
],
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log')。
'level' => 'debug',
'day' => 14,
'permission' => 0775,
],
...
],
這個修正在Laravel 6上測驗過
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/309790.html
標籤:
