読者です 読者をやめる 読者になる 読者になる

koni blog

東京のウェブエンジニア koni です!ウェブサービスをガシガシ作っていきます!

5分でPHPアプリをGoogle App Engineで動かす

Google App Engine PHP

以前紹介したGoogle App Engineですが、本当に簡単に動くところまでいけるので、5分で動かすところまで行ってみましょう。

手順① Google Cloud Platform の登録とGAEのリージョンの指定

以下から、アカウントを作成し、任意の名前でプロジェクトを作成します。作成したアプリケーションのURLは、「プロジェクトID」で決まります。プロジェクトIDは全世界でグローバルで、あとから変えられませんので、慎重に決めましょう。

Google Cloud Platform

f:id:konisimple:20170326005105p:plain

またクレカが必要ですが、無料枠があるのと、3万円の無料利用分があるので、テスト程度では課金されません。

次に左上のメニューからGAEのページを開き、下のような画面でリージョンだけ指定しておきます。

東京にする場合は、asia-northeast1を選択します。

f:id:konisimple:20170111002130p:plain

手順② SDKのインストール

以下から必要なSDKをインストールします。 インストールすると、デプロイ用のコマンドと、ローカル用の開発環境が使えるようになります。

Download and Install the SDK for App Engine  |  App Engine Documentation  |  Google Cloud Platform

  1. 上記の GoogleAppEngineLauncher-1.9.30.dmg をDLします
  2. dmgを開くとGoogleAppEngineLauncherが入っているので、Applicationフォルダに移します。
  3. 起動すると、コマンドにパスを通すか聞かれるので、OKを押します。
  4. このアプリはもう使わないので閉じます。

このアプリ、python製のデプロイなどのコマンドを叩くだけのGUIなのですが、あまり使い勝手がよくないので、基本コマンドで進めます。

手順③ ソースコードを書く

適当な名前でディレクトリを作り、その中に以下のファイルを入れます。このディレクトリの中身をデプロイすることになります。

index.php

以下のようなPHPのプログラムを書き、index.phpで保存しましょう。

<?php
  echo 'Hello, World!';

app.yaml

このファイルで、アプリケーション名、実行環境(PHP5.5か5.3か)、ルーティングの設定、静的ファイルの設定を行います。

application: [プロジェクト名]
version: 1
runtime: php55
api_version: 1

handlers:
- url: /.*
  script: index.php

手順④ ローカルでテストしてみる

以下のコマンドを実行すると、ローカル開発環境が立ち上がります。

$ cd /path/to/project_dir (index.phpがあるディレクトリ)
$ /path/to/sdk/dev_appserver.py .

この状態でブラウザを開き、以下にアクセスすると、Hello Worldが表示されるはずです。

http://localhost:8080/

ちなみに、以下でローカル環境の管理画面があり、DataStoreの中身やMemcachedの中身や、インスタンスの数などが見られます。

http://localhost:8080/

手順⑤ デプロイする

テストは問題ないので、デプロイしましょう。

$ cd /path/to/project_dir (index.phpがあるディレクトリ)
$ /path/to/sdk/appcfg.py update .

ブラウザで以下のURLを開きます。

http://[プロジェクト名].appspot.com/

↑このURLは、SSL対応していて、httpsでもつながります。プロジェクト名に.があるときは、.-dot-にするとつながります。

HelloWorldと表示されれば成功です!

手順⑥ コンソールで確認する

使用量の確認

プロジェクトトップに使用しているリソースが表示されます。 コードにsleepとか入れて、更新すると、インスタンスが増えるのがわかると思います。

f:id:konisimple:20160106120333p:plain

バージョンの確認

デプロイが成功すると、「バージョン」タブの日時が変わります。 app.yamlのversionを変えると別versionとして認識され、A/Bテストができます。

f:id:konisimple:20160106120934p:plain

アクセスログの確認

アクセスログは、左のタブで「ログ」を選択すると、見られます。 アプリからsyslogに送ったデータもここから確認できます。

f:id:konisimple:20160106120521p:plain

まとめ

GAE のデプロイは本当に簡単。

慣れれば、プロジェクト作成(30秒)、app.yaml作成(1分)、デプロイ(30秒)ということで、2分くらいでデプロイできちゃいます。

PHPを新たに覚える方や、さくっとツール作る、なんてときにも簡単でおすすめです。

よいGAEライフを!!

次のステップ

次のステップとしては、以下がおすすめです。

ゲストブックを作るチュートリアル

https://cloud.google.com/appengine/docs/php/gettingstarted/introduction

phpMyAdminを設置するチュートリアル

Using phpMyAdmin with Cloud SQL on App Engine Standard Environment  |  Cloud SQL for MySQL  |  Google Cloud Platform

PHPの設定を変えたい

date.timezoneをJSTにするのは、php.iniというファイルをルートディレクトリに置いて変えます。詳細は以下。

The php.ini File  |  App Engine standard environment for PHP  |  Google Cloud Platform

ルーティングの設定など、app.yamlの設定を見たい

app.yaml Reference  |  App Engine standard environment for PHP  |  Google Cloud Platform

追記(2017/3/26)リージョン選択のタイミングについて

以前は以下のような記述がありましたが、リージョン選択はいつのまにかGAEを利用開始するタイミングに変わりました。

プロジェクト作成時にリージョンを選びます。これはあとから変えられません!東京リージョンを使う場合は、ここで必ず asia-northeast1 を選択します。

参考資料