Laravel 專案從 GitHub clone 下來後要做什麼?

筆者不小心把專案搞壞了,於是把整個目錄砍掉重新從 GitHub clone 下來。
由於維護和安全性等考量,Laravel 預設有 .gitignore,有些檔案並沒有 push 到 GitHub。
專案 clone 之後必須要「重建」才能正常執行。


重建步驟

以下是幾個簡單的重建步驟:

1. 安裝依賴套件

到專案目錄執行以下指令,將框架所需的相依套件安裝完成:

$ composer install

2. 設定 .env 檔

將 .env.example 複製成 .env。
如果先前沒有花時間維護 .env.example,記得要修改裡面的內容,
如資料庫的相關參數DB_DATABASE=DB_USERNAMEDB_PASSWORD

3. 設定加密的 APP_KEY

執行以下指令,Laravel 就會自動在 .env 設定新的 APP_KEY

$ php artisan key:generate

4. 設定好你的資料庫

例如建立 SQLite 在 Laravel 的預設位置

$ touch database/database.sqlite

或是建立 MySQL 的所需資料庫

$ mysql -uroot -p

mysql> CREATE DATABASE your_database_name;

5. Migration 和 Seeding

將資料表結構建立起來

$ php artisan migrate

若專案有定義 seed,透過以下指令將資料填充至資料庫

$ php artisan db:seed

以上兩行指令也可以合併成這樣

$ php artisan migrate --seed

6. 建立符號連結

若你有使用到 public storage(如:Storage::disk('public')),
記得使用以下指令,將 storage 軟連結到 storage/app/public

$ php artisan storage:link

7. 設定伺服器

例如到 NGINX 新增、調整 conf 檔

8. 設定任務排程

如果有在 Laravel 中定義排程的任務
記得在 crontab 中增加 Laravel 指令排程器

# 在 crontab -e 中
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1

故障排除

如果你在使用valet或是php artisan serve等伺服器的時候遇到以下錯誤:

The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.

就有可能是上面的動作沒有做完前就先運行 Laravel。
請做完以上重建步驟後,直接重開伺服器即可。

如果還是停在相同錯誤

請先清除設定檔快取後重開 Laravel。清除快取指令為:

$ php artisan config:clear

參考資料