教學PHPLaravel

部署 Laravel 專案

這篇文章將會教你如何在 Zeabur 上部署你的 Laravel 專案。

第一步:環境配置

你可以先在本機測試建置,確保你的專案可以正常運作。

你必須提供所使用的 PHP 版本給 Zeabur 作為運作環境,將版本資訊寫在composer.json 中,如以下所示:

{
  "require": {
        "php": "8.1"
  }
}

第二步: 建立專案(可選)

首先,你需要在本機開發環境初始化一個 Laravel 專案,我們可以按照 Laravel 官方文件,初始化 Laravel 專案。

建立完畢後,為其初始化一個 Git 儲存庫並部署到你的 GitHub 上。

第三步:部署 Laravel 專案

在你的專案中,點選 Deploy service 或者 Add new service 按鈕,並選擇 Deploy your source code.

deploy

搜尋想要部署的 Laravel 程式碼儲存庫,並點選匯入,你的 Laravel 應用程式就將自動開始部署。

第四步:為你的Laravel專案加入APP_KEY環境變數

每次 Laravel 開發人員建立 Laravel 應用程式時,生成 application key 或 APP_KEY 是最重要的初始步驟之一。

切換到專案環境變數設定頁面,並輸入你的 APP_KEY 環境變數。

你可以透過以下指令為你的 Laravel 產生一個 APP_KEY

php artisan key:generate

APP_KEY

連線 MySQL 資料庫

通常你的 Laravel 專案會需要連線 MySQL 資料庫,你可以透過以下步驟連線到 MySQL 資料庫。

  1. 你需要先在你的 Laravel 專案上安裝 ext-pdo_MySQL 擴充套件,這樣 Zeabur 才能為你啟用 MySQL 的 PHP 支援。在你的本機環境,請透過以下指令安裝這個擴充套件:

    composer require ext-pdo_mysql

    然後 commit 新的 composer.json 和 lock 檔案,接著 push 到你的 GitHub 上。

  2. 建立 MySQL 服務,然後在你的本機環境執行以下命令將 table 等 migrate 到 Zeabur 上。

    export DATABASE_URL=mysql://<username>:<password>@<host>:<port>/<database>
    php artisan migrate

    上面 <username><password><host><port><database> 都是你的 MySQL 服務資訊, 你可以在 MySQL 服務頁面的「Instruction」找到。

  3. 在你 Zeabur 上的 Laravel 服務頁面,建立一個 DATABASE_URL 環境變數,內容如下:

    mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}

    ${MYSQL_USER} 等變數的意義可以參考 MySQL 文件的環境變數一章

自動最佳化

Zeabur 在建構 Laravel 服務時,會執行這些最佳化指令 1

php artisan optimize
php artisan config:cache
php artisan event:cache
php artisan route:cache
php artisan view:cache

您可以使用 PHP_OPTIMIZE=false 變數來關閉這些自動最佳化命令,然後再使用自訂編譯命令微調您的最佳化流程。

Vite / Laravel Mix 支援

Zeabur 會在 package.jsonbuild 指令時,自動執行 npm installnpm run build。考慮到 Vite 和 Laravel Mix 預設都會設定 package.jsonbuild 指令,Zeabur 會在建構 Laravel 服務時自動編譯這些 assets。

Footnotes

  1. https://laravel.com/docs/11.x/deployment#optimization