Laravel.log 檔案寫入的問題
項目使用
root
賬戶部署到伺服器後,訪問返回 500 錯誤。
出現問題後首先按照以下思路尋找問題:
查看 nginx 錯誤記錄檔
查看 php 錯誤記錄檔
代碼中斷點測試是否能訪問
在錯誤記錄檔中沒有找到蹤跡,500 錯誤通常是代碼錯誤導致的,確認是否開啟 laravel 的調試功能:
# 查看 .envAPP_DEBUG=true
設定後頁面上顯示錯誤資訊:記錄檔無許可權寫入。這是因為記錄檔的所有者、使用者組都是 root
,許可權預設是 755,導致非 root
的其他使用者無法寫入。
查看寫入者
執行以下命令查看 php-fpm 的所有者:
ps -ef | grep php-fpm
返回資訊:
apache 9520 11965 0 May25 ? 00:02:11 php-fpm: pool wwwapache 10437 11965 0 May26 ? 00:02:10 php-fpm: pool wwwroot 11965 1 0 May20 ? 00:07:35 php-fpm: master process (/etc/php-fpm.conf)
第一列就是 php-fpm 的執行使用者。
設定日誌許可權
確認日誌目錄的許可權
ls -l storage/
drwxr-xr-x 3 root root 4096 Jul 11 18:17 appdrwxr-xr-x 6 root root 4096 Jul 12 10:58 frameworkdrwxr-xr-x 2 root root 4096 Jul 12 16:17 logs
這裡可以發現檔案所有者為 root,而 php 作為其他使用者只有讀和執行許可權,沒有寫入許可權。
修改檔案許可權
# -R 指遞迴的修改檔案夾和此檔案夾下所有內容# 我的 php 是使用者 apache 的,請參考自己的情況修改chown apache storage/logs -R
framework 檔案夾也有需要寫入的許可權,views 層產生的緩衝就在其中,可以同時修改掉
chown apache storage/framework -R
以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!