Ryo Yamasaki(@vierjp)です。
Google I/Oでハンズオンに参加したおかげか、
すぐにGoogle App Engine for PHPのLimited Previewを使えるようにしてもらえたので早速試してみました。
◯Google App Engine for PHP Limited Preview申し込み
・Google App Engineのアカウントとアプリの作成
申し込みは自分のGoogleアカウントに紐付いている「AppEngineの"アプリ"」に対して行います。
そのため「AppEngineのアカウントが無い」または「アプリを作成していない」という場合には、
先にアカウントとアプリの作成を行う必要があります。
比較的新しめのところでは以下のサイトが参考になるかもしれません。
・egashira.jp : 初めてのGoogle App Engine
アカウントの大量取得を防ぐためか
AppEngineのアカウント登録時には携帯の電話番号やメールアドレスを使った確認があるので、
手元に携帯電話を用意しておいてください。
・Limited Previewの申し込み
・Google App Engine for PHP Limited Preview申し込みサイト
中央の緑色のボタン「Register an app for the Limited Preview」を押します。
するとGoogleアカウントの権限の認可を求められるので、許可してください。
・アプリ選択画面
アプリ選択画面に来たら「PHPを使えるようにしたいアプリ」を選択し、
・AppEngine for PHPで何をしたいのか
・MemcacheやURLfetchのようなAppEngineのAPIを使う予定はあるか
・WordpressやphpMyAdminのようなアプリを使う予定はあるか
などを記述します。
最後に「Request PHP for this application」ボタンを押して申し込みは完了です。
申し込み完了直後と、実際に利用できるようになった後にメールが届きます。
また、再度「Register an app for the Limited Preview」を押すと、
現在の状況を参照することができます。
利用できるようになると以下の画面になります。
・申し込み完了画面
◯SDKのダウンロード
・Installing the PHP SDK - Google App Engine — Google Developers手順に従って以下をインストールしてください。
・Python 2.7
・PHP 5.4
・App Engine PHP SDK
◯AppEngine上で「phpinfo()」を表示してみる
適当なディレクトリに以下の内容でファイルを作成します。・app.yaml
application: vier-test version: phpinfo runtime: php api_version: 1 handlers: - url: / script: index.php基本的には「runtime: php」の行以外はPython版と同じ書き方のようですね。
・index.php
<?php phpinfo(); ?>普通はyamlとphpファイルだけなのですが、
セキュリティ都合か、デフォルトでは「phpinfo()」を実行できないようになっています。
そのため以下の内容で「php.ini」ファイルを作成して同一ディレクトリに配置します。
・php.ini
google_app_engine.enable_functions = "phpversion, phpinfo"これで一つのディレクトリに
「app.yaml」「index.php」「php.ini」の3つのファイルが存在する状態になります。
◯デプロイする
・デプロイ方法
前項で作成したアプリのディレクトリに移動して以下を実行します。(「appcfg.py」は展開したSDKのディレクトリにあります)
/Users/User/appengine_php_1_8_0/appcfg.py update -R --runtime=php .
認証中にGoogleアカウントのIDとPassを聞かれます。
二段階認証を設定している場合には
「アプリケーション固有のパスワード」を取得するか、
上のコマンドに「--noauth_local_webserver --oauth2」を追加して実行します。
デプロイ後の「Admin ConsoleのVersion画面」です。
言語が「php」になっているのが確認できます。
実際にAppEngine上に配置した状態は、以下のURLで確認できます。
http://phpinfo.vier-test.appspot.com/
「Server API AppEngine PHP Runtime SAPI」となっているのが確認できます。
◯セッションやハンズオンの話
・Datastoreの話
前回「27.Google I/Oで発表されたGoogle Cloud Platformの新機能」にも書いた通り、現時点でのドキュメントには「Cloud SQLを使う方法」しか書いていませんが
一応セッションではDatastoreにアクセスするコードがありました。
また、新プロダクトの「Cloud Datastore」はJSON APIを使えるので、こちらはPHPからも利用できると思います。
・WordPressは動きそう
セッション内でWordPressの話があったので「Cloud SQL」と組み合わせることで動作するんじゃないでしょうか。* 2013/05/21追記
コメントでneranさんから教えていただきましたがドキュメントに思いっきり書いてありますね。
Running WordPress - Google App Engine — Google Developers
* 2013/05/22追記
実際に試してみたので詳細については次の記事
「29.Google App Engine for PHPでWordPressを動かしてみた」をどうぞ。
・phpMyAdminもAppEngine上で動くかも
ハンズオンでは、CloudSQLを操作するために「AppEngine上に配置したphpMyAdmin」を使用しました。ハンズオン用に最初から用意されていたので、
完全に素で動くのか、いくらか修正が必要なのかはわかりませんが、
一応AppEngine上で動作させる事はできるようです。
以上、今回もサンフランシスコからでした。(´▽`)
WordPressは公式にチュートリアルがありますね。
返信削除Running WordPress - Google App Engine — Google Developers
https://developers.google.com/appengine/articles/wordpress
ほんとだ!ありがとうございますヽ(´▽`)ノ
返信削除このブログの初コメントもありがとうございますw
BigQuery周りとか、いつも濃くて美味しい記事をありがとうございます。
返信削除PHPも、まだデプロイ許可もらえてないんで、めっちゃ参考になります。
MediaWikiとMODX辺りを試そうと考えてるんで、$_FILESのハマりも参考になりました。
Modelが綺麗なプロダクトなら、Datastoreへの移植も試してみようと思います。
ありがとうございます!そう言っていただけるととても励みになりますヽ(´▽`)ノ
返信削除neranさんはPHP得意そうですね。
Datastoreを使う形に移植できたら本当にいくらでもスケールするアプリが出来上がりそうで、素晴らしいですね。
健闘を祈ります。(`・ω・´)ゞ