LoginSignup
20
13

More than 5 years have passed since last update.

Google App EngineでHello, World!(PHP)

Posted at

Google App EngineでHello, World!(PHP)

5分でPHPアプリをGoogle App Engineで動かす
こちらのサイトを参考にさせて頂きつつ、アカウントの開設から、PHPが動くところまでの解説です。先人の足跡を辿るだけではなく、適宜解説を加えつつ記載していきます。

Google Cloud Platform の無料試用に登録する

Google Cloud Platform
スクリーンショット 2016-06-11 15.30.23.png

Google Cloud Platform 無料試用の利用規約には目を通しましょう。
60日間有効な300ドル分のクレジットが付与されることや、無料トライアル中は同時に使えるのが8コアに制限されることなどが記載されています。

また、無料トライアルについては日本語ページが用意されています。
無料トライアルについて
不意な課金を防ぐためにも課金の無効化については目を通しておきましょう。

(利用規約に問題がなければ)「はい」にチェックをして「同意して続行」をクリックします。
スクリーンショット 2016-06-11 16.01.06.png
口座の種類を「個人」にし、必要事項を入力してページ下部の「無料試用を開始」をクリックします。

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をクリック
スクリーンショット 2016-06-12 17.11.06.png

App Engineのメニューが表示されたら設定をクリック
スクリーンショット 2016-06-12 17.11.22.png

「アプリケーションを無効にする」ボタンをクリックする。
これで、アプリケーションを停止させることができました。
この状態で先ほどの「Hello, World!」のURLにアクセスしても「404 Not Found」となります。
スクリーンショット 2016-06-12 17.18.29.png

helloworld.phpとapp.yamlを編集してみる

git cloneで取得したapp.yamlは以下のようになっています。

runtime: php55
api_version: 1

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

これを以下のように修正します。

application: <YOUR_PROJECT_ID>
version: alpha-002
runtime: php55
api_version: 1

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

変更が目に見えるようにhelloworld.phpにも修正を加えましょう。

<?php

echo 'Hello, World!<br />';
echo 'Current PHP version: ' . phpversion();

念のためローカル環境で確認
dev_appserver.py .

問題がなければ再度デプロイします。
appcfg.py update ./
app.yamlにプロジェクトIDとバージョンを記述したので、最初にデプロイした時よりもパラメータを減らすことができました。

パラメータについてはappcfg.pyのヘルプに詳しく説明されています。
appcfg.py -h

この状態で先ほどのURLにアクセスしても、編集したhelloworld.phpの内容が反映されません。
バージョンを切り替えて(トラフィックを移行して)、alpha-002が画面に表示されるように設定を変更する必要があります。
スクリーンショット 2016-06-12 19.41.05.png

ConsoleからApp Engineを選択、メニューのバージョンをクリック、alpha-002にチェックを入れて「トラフィックを移行」をクリックします。
これで先ほどの画面をリロードすれば新しいhelloworld.phpが表示されるようになるはずです。

まとめ

アカウントを作成したり、ドキュメントを読んでいると、ここまでで結構な時間が掛かってしまいましたが、特に難しい箇所などなくGoogle App Engineを使い始める… Hellow, world!が表示できて、それをカスタマイズすることができました。

20
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
13