Laravel 錯誤自救指南

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,就能正確生成中文語系的設定


分享這篇文章:

訂閱電子報,索取 Laravel 學習手冊

價值超過 3000 元,包含常用 Laravel 語法與指令!

一小時免費求職講座

3個應徵軟體工程師前該知道的秘訣

取得免費課程連結

Laravel 百萬年薪特訓營

從最基礎的 PHP 語法開始,包含所有你該知道的網頁基礎知識,連同 Laravel 從零開始一直到實戰,最後還將告訴你如何找好工作,讓你及早擁有百萬年薪