專案使用 root
帳戶部署到伺服器後,存取傳回 500 錯誤。
出現問題後首先按照以下思路查找問題:
查看nginx 錯誤日誌
查看php 錯誤日誌
程式碼中斷點測試是否能存取
在錯誤日誌中沒有找到蹤跡,500 錯誤通常是程式碼錯誤導致的,確認是否開啟laravel的偵錯功能:
# 查看 .env APP_DEBUG=true
設定後頁面上顯示錯誤訊息:日誌檔案無權限寫入。這是因為日誌檔案的擁有者、使用者群組都是 root
,權限預設是 755,導致非 root
的其他使用者無法寫入。
執行下列指令查看php-fpm 的擁有者:
ps -ef | grep php-fpm
回傳訊息:
apache 9520 11965 0 May25 ? 00:02:11 php-fpm: pool www apache 10437 11965 0 May26 ? 00:02:10 php-fpm: pool www root 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 app drwxr-xr-x 6 root root 4096 Jul 12 10:58 framework drwxr-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
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
Laravel開發環境部署之homestead 安裝設定過程(windows系統)
#以上是如何解決Laravel.log 檔案寫入的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!