Edited at

Google App Engine for Python & PHP入門

More than 3 years have passed since last update.


参考

gae.png


SDK for Pythonをダウンロード

unzip google_appengine_1.9.25.zip

mv google_appengine ~/bin/


  • PATHを追加しておく


~/.bashrc

export PATH=$PATH:$HOME/bin/google_appengine



ソース

wget https://console.developers.google.com/project/プロジェクトID/start/appengine

unzip master.zip
cd appengine-try-python-bottle-master/
appcfg.py -A プロジェクトID update .

WEBブラウザが起動し「The authentication flow has completed.」と表示される。


  • http://プロジェクトID.appspot.com/ にアクセスし

「Hello World!」と表示されれば成功。


修正反映方法


main.py

 def hello():

"""Return a friendly HTTP greeting."""
- return 'Hello World!'
+ return 'こんにちは'

appcfg.py -A プロジェクトID update .

「こんにちは」と表示されれば成功



PHP


  • PythonのSDKにPHPのSDKも含まれています。

wget https://github.com/GoogleCloudPlatform/appengine-try-php/archive/master.zip

unzip master.zip
cd appengine-try-php-master

appcfg.py -A プロジェクトID update .

「Hello World!」と表示されれば成功。


修正反映方法


helloworld.php

 <?php

- echo 'Hello, world!';
+ echo 'こんにちはPHP';

appcfg.py -A プロジェクトID update .

「こんにちは」と表示されれば成功



  • $_SERVER["REMOTE_ADDR"] 変数とか普通に使えるのでアクセス制限できて便利そう


ルーティングの追加


app.yaml

 handlers:

-- url: /.*
- script: helloworld.php
+- url: /
+ script: index.php
+- url: /1
+ script: 1.php

こうしておくと、/にアクセスが来た時 index.php

/1 にアクセスが来た時1.phpが処理される。



データの保存


準備: Bucketを作る


  • ストレージ>Cloud Storage>ブラウザ

  • Bucketを作成。一意の名前をつける。


データの保存方法


helloworld.php

define(BUCKET, "gs://mybucket");

# text/plain で保存
$options = [ "gs" => [ "Content-Type" => "text/plain" ]];
$ctx = stream_context_create($options);
file_put_contents(BUCKET."/hello.txt", "データ1", 0, $ctx);

# binaly/octet-stream で保存
$fp = fopen(BUCKET."/hello2.txt", "w");
fwrite($fp, "データ2");
fclose($fp);


バケットにデータが保存されたことを確認。

スクリーンショット 2015-09-01 11.14.14.png