SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

GAE(Google App Engine)でphpのWebサイトを作る

問題

GAE(Google App Engine)でphpが使えるらしいですけど、どうやるんですか?

google-app-engine

答え

チュートリアルに従えば、gitリポジトリからチェックアウトする手順なども教えてくれるのだが、その辺をすっ飛ばして、最小限の手順でphpのプログラムを実行してみる。

1、無料試用でよいので申し込む

クレジットカード情報が必要になるが、本人確認のためとのことなので登録する。

その後もそれなりの数のアクセスを集めるまでは無料枠に収まるはずなので、いきなり課金されることはないでしょう。

2、プロジェクトを作る

google-app-engine-2

3、Google Cloud Shell を開く

Google Cloud Shell のおかげで、開発環境やテスト環境を自前で用意しなくても開発作業ができてしまう。

google-app-engine-3

どこかのサーバーにsshで接続したような状態。

google-app-engine-4

3、プログラムを書く

ファイルの配置は好きにしてよいので、一例として、src の中に場所を作って、プログラムを書く。

$ mkdir src/sample
$ cd src/sample
$ vi test.php
<?php
// 適当なプログラムを書いて保存。制限があるので、制限を解除しないと phpinfo() は実行できない。
echo date('Y-m-d H:i:s');

4、app.yaml を書く

設定項目や設定方法はいろいろある。以下は一例。

$ vi app.yaml
runtime: php55 # php使いたい
api_version: 1
threadsafe: true # パフォーマンス対策

# 課金対策(無駄にインスタンスを立ち上げないように)
automatic_scaling:
  min_idle_instances: automatic   # idle状態にあるインスタンスの最小値
  max_idle_instances: 1           # idle状態にあるインスタンスの最大値      
  min_pending_latency: 3000ms     # リクエストを処理するまでに許される待ち時間の最小
  max_pending_latency: automatic

handlers:
- url: /(.+\.php)$
  script: \1

apache の mod_rewrite で 全部 index.php でさばく感じの設定にするなら、以下のようにしてもよい。

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

4、デプロイする

$ gcloud app deploy

これで https://xxxxx-yyyyy-123.appspot.com/ のような自動的に割り当てられたドメインで何かが表示されるようになる。

上の handlers の設定だと、https://xxxxx-yyyyy-123.appspot.com/test.php で、test.php が見える。

プロジェクトを複数作ってしまった後など、プロジェクトを選択する必要があれば以下のコマンドでプロジェクトを選択してからデプロイ。

$ gcloud config set project xxxxx-yyyyy-123

5、独自ドメインを割り当てる

カスタムドメインの設定をして、DNSの設定もすれば、独自ドメインでアクセスできるようになる。

左上のハンバーガー → App Engine → 設定 → カスタムドメイン

参考URL

https://cloud.google.com/appengine/docs/php/config/mod_rewrite

関連するメモ

コメント