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 を選択します。
デプロイしたい Laravel コードリポジトリを検索し、インポートをクリックすると、Laravel アプリケーションのデプロイが自動的に開始されます。
ステップ 4:Laravel プロジェクトに APP_KEY 環境変数を追加する
Laravel 開発者が Laravel アプリケーションを作成するとき、アプリケーションキー (APP_KEY) を生成することは、最も重要な初期ステップの一つです。
プロジェクトの環境変数設定ページに移動し、APP_KEY
環境変数を入力してください。
以下のコマンドを使用して、Laravel の APP_KEY
を生成することができます。
php artisan key:generate
MySQL データベースへの接続
Laravel プロジェクトでは通常、MySQL データベースへの接続が必要です。以下の手順で MySQL データベースに接続してください。
-
Laravel プロジェクトで
ext-pdo_MySQL
拡張モジュールをインストールする必要があります。これにより、Zeabur で MySQL の PHP サポートが有効になります。ローカル環境で以下のコマンドを実行して拡張モジュールをインストールしてください。composer require ext-pdo_mysql
新しい
composer.json
とロックファイルをコミットして、GitHub にプッシュします。 -
MySQL サービスを作成する その後、以下のコマンドをローカル環境で実行してテーブルなどを Zeabur にマイグレーションします。
export DATABASE_URL=mysql://<username>:<password>@<host>:<port>/<database> php artisan migrate
<username>
、<password>
、<host>
、<port>
、<database>
はすべて MySQL サービスの情報です。これらは MySQL サービスページの「Instruction」で確認できます。 -
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.json
に build
コマンドが設定されている場合、npm install
と npm run build
を自動的に実行します。Vite や Laravel Mix はデフォルトで package.json
の build
コマンドを設定するため、Zeabur は Laravel サービスを構築する際にこれらのアセットを自動的にビルドします。