LaravelアプリケーションをHerokuにデプロイする方法について、完全かつ包括的に解説します。以下の手順に従って、LaravelアプリケーションをHerokuにデプロイする準備を整え、問題なく動作させる方法を紹介します。
必要な準備
まず、以下のツールが必要です。まだインストールしていない場合は、公式サイトからダウンロードしてください。

-
Heroku CLI
Herokuにアプリケーションをデプロイするためには、Heroku CLIが必要です。これを使って、ローカルマシンとHerokuの間でアプリケーションを管理します。
Heroku CLIのインストール -
Git
Gitは、Herokuにコードをプッシュするために必要です。Gitをインストールしていない場合は、公式サイトからインストールしてください。
Gitのインストール -
Composer
LaravelはPHPフレームワークであり、Composerが依存関係の管理に必要です。Composerもインストールしていない場合は、以下のリンクからインストールしてください。
Composerのインストール -
PHPとMySQL
HerokuのLaravelアプリケーションを実行するために、PHPとMySQLが必要です。Herokuはこれらのサービスを提供していますが、ローカルでの開発環境には、PHPやMySQLがインストールされていることを確認してください。
手順
1. Laravelアプリケーションの準備
まず、Laravelアプリケーションをローカルで開発している場合、そのアプリケーションのルートディレクトリに移動します。
bashcd /path/to/your-laravel-app
まだLaravelプロジェクトを作成していない場合は、以下のコマンドで新しいプロジェクトを作成できます。
bashcomposer create-project --prefer-dist laravel/laravel your-laravel-app
2. Gitリポジトリの初期化
Herokuにデプロイするためには、Gitリポジトリを使用します。以下のコマンドでGitリポジトリを初期化します。
bashgit init
git add .
git commit -m "Initial commit"
3. Herokuにログイン
Heroku CLIを使ってHerokuにログインします。コマンドラインで以下を入力し、ブラウザが開いてHerokuアカウントの認証を行います。
bashheroku login
4. Herokuアプリケーションの作成
次に、Heroku上にアプリケーションを作成します。以下のコマンドを実行して、新しいHerokuアプリを作成します。
bashheroku create
このコマンドを実行すると、Herokuがランダムなアプリ名を生成し、そのURLが表示されます。URLは後で確認できます。
5. 環境設定ファイルの設定
Laravelアプリケーションには、.env
ファイルがあり、データベースやメール設定など、さまざまな環境設定が含まれています。Herokuにデプロイする場合、これらの設定をHerokuの環境変数として設定する必要があります。
まず、データベースの設定を行います。HerokuはPostgreSQLをデフォルトのデータベースとして提供しますが、MySQLを使用したい場合は、アドオンを追加する必要があります。以下のコマンドでMySQLアドオンを追加できます。
bashheroku addons:create cleardb:ignite
その後、MySQL接続情報を環境変数に設定します。HerokuはCLEARDB_DATABASE_URL
という環境変数を提供するので、このURLを使って.env
ファイルを更新します。
envDB_CONNECTION=mysql DB_HOST=
DB_PORT=3306 DB_DATABASE=<データベース名> DB_USERNAME=<ユーザー名> DB_PASSWORD=<パスワード>
6. デプロイメント用のファイルを追加
Herokuには、Procfile
という特別なファイルが必要です。これは、Herokuがどのようにアプリケーションを実行するかを指定するためのファイルです。Laravelアプリケーションの場合、次の内容をProcfile
としてルートディレクトリに追加します。
textweb: vendor/bin/heroku-php-apache2 public/
このファイルは、Apacheサーバーを使用してLaravelアプリケーションを実行することをHerokuに伝えます。
7. 依存関係をインストール
Herokuにデプロイする前に、アプリケーションの依存関係をインストールしておきます。
bashcomposer install --no-dev --optimize-autoloader
8. Herokuにコードをプッシュ
GitでHerokuリモートリポジトリを追加し、そのリポジトリにアプリケーションコードをプッシュします。
bashgit remote add heroku https://git.heroku.com/
.git git push heroku master
プッシュが完了すると、Herokuが自動的にビルドを開始し、アプリケーションがデプロイされます。
9. マイグレーションの実行
データベースのマイグレーションをHeroku上で実行するためには、次のコマンドを使用します。
bashheroku run php artisan migrate
これで、データベースのスキーマがHeroku環境に適用されます。
10. アプリケーションの確認
デプロイが完了したら、Herokuが提供するURLを使ってアプリケーションを確認できます。
bashheroku open
ブラウザが開き、アプリケーションが正常に動作していることを確認できます。
トラブルシューティング
もしデプロイ中に問題が発生した場合は、以下のコマンドでログを確認することができます。
bashheroku logs --tail
これにより、Heroku上で発生しているエラーをリアルタイムで確認できます。
まとめ
以上が、LaravelアプリケーションをHerokuにデプロイするための手順です。これらの手順を踏むことで、ローカルで開発したLaravelアプリケーションを簡単にHerokuにデプロイできます。データベースや環境変数の設定も含めて、Herokuの環境に適した形でアプリケーションを運用できるようになります。