【Railway】Laravelアプリのデプロイ

この記事で、RailwayにLaravelアプリをデプロイする方法を学びます。クイックセットアップ、プライベートネットワーキング、データベース統合、ワンクリックデプロイ、その他のデプロイ戦略について説明します。

Share

Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)

Laravelアプリのデプロイ

Laravelは、コードのシンプルさとエレガンスを重視するウェブ職人のために設計されたPHPフレームワークです。クリーンで表現力豊かな構文が特徴で、現代のウェブアプリケーションで一般的な多くのタスクを処理するための組み込みツールを提供し、開発をよりスムーズで楽しいものにします。

この記事では、3つの方法でRailwayにLaravelアプリをデプロイする方法について説明します。

  1. テンプレートからのワンクリックデプロイ
  2. GitHubリポジトリから
  3. CLIを使用

テンプレートからのワンクリックデプロイ

Railwayにデプロイ

このテンプレートは、基本的なLaravelアプリケーションとPostgresデータベースをRailwayにセットアップします。また、コミュニティによって作成されたさまざまなLaravelアプリテンプレートから選択することもできます。

デプロイ後はテンプレートから Eject して、GitHub アカウントにリポジトリのコピーを作成することを強くおすすめします。

GitHubリポジトリからデプロイ

GitHub上のLaravelアプリをRailwayにデプロイするには、以下の手順に従ってください。

  1. 新しいプロジェクトを作成します。
  2. Deploy from GitHub repo をクリックします。
  3. GitHubリポジトリを選択します。
    • Railwayは、有効なGitHubアカウントがリンクされている必要があります。Railwayアカウントが関連付けられていない場合は、リンクするように求められます。
  4. Add Variables をクリックします。
    • アプリのすべての環境変数を追加します。
  5. Deploy をクリックします。

デプロイが成功すると、Railwayサービスが作成されます。デフォルトでは、このサービスは公開されません。

注: Railwayはデプロイ中にLaravelアプリであることを自動的に検出し、php-fpmとnginxを介してアプリを実行します。

サービスの公開URLを設定するには、新しいサービスの「設定」タブのNetworkingセクションに移動し、「Generate Domain」をクリックします。

注: LaravelアプリをPostgres(またはMySQL)データベース、cronジョブ、およびワーカーとともに実行する方法については、データベース、マイグレーション、Cron、ワーカーのセットアップセクションに進んでください。

CLIからデプロイ

Laravelアプリがローカルにある場合は、次の手順に従います。

  1. Railway CLIをインストールして認証します。
  2. Laravelアプリのルートディレクトリ内で railway init を実行して、Railwayに新しいプロジェクトを作成します。
    • プロンプトの手順に従ってプロジェクトに名前を付けます。
  3. railway up を実行してデプロイします。
    • CLIはLaravelアプリのファイルをスキャン、圧縮し、Railwayのバックエンドにアップロードしてデプロイします。
    • ターミナルには、アプリがRailwayでデプロイされている間のリアルタイムログが表示されます。
  4. デプロイが成功したら、ダッシュボードの最近のデプロイで View logs をクリックします。
    • サーバーが実行されていることがわかります。ただし、環境変数を追加するように求めるログも表示されます。
  5. Railwayダッシュボードでサービスの Variables セクションをクリックします。
  6. Raw Editor をクリックし、アプリのすべての環境変数を追加します。
  7. Deploy をクリックしてアプリを再デプロイします。

サービスの公開URLを設定するには、新しいサービスの「設定」タブのNetworkingセクションに移動し、「Generate Domain」をクリックします。

注: 次のステップでは、Laravelアプリをデータベース、マイグレーション、cronジョブ、ワーカーとともに実行する方法を示します。

データベース、マイグレーション、Cron、ワーカーのセットアップ

このセットアップでは、LaravelアプリをRailwayにデプロイし、データベース、スケジュールされたタスク(cron)、およびキュワーカがすべて完全に機能することを確認します。

デプロイ構造は「雄大なモノリス」アーキテクチャに従い、Laravelアプリ全体が単一のコードベースとして管理されますが、Railwayでは4つの別々のサービスに分割されます。

  • アプリサービス:HTTPリクエストとユーザーインタラクションを処理します。
  • Cronサービス:スケジュールされたタスク(メール送信やレポート実行など)を管理します。
  • ワーカーサービス:キューからバックグラウンドジョブを処理します。
  • データベースサービス:アプリケーションのデータを保存および取得します。

私の雄大なモノリスLaravelアプリ

開始するには、次の手順に従ってください。

  1. Laravelアプリのルートディレクトリに、build-app.shrun-worker.shrun-cron.sh の4つのBashスクリプトを作成します。 これらのスクリプトには、Laravelアプリのアプリ、ワーカー、およびcronサービスをRailwayにデプロイして実行するために必要なコマンドが含まれます。
  2. プロジェクトキャンバスにPostgresデータベースサービスを作成します。
    • Deploy をクリックします。
  3. プロジェクトキャンバスに新しいサービスを作成します。
    • サービスに App service という名前を付け、Settings をクリックして構成します。
    • Source セクションでGitHubリポジトリを Source Repo に接続します。
    • Build セクションの Custom Build Commandchmod +x ./build-app.sh && sh ./build-app.sh を追加します。
    • Deploy セクションの Pre-Deploy Commandphp artisan migrate を追加します。
    • サービスの上部に戻り、Variables をクリックします。
    • Laravelアプリに必要なすべての環境変数、特に以下にリストされているものを追加します。
      • APP_KEYphp artisan key:generate コマンドから取得した値を設定します。
      • DB_CONNECTION:値を pgsql に設定します。
      • QUEUE_CONNECTION:値を database に設定します。
      • DB_URL:値を ${{Postgres.DATABASE_URL}} に設定します(これは新しいPostgresデータベースのURLを参照します)。サービス変数の参照について詳しく学びます。
    • Deploy をクリックします。
  4. プロジェクトキャンバスに新しいサービスを作成します。
    • サービスに cron service という名前を付け、Settings をクリックします。
    • Source セクションでGitHubリポジトリを Source Repo に接続します。
    • Deploy セクションの Custom Start Commandchmod +x ./run-cron.sh && sh ./run-cron.sh を追加します。
    • サービスの上部に戻り、Variables をクリックします。
    • ステップ3で既に強調表示されているすべての必要な環境変数を追加します。
    • Deploy をクリックします。
  5. プロジェクトキャンバスに再度新しいサービスを作成します。
    • サービスに worker service という名前を付け、Settings をクリックします。
    • Source セクションでGitHubリポジトリを Source Repo に接続します。
    • Deploy セクションの Custom Start Commandchmod +x ./run-worker.sh && sh ./run-worker.sh を追加します。
    • サービスの上部に戻り、Variables をクリックします。
    • ステップ3で既に強調表示されているすべての必要な環境変数を追加します。
    • Deploy をクリックします。

run-cron.sh ファイルに以下の内容を追加します。

#!/bin/bash
# このファイルに実行権限があることを確認してください。`chmod +x run-cron.sh` を実行します。
# このコードブロックは、Laravelスケジューラを1分ごとに実行します。
while [ true ]
    do
        echo "Running the scheduler..."
        php artisan schedule:run --verbose --no-interaction &
        sleep 60
    done

run-worker.sh ファイルに以下の内容を追加します。

#!/bin/bash
# このファイルに実行権限があることを確認してください。`chmod +x run-worker.sh` を実行します。
# このコマンドはキューワーカーを実行します。
# 代替案は、php artisan queue:listenコマンドを使用することです。
php artisan queue:work

build-app.sh ファイルに以下の内容を追加します。 注: アプリサービスがビルドされるたびに実行したい追加のコマンドをスクリプトに追加できます。

#!/bin/bash
# このファイルに実行権限があることを確認してください。`chmod +x build-app.sh` を実行します。
# いずれかのコマンドが失敗した場合はスクリプトを終了します。
set -e
# NPMを使用してアセットをビルド
npm run build
# キャッシュをクリア
php artisan optimize:clear
# Laravelアプリケーションのさまざまなコンポーネントをキャッシュ
php artisan config:cache
php artisan event:cache
php artisan route:cache
php artisan view:cache

この時点で、3つのサービスすべてがデプロイされ、Postgresデータベースサービスに接続されているはずです。

  • Cron Service:このサービスは、スケジュールされたタスクを管理するためにLaravelスケジューラを実行する必要があります。
  • Worker Service:このサービスは実行中であり、キューからジョブを処理する準備ができている必要があります。
  • App Service:このサービスは実行中であり、ユーザーがアプリケーションにアクセスできるように公開ドメインを持つ必要がある唯一のサービスです。

アプリサービス

注: このデプロイアプローチを示すコミュニティテンプレートが利用可能です。このテンプレートを簡単にデプロイし、アプリケーション用に独自のGitHubリポジトリに接続できます。

ロギング

Laravelは、デフォルトでディスク上のディレクトリにログを書き込みます。ただし、Railwayの一時的なファイルシステムでは、この設定ではログは永続化されません。

ログとエラーがRailwayのコンソールまたは railway logs で表示されるようにするには、LOG_CHANNEL 環境変数を errorlog に更新します。RailwayダッシュボードまたはCLIを介して次のように設定できます。

railway variables --set "LOG_CHANNEL=errorlog"

Laravel Sailでデプロイできますか?

DockerでLaravelアプリケーションをデプロイするための標準的なアプローチであるLaravel Sailの使用を考えているかもしれません。その核となるSailは、環境を管理するために docker-compose.yml ファイルに依存しています。

ただし、Railwayは現在Docker Composeをサポートしていないことに注意することが重要です。

次のステップ

Railwayでのエクスペリエンスを最大限に活用する方法については、次のリソースを参照してください。

Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)

Read more

サービス更新履歴

ここでは、LiveQのサービス・製品への変更を全て紹介しております。 このページは大きな変更があった場合に更新されます。 いつごろにどのような機能がリリースされたかが分かります。 2026年6月: 高速化・安定化 * 5月よりサーバーおよびアプリケーションの大型リニューアルに取り組み、6月に読み込み速度の向上や、大規模アクセス時にも安定して高速に動作するように変更をおこないました。 2026年4月: 画像スライド * 新たなスライドの種類として画像スライドを追加しました。 * PowerPoint, PDFファイルを一括インポートし、画像スライドとして追加する機能を追加しました * そのほか多数の細かな変更(操作性などのデザイン改善や、不具合)をおこないました 2026年3月: ワードクラウド、コメントのAIモデレーション(監視) * 新たなスライドの種類としてワードクラウドを追加しました * コメントをAIで自動監視する機能をリリースしました * そのほか細かな改善や不具合の修正をおこないました 2026年2月: 有料プランのデータエクスポート

By 阿部 隼也

チームメンバーを招待する方法

チームメンバーを追加するには、招待する必要があります。 その招待方法を紹介します。 招待可能なチームメンバーの数は、ご利用のプランによって異なるため、事前にご確認ください。 チームページの「新しいチームメンバーを招待」にて、招待するメンバーのメールアドレスを入力し、「招待を送信」をクリックします。 招待された側で招待を承認 次に、招待された側の方によって招待を承認する必要があります。 ※この承認にはLiveQのアカウントが必要となりますので、必ず事前にご登録ください。 下記のような招待メールが届きます。 件名:【LiveQ】チームへの招待が届いています 差出人:[email protected] 既にLiveQに登録済みの方はそのまま「招待を承認して参加する」ボタンをクリックします。 まだLiveQに登録していない方は、登録後、同様に承認ボタンをクリックします。 チームを切り替える 招待を承認すると、チームページに下記のように「チーム切り替え」ができるようになります。 招待したユーザーにもメールが届きます 招待が承認されると、招待したユーザーに

By 阿部 隼也