search
LoginSignup
12

More than 5 years have passed since last update.

posted at

updated at

Google App Engine for Python & PHP入門

参考

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

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
What you can do with signing up
12