2013年8月31日土曜日

Google App Engine SDK for PHP を使ってみた

Google App Engine を1年ぶりいじることにしたのですが、さっぱり忘れていたので備忘録としてこれを残しておきます。
今回、Google App Engine を使った目的はこちらになります。

当初は Python を使うことを想定していましたが、PHP の SDK が出ていました。
preview 版のようでしたがサイト監視を PHP で書いていたので、使ってみることにしました。

では、さっそくセットアップからしていきましょう。

環境セットアップ
ダウンロード
環境のダウンロードはこちらから行います。

で、SDK をダウンロードするには Limited Preview に登録しないといけないとのこと。
リンクをクリックすると Google App Engine for PHP のページが開くので、「Register for the Limited Preview」のボタンをクリック。


ログインしていたら、「Congratulations, you've been whitelisted!」と出るので、これで終わり。
セットアップ方法のページへのリンクがあるのでそこを開きます。
Windows なので、「Installing on Windows」を開きます。

そこに書かれているとおりに Python 2.7 と PHP 5.4 をダウンロード、展開します。
PHP は「VC9 x86 Thread Safe」です。
展開後、それぞれパスを通しました。

つづいて、SDK をダウンロードします。
こちらも .zip ファイルになっているので、適当な場所に展開します。

Hello World!
ダウンロードができたら、さっそく試してみましょう。こちらを参考に進めていきます。

適当なフォルダに .php ファイルを作り、簡単なコードを記述します。
<?php
    echo 'Hello World!';
(> で閉じなくていいのか…)

続いて app.yaml ファイルを作成します。
ファイルの内容は以下のように記述します。
application: sample
version: 1
runtime: php
api_version: 1

handlers:
- url: /.*
  script: sample.php
script のところは先ほど作成した php のファイル名を設定します。
このファイルは php ファイルと同じディレクトリに保存します。

次に、コマンドプロンプトを開き、
以下のコマンドを入力してテストサーバーを起動させます。
dev_appserver.py --php_executable_path=C:\Users\hogehoge\php ./sample
php_executable_path には php-cgi のあるパスを絶対パスで、
最後の引数には php と app.yaml ファイルのあるパスを渡します。

サーバーが起動したら、ブラウザで以下の URL を開きます。
http://localhost:8080/

すると、ブラウザに Hello World! と表示されます。
のはずでしたが、エラーが出ました。


エラー文でぐぐったらドンピシャな答えがありました。
google app engine - Permission denied error when i try to start appengine php server - Stack Overflow

--php_executable_path には php-cgi.exe のあるディレクトリパスではなく、php-cgi.exe のパスそのものを指定する必要があったようです。
dev_appserver.py --php_executable_path=C:\Users\hogehoge\php\php-cgi.exe ./sample

うまくいきました。


次に目的の php に差し替えてテストし、動作することを確認しました。
(今回は使わないので、いくつかのスタートガイドを飛ばしてます。)

アップロードする
まずはアプリケーションを作成します。
https://appengine.google.com/ にアクセスし、「Create Application」のボタンを押します。
必要な項目を記入して、もう一度「Create Application」ボタンを押すと作成完了です。
作成できたら、app.yaml ファイルの application の名前を登録したアプリケーションIDに変更をしておきます。
今回は便宜上 hogehoge とします。

次に以下のコマンドを実行します。
appcfg.py update sample/
最後の引数はファイルのあるパスを指定します。
実行するとメールアドレスとパスワードを聞かれるので入力し Enter 。
正常に終了すると「PM Competed update of app: hogehoge, version 1」と出力されます。

最後に、アップロードしたアプリケーションにアクセスしてみましょう。
ブラウザで http://hogehoge.appspot.com を開くと実行されます。

次回
今回無事にアップロードでき、これで目的の php が実行できるところまで出来ました。
次回は、スケジューリングとメール送信に対応していきたいと思います。

また、つづく。

0 件のコメント:

コメントを投稿