系列文章:
1.Ubuntu 24.04 安裝 chcweb 專案的過程記錄
2.Ubuntu 24.04 安裝 laravel 5.7 的過程記錄
3.laravel 5.7 初始相關設定與注意事項
4.想修改 chcweb 出現的問題解決集
問題一: UnexpectedValueException : The stream or file "/home/webadmin/html/chcweb/storage/logs/laravel-2026-04-11.log" could not be opened in append mode: failed to open stream: Permission denied
解決方法:
錯誤意思是 Laravel 沒辦法寫入 log 檔,通常跟 目錄權限 有關。
1.檢查檔案與目錄權限
Laravel 日誌檔案路徑:
/home/webadmin/html/chcweb/storage/logs/laravel-2026-04-16.log
需要 Web 伺服器用戶能夠寫入。通常 Linux 系統 Web 伺服器用戶是:
-
Debian/Ubuntu:
www-data -
CentOS/Fedora:
apache或nginx
檢查目錄權限:
ls -l /home/webadmin/html/chcweb/storage/logs/2.設定正確的擁有者
假設你的 Web 伺服器用戶是
www-data:小技巧:sudo chown -R www-data:www-data /home/webadmin/html/chcweb/storage這樣 Web 伺服器就能寫入。3.設定正確的權限
Laravel 需要storage和bootstrap/cache可寫:sudo chmod -R 775 /home/webadmin/html/chcweb/storage
sudo chmod -R 775 /home/webadmin/html/chcweb/bootstrap/cache
775:擁有者與群組可讀寫執行,其他人可讀與執行- 如果 775 仍然不行,可以暫時用 777 測試,但不建議長期使用(安全性較低)
4.清除快取(可選)
Laravel 有時會快取檔案路徑,建議清除:
php artisan config:clear
php artisan cache:clear然後再重新載入網站看看是否正常。
Laravel 的storage和bootstrap/cache目錄必須可寫,這是最常見的「Permission denied」原因。
一行命令,直接安全地修復 Laravel 所有目錄的權限和擁有者,幾乎可以立即解決這種錯誤:
sudo chown -R www-data:www-data /home/webadmin/html/chcweb && sudo find /home/webadmin/html/chcweb/storage -type d -exec chmod 775 {} \; && sudo find /home/webadmin/html/chcweb/storage -type f -exec chmod 664 {} \; && sudo find /home/webadmin/html/chcweb/bootstrap/cache -type d -exec chmod 775 {} \; && sudo find /home/webadmin/html/chcweb/bootstrap/cache -type f -exec chmod 664 {} \;


















