Google App EngineでHello, World!(PHP)
5分でPHPアプリをGoogle App Engineで動かす
こちらのサイトを参考にさせて頂きつつ、アカウントの開設から、PHPが動くところまでの解説です。先人の足跡を辿るだけではなく、適宜解説を加えつつ記載していきます。
Google Cloud Platform の無料試用に登録する
Google Cloud Platform 無料試用の利用規約には目を通しましょう。
60日間有効な300ドル分のクレジットが付与されることや、無料トライアル中は同時に使えるのが8コアに制限されることなどが記載されています。
また、無料トライアルについては日本語ページが用意されています。
無料トライアルについて
不意な課金を防ぐためにも課金の無効化については目を通しておきましょう。
(利用規約に問題がなければ)「はい」にチェックをして「同意して続行」をクリックします。
口座の種類を「個人」にし、必要事項を入力してページ下部の「無料試用を開始」をクリックします。
How to run Hello World with PHP
Google App Engineは各種ドキュメントも充実しています。
Quickstart for PHP App Engine Standard Environmentを読みつつ進めます。
事前準備
Google App Engine SDKをダウンロードしてインストールします。
OSによってダウンロードするファイルが異なるため詳細は省略しますが、GoogleAppEngineLauncherはPython2.7を必要とします。
Windowsを使っている場合には事前にインストールしておく必要があります。
Download the Google App Engine SDK
Hello World appの準備
参考にさせていただいたkoni氏のサイトではindex.phpとapp.yamlを自身で用意するように書かれていますが、Quickstartの手順で進めていきます。
ソースコードを管理しておくのに適切なディレクトリで以下のコマンドを実行し、サンプルをcloneします。
git clone -b phase0-helloworld https://github.com/GoogleCloudPlatform/appengine-php-guestbook.git helloworld
サンプルコードのディレクトリに移動
cd helloworld
lsコマンドでディレクトリの中身を確認すると、以下のように3つのファイルがあるはずです。
ls -1 app.yaml helloworld.php README.md
アプリケーションのテスト
以下のコマンドを実行し、ローカル開発環境を起動します。
dev_appserver.py ./
サーバーが起動したら以下のアドレスにブラウザでアクセスします。
http://localhost:8080/
Hello, World!
と表示されれば成功です。
Datastore Viewer
the PHP Development Server referenceに書かれていますが、以下のアドレスにアクセスすることでDatastoreの状態を確認することができます。
http://localhost:8000/datastore
アプリケーションのデプロイ
アプリケーションのデプロイをするためにはプロジェクトIDが必要になるため、事前に確認しておきます。
先ほど確認したプロジェクトIDを引数に入れて以下のコマンドを実行します。
appcfg.py -A <YOUR_PROJECT_ID_> -V v1 update ./
デプロイが成功すると以下のURLで確認できるようになります。
http://<YOUR_PROJECT_ID>.appspot.com/
Hello, World!
と表示されれば成功です。
プロジェクトの削除 または アプリケーションの停止
Quickstart for PHP App Engine Standard Environmentには、検証のために使用したプロジェクトは不意な課金を防ぐために削除しろと書かれています。
Cloud Platform Consoleこちらの画面で不要になったプロジェクトにチェックを入れて「プロジェクトを削除」をクリックすれば検証に作成したプロジェクトを削除できます。
引き続き検証を続けたいのでプロジェクトを削除したくない場合には、アプリケーションを停止させます。
Google Cloud Platformのダッシュボードにアクセスし、画面左上のハンバーガーメニューからApp Engineをクリック
「アプリケーションを無効にする」ボタンをクリックする。
これで、アプリケーションを停止させることができました。
この状態で先ほどの「Hello, World!」のURLにアクセスしても「404 Not Found」となります。
helloworld.phpとapp.yamlを編集してみる
git cloneで取得したapp.yamlは以下のようになっています。
runtime: php55
api_version: 1handlers:
- url: /.*
script: helloworld.php
これを以下のように修正します。
application: <YOUR_PROJECT_ID>
version: alpha-002
runtime: php55
api_version: 1handlers:
- url: /.*
script: helloworld.php
変更が目に見えるようにhelloworld.phpにも修正を加えましょう。
'; echo 'Current PHP version: ' . phpversion();
念のためローカル環境で確認
dev_appserver.py .
問題がなければ再度デプロイします。
appcfg.py update ./
app.yamlにプロジェクトIDとバージョンを記述したので、最初にデプロイした時よりもパラメータを減らすことができました。
パラメータについてはappcfg.pyのヘルプに詳しく説明されています。
appcfg.py -h
この状態で先ほどのURLにアクセスしても、編集したhelloworld.phpの内容が反映されません。
バージョンを切り替えて(トラフィックを移行して)、alpha-002が画面に表示されるように設定を変更する必要があります。
ConsoleからApp Engineを選択、メニューのバージョンをクリック、alpha-002にチェックを入れて「トラフィックを移行」をクリックします。
これで先ほどの画面をリロードすれば新しいhelloworld.phpが表示されるようになるはずです。
まとめ
アカウントを作成したり、ドキュメントを読んでいると、ここまでで結構な時間が掛かってしまいましたが、特に難しい箇所などなくGoogle App Engineを使い始める… Hellow, world!
が表示できて、それをカスタマイズすることができました。