Laravel 錯誤自救指南

路由相關
問題1.訪問網頁時出現 404 錯誤
可能解決方案: 會導致404錯誤的大致有下面四種狀況
狀況1.Apache Server沒有開啟,導致網頁服務並未提供
狀況2.開發環境安裝或設定出現問題,也就是你的Xampp沒有正確地完成安裝(這個可能性最高)
狀況3.web.php路由檔並沒有設定對應的路徑規 則(如果你沒改過web.php檔案的話,這個可能性就不高)
狀況4.Route Model Binding所對應的資料不存在
可根據這四種狀況來進行檢查,如果是狀況2可以考慮移除xampp後重新安裝看看
專案檔案相關
問題1.訪問網頁時出現以下的找不到檔案錯誤
問題徵狀: require … vendor/autoload.php … failed to open stream
可能解決方案: 這個錯誤訊息很明顯就是缺少了 vendor資料夾內的autoload.php,很可能是因為專案並非自己生成而是從 Github 下載所得,這樣是會缺少 .env 以及 vendor 資料夾的
解決方法是開啟Terminal,切換到專案資料夾根目錄,輸入以下指令 composer install ,應該就可以解決這個問題囉
問題2.執行 Artisan 命令時出現找不到 .env 檔案錯誤
問題徵狀:
可能解決方案: .env 檔案不會被版本控管,因此需要自己生成。建議修改專案內的.env.example,並設定為專案所需的設定以及應用金鑰,就可以解決這個問題
生成應用金鑰的指令如下:
php artisan key:generate
問題3.安裝套件 laravelcollective/html 出現版本錯誤
問題徵狀:
可能解決方案: 修改 composer.json 檔案,更改 laravelcollective 的設置如下:
composer require laravelcollective/html:^5.8.0
問題4.資料庫連線錯誤1
問題徵狀: 出現 1071 Specified key was too long; max key length is 767 bytes
因為 Laravel 5.4 把預設資料庫字符集更改成 utf8mb4,作為對儲存表情符號(emojis)的支持。只要你運行的是 MySQL v5.7.7 及更高版本,那麼你就不會出現本文提到的錯誤
可能解決方案: 開啟 app\Providers\AppServiceProvider.php
加入以下程式碼:
//app\Providers\AppServiceProvider.php
use Illuminate\Support\Facades\Schema;
public function boot() { Schema::defaultStringLength(191); }
問題5.作業系統顯示權限不足錯誤
問題徵狀: 1.Mac 開發環境出現 storage 資料夾的 failed to open stream:Permission denied
可能解決方案: Laravel 需要可寫入內容到 storage 資料夾,所以必須開放可寫入的權限
開啟 Terminal,切換到專案資料夾後,輸入以下指令
sudo chmod -R 777 storage
問題6.命令列視窗或頁面上出現以下錯誤訊息
問題徵狀: 出現 No application encryption key has been specified
錯誤原因是缺少應用的金鑰
可能解決方案: 開啟Terminal,切換到專案資料夾後,輸入以下指令
php artisan key:generate
問題7.執行 npm 指令出現不明錯誤
問題徵狀: 在 Terminal 輸入 npm run dev 等 npm 指令後,出現如下圖的錯誤
可能解決方案: 一般原因為 NPM 的依賴檔案並未正常安裝,在專案資料夾路徑輸入以下指令來安裝依賴套件檔案就能解決
npm install
開發環境相關
問題1.網址上必須要帶"index.php" 才能正常訪問
問題徵狀: http://laravel.test/admin 顯示Not Found
但輸入http://laravel.test/index.php/admin/ 就正常
可能解決方案: 比較懷疑是Apache設定的問題,應該有啟用virtual server功能,請檢查Apache的httpd-vhost.conf,正常的設定會像下面這樣:
<VirtualHost *:8080> DocumentRoot "/Applications/XAMPP/htdocs/laravel/public" ServerName laravel.test <Directory "/Applications/XAMPP/htdocs/laravel/public"> Require all granted Options All AllowOverride All Order deny,allow Allow from all 如果有改動務必要重啟 Apache 才能讓設定生效唷
問題2.安裝套件時出現找不到 git 錯誤
問題徵狀: 當有套件需要下載時出現如下圖錯誤
可能解決方案: 應該是沒有正常的安裝好 git,導致 git 指令無法在終端機中去使用。請試看看開啟終端機輸入git,看是否顯示找不到此命令
如果是這個問題,可以參考這篇文章
問題3.無法使用 composer 指令
問題徵狀: 使用 composer 系列指令時出現無法辨認 composer 指令的錯誤
可能解決方案: 代表沒有正常安裝 Composer ,又或者是並未把 Composer 設置於 $path 環境變數上
可以直接參考Win&Mac環境建置介紹文章 就能有效解決
問題4.使用 composer create-project 指令出錯
問題徵狀: 因為想要生成指定版本的 Laravel 專案,所以使用 composer create-project 指令但出現 Too many arguments 的如下圖錯誤:
可能解決方案: 應該是因為 -- prefer-dist之間加了一個"空格",但是中間是不應該有空格的。 正確的命令應該是類似 composer create-project --prefer-dist laravel/laravel blog "5.8.*"
問題5.出現記憶體不足的錯誤導致安裝失敗
可能解決方案: 找到 Apache 資料夾內的 php.ini( Windows 版本在 php 資料夾內),找到裏頭的一行設定 “memory_limit”,將其值改成 -1 ,即可不限定伺服器的記憶體空間
問題6.第三方套件安裝太慢 可能解決方案: 可能是 Composer 內核還是1.x版本,請升級到2.0.6以上,速度會有明顯提升
請開啟 Terminal ,輸入以下指令
composer self-update --2
Voyager 相關
問題1.安裝 Voyager 套件時出現以下錯誤
問題徵狀:
可能解決方案: 安裝Voager 1.4版本需要用的Laravel版本要到6以上,建議直接安裝 Laravel8 即可
問題2.後台文字無法完全中文化,並出現破圖
問題徵狀: 在app.php裡有設定語系和時區,但是後台有些部分沒顯示中文,以及public資料夾有正確生成 storage 捷徑,但還是有破圖的部分
可能解決方案: 圖片無法正常顯示,第一個可能是storage捷徑不存在(看來你是有),還有第二個可能性就是.env檔案裏頭,有個APP_URL這個設定
請確認 APP_URL的內容是否正確設定為首頁的網址
如果設定錯誤的話也是會出現圖片網址錯誤的,因為圖片的網址會參考這個網址來生成
第二個菜單是英文,這個內容是由菜單管理員所管理的,你只要進到菜單管理員把每個選單項目的標題改為中文即可,一般會造成這個原因是因為先安裝好Voyager之後才設定語系導致。
另一個作法是把 Voyager 相關的表格全部清空再重新安裝一次 Voyager,就能正確生成中文語系的設定