Laravel プロジェクトのデプロイ

この記事では、Laravel プロジェクトを Zeabur にデプロイする方法を解説します。

ステップ 1:環境設定

まずローカルでビルドをテストし、プロジェクトが正常に動作することを確認してください。

Zeabur が利用する PHP バージョンを指定する必要があります。以下のように、バージョン情報を composer.json に記述してください。

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

ステップ 2: プロジェクトを作成 (オプション)

最初に、ローカルの開発環境で Laravel プロジェクトを初期化する必要があります。Laravel 公式ドキュメント に従って、Laravel プロジェクトを初期化してください。

プロジェクトの作成が完了したら、Git リポジトリを初期化し、GitHub にデプロイしてください。

ステップ 3:Laravel プロジェクトをデプロイ

プロジェクトのダッシュボードで Deploy service または Add new service ボタンをクリックし、Deploy your source code を選択します。

deploy

デプロイしたい Laravel コードリポジトリを検索し、インポートをクリックすると、Laravel アプリケーションのデプロイが自動的に開始されます。

ステップ 4:Laravel プロジェクトに APP_KEY 環境変数を追加する

Laravel 開発者が Laravel アプリケーションを作成するとき、アプリケーションキー (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

    新しい composer.json とロックファイルをコミットして、GitHub にプッシュします。

  2. MySQL サービスを作成する その後、以下のコマンドをローカル環境で実行してテーブルなどを 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 サービスを構築する際にこれらのアセットを自動的にビルドします。

Footnotes

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