0
Google App Engine for PHP	
appengine ja night #25
Ryo Yamasaki @vierjp
1	
http://goo.gl/mTyMK
•  Blog
•  http://blog.vier.jp/
•  Twitter
•  @vierjp
•  仕事
•  Javaでサーバーサイドの開発がメイン
•  前職はスマホ向けサービス事業者の技術リーダー
•  Google App...
Google App Engine for PHP	
3	
アジェンダ	
1.  GAE/PHPの概要
2.  Google I/O後のアップデート
3.  GAE/PHPで使えるIDE
4.  既存アプリを動かしてみた
5.  既存アプリを動...
Google App Engine for PHP	
4	
概要
Google App Engine for PHP	
•  Python、Java、Goに続きPHPが追加
•  Google I/O 初日の2013/5/15 に発表
•  現在 Limited Previewで申し込み受付中
•  PHP ...
Google App Engine	
•  制限	
•  ローカルファイルシステムへのアクセス不可
•  代わりにCloud Storageに対して読み書きする
•  PHPの標準的な方法でファイルのダイレクト
アップロードが不可
•  そのま...
Google App Engine for PHP	
•  App Engine Ver.1.8.1
•  mbstring (マルチバイト関連) の追加
•  mcrypt (暗号化関連) の追加
•  iconv (文字エンコード変換・多言...
Google App Engine for PHP	
•  PHPスクリプトのinclude例
Google I/O後のアップデート (2)	
8	
<?php
require_once "gs://my_bucket/file.php";	
...
Google App Engine for PHP	
9	
GAE/PHPで使えるIDE	
http://goo.gl/mTyMK
Google App Engine for PHP	
•  PHP開発者に人気のPHP用IDE
•  GAE/PHPに対応
•  IDE上でデバッグ・デプロイが可能
•  1ヶ月は無料で利用可能
PhpStorm	
10	
http://goo...
Google App Engine for PHP	
PhpStorm デバッグ	
11	
http://goo.gl/mTyMK
Google App Engine for PHP	
PhpStorm デプロイ	
12	
http://goo.gl/mTyMK
Google App Engine for PHP	
13	
既存アプリを動かしてみた
Google App Engine	
phpinfo	
14	
•  PHPの環境情報を表示
•  サーバー設定
•  拡張モジュール
http://phpinfo.vier-test.appspot.com/
Google App Engine	
Word Press Ver.3.5.1 日本語版	
15	
http://vier-test.appspot.com/
•  日本語の投稿・表示は問題なし
•  専用プラグインが公開されてい
る
Google App Engine for PHP	
•  ファイルのアップロードが可能になる	
•  メールの送信が可能になる	
•  問題のあった一部のUIが修正される
Google公式の GAE/PHP向けWordPressプラグイン	
...
Google App Engine for PHP	
1.  WP Multibyte Patch
2.  Memcached Object Cache
3.  Batcache
4.  Wptouch
5.  FancyBox
6.  WP ...
Google App Engine	
phpMyAdmin Ver.4.0.3	
18	
•  MySQLの管理ツール
http://goo.gl/mTyMK
Google App Engine for PHP	
•  WordPress
•  記事一覧
•  記事詳細
•  記事の投稿
•  プラグイン
•  スマートフォンからのアクセス
デモ	
19	
http://goo.gl/mTyMK
Google App Engine for PHP	
20	
既存アプリを動かす際の注意点
Google App Engine	
•  GAE/PHPの制限	
•  ローカルファイルシステムへの書き込み不可
•  代わりにCloud Storageに対して読み書きする
•  PHPの標準的な方法でファイルのアップロード
が不可
•  ...
Google App Engine for PHP	
1.  ファイルシステムに対するI/O
2.  ファイルアップロード機能
3.  ログ出力
4.  セッション管理
5.  メール送信
6.  必要な拡張モジュール
既存アプリを動かす際の注...
Google App Engine for PHP	
•  基本的にはPathをCloud StorageのPathに変更すれば
PHP標準の関数でファイルを読み書きできる
•  Cloud StorageのPathに対する操作はPHPのStr...
Google App Engine for PHP	
•  標準のmail関数を使えない模様
•  The function ‘mail’ is not implemented. というエラーになる	
•  WordPressプラグインでは以下...
Google App Engine for PHP	
25	
GAE/PHPで使えるフレームワーク
Google App Engine for PHP	
1.  一時ファイルをGAEのファイルシステム
に書き込まない
2.  ログ出力はsyslog関数を使う
GAE/PHP上で動かすフレームワークの条件	
26	
http://goo.gl/...
Google App Engine for PHP	
•  デフォルトはアプリ内のtmpディレクトリにいろいろ書き込む
Cake/PHPを試してみた	
27	
•  それが原因でエラーになる
•  tmpディレクトリを
CloudStorage...
Google App Engine for PHP	
•  CakePHPにはI/Oの対象を切り替える仕組みがある
1.  一時データの格納先をAPCかMemcacheに変更
2.  ログ出力をsyslog関数に変更 (CakePHP 2.4に...
Google App Engine for PHP	
•  CakeEmail標準のコードでは送信不可
•  送信部分の処理だけMailServiceを使うクラス
(Transport)を作成してそれに切り替えることで一応送
信可能
•  アプ...
Google App Engine for PHP	
1.  「一覧・登録・編集・削除」を行うシンプルなCRUD処理	
  
2.  GAEのUserServiceを使った認証処理
3.  投稿者と管理ユーザーのみが編集・削除可能
Cake/P...
Google App Engine for PHP	
•  ポータビリティ
•  既存アプリがそこそこ動く
•  フレームワークも物によっては動くっぽい
•  一部機能が透過的に動くようになればさらに良い
•  ファイルのダイレクトアップロード...
Google App Engine	
•  Google App Engine for PHP Limited Preview申し込みサイト
•  https://gaeforphp.appspot.com/
•  Google App Eng...
Google App Engine	
•  27.Google I/Oで発表されたCloud Platformの新機能
•  http://blog.vier.jp/2013/05/google-iogoogle-cloud-platform....
ご清聴ありがとうございました
	
@vierjp
http://blog.vier.jp/	
Google App Engine for PHP
Upcoming SlideShare
Loading in...5
×

appengine ja night #25 Google App Engine for PHP

14,486

Published on

appengine ja night #25で発表したGoogle App Engine for PHPのスライドです。
(後から書き直して追記した英語版の方がやや詳しいです)

・appengine ja night #25
http://googledevjp.blogspot.jp/2013/07/appengine-ja-night-25.html

- English Version
http://www.slideshare.net/vierjp/ja-night25-en

I rewrote in English.
And I added some contents which I spoke in the event to English version.
Therefore, the English version is written in more detail than Japanese version.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
14,486
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "appengine ja night #25 Google App Engine for PHP"

  1. 1. Google App Engine for PHP appengine ja night #25 Ryo Yamasaki @vierjp 1 http://goo.gl/mTyMK
  2. 2. •  Blog •  http://blog.vier.jp/ •  Twitter •  @vierjp •  仕事 •  Javaでサーバーサイドの開発がメイン •  前職はスマホ向けサービス事業者の技術リーダー •  Google App Engineを中心にCloud StorageやBigQuery等、 Google Cloud Platformのプロダクトを利用していました。 •  個人でAndroidアプリを公開しています •  WiFi Tunes Sync Ryo Yamasaki 自己紹介 2 http://goo.gl/mTyMK
  3. 3. Google App Engine for PHP 3 アジェンダ 1.  GAE/PHPの概要 2.  Google I/O後のアップデート 3.  GAE/PHPで使えるIDE 4.  既存アプリを動かしてみた 5.  既存アプリを動かす際の注意点 6.  GAE/PHPで使えるフレームワーク http://goo.gl/mTyMK
  4. 4. Google App Engine for PHP 4 概要
  5. 5. Google App Engine for PHP •  Python、Java、Goに続きPHPが追加 •  Google I/O 初日の2013/5/15 に発表 •  現在 Limited Previewで申し込み受付中 •  PHP Version 5.4.8 •  Cloud SQLを利用可能 •  Cloud Datastore APIを利用可能 概要 5 http://goo.gl/mTyMK
  6. 6. Google App Engine •  制限 •  ローカルファイルシステムへのアクセス不可 •  代わりにCloud Storageに対して読み書きする •  PHPの標準的な方法でファイルのダイレクト アップロードが不可 •  そのままでは「$_FILES」が使えない •  Cloud Storageに対してアップロードする •  ProcessやSystemを操作する関数は使用不可 •  PHPの拡張モジュールを追加できない •  まだ使えないApp Engineのサービスがある 概要 6 http://goo.gl/mTyMK
  7. 7. Google App Engine for PHP •  App Engine Ver.1.8.1 •  mbstring (マルチバイト関連) の追加 •  mcrypt (暗号化関連) の追加 •  iconv (文字エンコード変換・多言語等) の追加 •  Cloud Storageに配置したPHPスクリプトを include可能になった。 Google I/O後のアップデート (1) 7 http://goo.gl/mTyMK
  8. 8. Google App Engine for PHP •  PHPスクリプトのinclude例 Google I/O後のアップデート (2) 8 <?php require_once "gs://my_bucket/file.php"; http://goo.gl/mTyMK
  9. 9. Google App Engine for PHP 9 GAE/PHPで使えるIDE http://goo.gl/mTyMK
  10. 10. Google App Engine for PHP •  PHP開発者に人気のPHP用IDE •  GAE/PHPに対応 •  IDE上でデバッグ・デプロイが可能 •  1ヶ月は無料で利用可能 PhpStorm 10 http://goo.gl/mTyMK
  11. 11. Google App Engine for PHP PhpStorm デバッグ 11 http://goo.gl/mTyMK
  12. 12. Google App Engine for PHP PhpStorm デプロイ 12 http://goo.gl/mTyMK
  13. 13. Google App Engine for PHP 13 既存アプリを動かしてみた
  14. 14. Google App Engine phpinfo 14 •  PHPの環境情報を表示 •  サーバー設定 •  拡張モジュール http://phpinfo.vier-test.appspot.com/
  15. 15. Google App Engine Word Press Ver.3.5.1 日本語版 15 http://vier-test.appspot.com/ •  日本語の投稿・表示は問題なし •  専用プラグインが公開されてい る
  16. 16. Google App Engine for PHP •  ファイルのアップロードが可能になる •  メールの送信が可能になる •  問題のあった一部のUIが修正される Google公式の GAE/PHP向けWordPressプラグイン 16 http://goo.gl/mTyMK
  17. 17. Google App Engine for PHP 1.  WP Multibyte Patch 2.  Memcached Object Cache 3.  Batcache 4.  Wptouch 5.  FancyBox 6.  WP Social Bookmarking Light 7.  Secure WordPress 8.  Crazy Bone WordPressのプラグインもいくつか試してみました 17 http://goo.gl/mTyMK
  18. 18. Google App Engine phpMyAdmin Ver.4.0.3 18 •  MySQLの管理ツール http://goo.gl/mTyMK
  19. 19. Google App Engine for PHP •  WordPress •  記事一覧 •  記事詳細 •  記事の投稿 •  プラグイン •  スマートフォンからのアクセス デモ 19 http://goo.gl/mTyMK
  20. 20. Google App Engine for PHP 20 既存アプリを動かす際の注意点
  21. 21. Google App Engine •  GAE/PHPの制限 •  ローカルファイルシステムへの書き込み不可 •  代わりにCloud Storageに対して読み書きする •  PHPの標準的な方法でファイルのアップロード が不可 •  そのままでは「$_FILES」が使えない •  Cloud Storageに対してアップロードする •  ProcessやSystemを操作する関数は使用不可 •  PHPの拡張モジュールを追加できない 既存アプリを動かす際の注意点 21 http://goo.gl/mTyMK
  22. 22. Google App Engine for PHP 1.  ファイルシステムに対するI/O 2.  ファイルアップロード機能 3.  ログ出力 4.  セッション管理 5.  メール送信 6.  必要な拡張モジュール 既存アプリを動かす際の注意点 22 http://goo.gl/mTyMK
  23. 23. Google App Engine for PHP •  基本的にはPathをCloud StorageのPathに変更すれば PHP標準の関数でファイルを読み書きできる •  Cloud StorageのPathに対する操作はPHPのStream Wrapperを使って処理している •  ディレクトリに対する操作の挙動が怪しい (Issue 9368) •  ディレクトリの存在チェック •  ディレクトリ作成 •  既存コードが特定の関数を使っていると問題になる •  realpath (Stream Wrapperがサポートしていない関数) ファイルシステムに対するI/Oの補足 23 http://goo.gl/mTyMK
  24. 24. Google App Engine for PHP •  標準のmail関数を使えない模様 •  The function ‘mail’ is not implemented. というエラーになる •  WordPressプラグインでは以下の方法 メール送信についての補足 24 require_once 'google/appengine/api/mail/Message.php'; use googleappengineapimailMessage; // App EngineのMailService用クラスを使用する $mail = new Message(); // 現状Fromの表示名をサポートしていないらしい。(WordPress Pluginのコメントより) //$mail->setSender(' Ryo Yamasaki <eins@vier.jp>'); $mail->setSender( 'eins@vier.jp’ ); $mail->addTo( ’test@vier.jp’ ); $mail->setSubject( 'Test Subject' ); $mail->setTextBody( 'Test Message' ); // 送信 $mail->send(); http://goo.gl/mTyMK
  25. 25. Google App Engine for PHP 25 GAE/PHPで使えるフレームワーク
  26. 26. Google App Engine for PHP 1.  一時ファイルをGAEのファイルシステム に書き込まない 2.  ログ出力はsyslog関数を使う GAE/PHP上で動かすフレームワークの条件 26 http://goo.gl/mTyMK
  27. 27. Google App Engine for PHP •  デフォルトはアプリ内のtmpディレクトリにいろいろ書き込む Cake/PHPを試してみた 27 •  それが原因でエラーになる •  tmpディレクトリを CloudStorageにしてもダメ http://goo.gl/mTyMK
  28. 28. Google App Engine for PHP •  CakePHPにはI/Oの対象を切り替える仕組みがある 1.  一時データの格納先をAPCかMemcacheに変更 2.  ログ出力をsyslog関数に変更 (CakePHP 2.4に含まれている) 3.  Sessionの格納先をCloud SQLに変更 Cake/PHPの設定を変更する 28 ※詳細は長くなるのでブログで http://goo.gl/mTyMK
  29. 29. Google App Engine for PHP •  CakeEmail標準のコードでは送信不可 •  送信部分の処理だけMailServiceを使うクラス (Transport)を作成してそれに切り替えることで一応送 信可能 •  アプリ内に含まれる静的なファイルは添付可能 •  Cloud Storage上のファイルを添付するにはCakeEmail 本体の修正が必要になりそう (前述のrealpath関数が原因)   Cake/Emailも試してみた 29 http://goo.gl/mTyMK
  30. 30. Google App Engine for PHP 1.  「一覧・登録・編集・削除」を行うシンプルなCRUD処理   2.  GAEのUserServiceを使った認証処理 3.  投稿者と管理ユーザーのみが編集・削除可能 Cake/PHP の動作デモ 30 http://cake2.vier-test.appspot.com/
  31. 31. Google App Engine for PHP •  ポータビリティ •  既存アプリがそこそこ動く •  フレームワークも物によっては動くっぽい •  一部機能が透過的に動くようになればさらに良い •  ファイルのダイレクトアップロード •  Cloud Storageに対するファイル・ディレクトリ操作 •  メール送信 •  スケーラビリティ •  他の言語同様にDatastoreを使えるとさらに良い まとめ 31 http://goo.gl/mTyMK
  32. 32. Google App Engine •  Google App Engine for PHP Limited Preview申し込みサイト •  https://gaeforphp.appspot.com/ •  Google App Engine for PHP 公式ドキュメント •  https://developers.google.com/appengine/docs/php/ •  PHP IDE :: JetBrains PhpStorm •  http://www.jetbrains.com/phpstorm/ •  Getting Started with PhpStorm as Google App Engine PHP IDE •  http://goo.gl/1pOS6 •  WordPress › 日本語 •  http://ja.wordpress.org/ •  WordPress › Google App Engine for WordPress « WordPress Plugins •  http://wordpress.org/plugins/google-app-engine/ •  Google Cloud Datastore 公式ドキュメント •  https://developers.google.com/datastore/docs/overview 32 関連URL
  33. 33. Google App Engine •  27.Google I/Oで発表されたCloud Platformの新機能 •  http://blog.vier.jp/2013/05/google-iogoogle-cloud-platform.html •  28.Google App Engine for PHP (GAE/PHP) を早速試してみた •  http://blog.vier.jp/2013/05/google-app-engine-for-php-gaephp.html •  29.Google App Engine for PHPで WordPress を動かしてみた •  http://blog.vier.jp/2013/05/29google-app-engine-for-phpwordpress.html •  30.Google App Engine for PHPにおけるポータビリティを考える •  http://blog.vier.jp/2013/05/30google-app-engine-for-php.html •  36.Google App Engine for PHPで WordPress を運用するためのプラグイン •  http://blog.vier.jp/2013/06/37google-app-engine-for-phpwordpress.html •  39.Google App Engine for PHP で CakePHP を動かしてみた •  http://blog.vier.jp/2013/07/39google-app-engine-for-phpcakephp.html •  33.Google Cloud Datastoreを試してみた 概要編 (1/3) •  http://blog.vier.jp/2013/06/33google-cloud-datastore-13.html 33 関連ブログURL
  34. 34. ご清聴ありがとうございました @vierjp http://blog.vier.jp/ Google App Engine for PHP
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×