GAE(Google Apps Engine)でLaravelが動くらしいので試してみました。
Laravelプロジェクトの作成
まずは普通にLaravelプロジェクトを作成します。
% composer create-project "laravel/laravel=9" hoge
最初はバージョンを指定せずに作ってみたのですが、Laravel10では動かなかったので、Laravel9で作り直しました。
ライブラリのインストール
以下のコマンドを実行してライブラリをインストールします。
% composer require google/cloud
GAEファイルシステムに関する修正
GAEではファイルアクセス可能なパスが /tmp のみなので、その辺の指定をします。
app.ymlを作成し、以下の内容を記述します。
runtime: php81 env_variables: APP_KEY: (.envのAPP_KEYの内容) APP_STORAGE: /tmp VIEW_COMPILED_PATH: /tmp SESSION_DRIVER: cookie
bootstrap/app.php の return $app; の前に、以下の内容を追加します。
$app->useStoragePath(env('APP_STORAGE', base_path() . '/storage')); return $app;
ローカルでの動作確認
ローカルで動かしてみて、動作することを確認します。
gcloud CLIのインストール
次はgcloud CLIをインストールします。
以下のページを参照してインストールしてください。
GAEプロジェクトの作成
Google Cloud Console にログインし、プロジェクト選択の画面から右上の「新しいプロジェクト」をクリックして、プロジェクトを作成します。
gcloud CLI の初期化
以下のコマンドを実行してgcloud CLIを初期化します。
% gcloud init
認証するメールアドレスを聞かれたり、関連付けるプロジェクトを聞かれるので、コマンドライン上で番号で応答します。
作成したLaravelアプリのデプロイ
以下のコマンドでデプロイできます。
コマンド入力直後に続けるかを確認されるので、yを入力して継続します。
完了するまで数分かかります。
% gcloud app deploy Services to deploy: descriptor: [app.yamlのパス] source: [Laravelプロジェクトのパス] target project: [GAEのプロジェクトID] target service: [default] target version: [20230329t180000] target url: [https://プロジェクトID.appspot.com] target service account: [App Engine default service account] Do you want to continue (Y/n)? y
デプロイが完了するとこんな感じのメッセージが出ます。
Beginning deployment of service [default]... ╔════════════════════════════════════════════════════════════╗ ╠═ Uploading nnnnn files to Google Cloud Storage ═╣ ╚════════════════════════════════════════════════════════════╝ File upload done. Updating service [default]...done. Setting traffic split for service [default]...done. Deployed service [default] to [https://プロジェクトID.appspot.com] You can stream logs from the command line by running: $ gcloud app logs tail -s default To view your application in the web browser run: $ gcloud app browse
GAE上のLaravelアプリの動作確認
以下のコマンドを実行して、ブラウザで動作確認します。
% gcloud app browse