laravelプロジェクトを作成しGAEに展開する


以下サイトに沿ってやっています。
公式Installation
Run Laravel on Google App Engine Flexible Environment

前提

  • php 7.1.3以上
    phpbrewなどを利用する。
  • composerがインストール済み
    ライブラリ依存を整理するツール。欲しいライブラリAを取ってきたらさらにライブラリBが必要で... みたいな煩雑さを任せられる。
  • gcpのプロジェクトを持っていて、gcloudコマンドとか使える。

laravelプロジェクトを作成する(方法1)

  • laravelコマンドのインストール
composer global require "laravel/installer"
  • パスを通す
    .bashrcやconfig.fishに以下を追記
# bash
export PATH=$PATH:~/.composer/vendor/bin/
# fish
set -x PATH ~/.composer/vendor/bin/ $PATH
  • laravelプロジェクト作成
laravel new blog

laravelプロジェクトを作成する(方法2)

composer create-project --prefer-dist laravel/laravel blog

local環境を構築してブラウザにアクセスしてみる

cd blog
composer install
# composerでlaravelプロジェクトをインストールしていない場合はここで(php artisan key:generate)
cp -p .env.example .env
php artisan serve

http://localhost:8000
にアクセスし、Laravelページが表示されれば成功。

GAEに展開する

  1. app.yamlファイルを作成。
    以下をapp.yamlとしてlaravelプロジェクトのルートディレクトリに置く。ここではblog以下。
runtime: php
env: flex

runtime_config:
  document_root: public

# Ensure we skip ".env", which is only for local development
skip_files:
  - .env

env_variables:
  # Put production environment variables here.
  APP_LOG: errorlog
  APP_KEY: YOUR_APP_KEY
  STORAGE_DIR: /tmp
  1. YOUR_APP_KEYの置き換え
php artisan key:generate --show

で取得できるキーをapp.yamlのYOUR_APP_KEYと置き換える。

  1. composer.jsonに追記する
    blog以下のcomposer.jsonのscriptsに以下を追記。
"post-install-cmd": [
    "chmod -R 755 bootstrap\/cache",
    "php artisan cache:clear"
]

  1. 展開してアクセス
gcloud app deploy

展開が完了すると、
http://YOUR_PROJECT_ID.appspot.com
みたいなurlが表示されると思うのでアクセスし、laravelページが表示されていれば成功。