GoogleAppEngine(GAE)でWordPressを動かす手順
ローカル環境の設定
PHP版GAEのSDK(Google App Engine for PHP SDK)がダウンロード&インストール済みであることを確認する
ローカルの開発環境にMySQL5が設定済みであることを確認する
Cloud Consoleプロジェクトが作成済で、対象プロジェクトの支払い登録(Billing)が完了していることを確認する(Cloud SQLの使用に課金が発生するため)
ローカルに新規《プロジェクトフォルダ》を作成する
《プロジェクトフォルダ》にapp.yamlファイルを作成し、↓をコピペして保存
※《プロジェクトID》は自分のプロジェクトIDに置き換える
application: 《プロジェクトID》
version: wp
runtime: php
api_version: 1
handlers:
- url: /(.*\.(htm$|html$|css$|js$))
static_files: wordpress/\1
upload: wordpress/(.*\.(htm$|html$|css$|js$))
application_readable: true
- url: /wp-content/(.*\.(ico$|jpg$|png$|gif$))
static_files: wordpress/wp-content/\1
upload: wordpress/wp-content/(.*\.(ico$|jpg$|png$|gif$))
application_readable: true
- url: /(.*\.(ico$|jpg$|png$|gif$))
static_files: wordpress/\1
upload: wordpress/(.*\.(ico$|jpg$|png$|gif$))
- url: /wp-admin/(.+)
script: wordpress/wp-admin/\1
secure: always
- url: /wp-admin/
script: wordpress/wp-admin/index.php
secure: always
- url: /wp-login.php
script: wordpress/wp-login.php
secure: always
- url: /wp-cron.php
script: wordpress/wp-cron.php
login: admin
- url: /xmlrpc.php
script: wordpress/xmlrpc.php
- url: /wp-comments-post.php
script: wordpress/wp-comments-post.php
- url: /(.+)?/?
script: wordpress/index.php
- 同じくphp.iniファイルを作成し、↓をコピペして保存
google_app_engine.enable_functions = "php_sapi_name, gc_enabled"
- 同じくcron.yamlファイルを作成し、↓をコピペして保存
cron:
- description: wordpress cron tasks
url: /wp-cron.php
schedule: every 2 hours
WordPressの設定
- 《プロジェクトフォルダ》に最新のWordPressをダウンロード&展開する
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');
/** MySQL database username */
define('DB_USER', 'username_here');
/** MySQL database password */
define('DB_PASSWORD', 'password_here');
緑文字の部分を↓のように変更
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress_db');
/** MySQL database username */
define('DB_USER', 'wp_user');
/** MySQL database password */
define('DB_PASSWORD', 'wp_password');
ローカルDBの設定
CREATE DATABASE IF NOT EXISTS wordpress_db;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'wp_password';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
ローカル環境で実行
《GAE SDKの展開パス》/dev_appserver.py --php_executable_path=《PHPインストールパス》 《プロジェクトフォルダ》/
そしたら↓のエラー・・・あれ~?
INFO 2013-07-08 14:04:43,431 sdk_update_checker.py:244] Checking for updates to the SDK.
INFO 2013-07-08 14:04:43,440 __init__.py:94] Connecting through tunnel to: appengine.google.com:443
INFO 2013-07-08 14:04:44,723 sdk_update_checker.py:260] Update check failed: HTTP Error 404: Not Found
WARNING 2013-07-08 14:04:44,930 api_server.py:314] Could not initialize images API; you are likely missing the Python "PIL" module.
INFO 2013-07-08 14:04:45,055 api_server.py:138] Starting API server at: http://localhost:54555
INFO 2013-07-08 14:04:45,065 dispatcher.py:164] Starting server "default" running at: http://localhost:8080
INFO 2013-07-08 14:04:45,069 admin_server.py:117] Starting admin server at: http://localhost:8000
Exception in thread Thread-5:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 808, in __bootstrap_inner
self.run()
File "C:\Python27\lib\threading.py", line 761, in run
self.__target(*self.__args, **self.__kwargs)
File "C:\Users\XXX\google_appengine\google\appengine\tools\devappserver2\server.py", line 1240, in _loop_adjusting
_instances
self._adjust_instances()
File "C:\Users\XXX\google_appengine\google\appengine\tools\devappserver2\server.py", line 1217, in _adjust_instances
self._add_instance(permit_warmup=True)
File "C:\Users\XXX\google_appengine\google\appengine\tools\devappserver2\server.py", line 1095, in _add_instance
expect_ready_request=perform_warmup)
File "C:\Users\XXX\google_appengine\google\appengine\tools\devappserver2\php_runtime.py", line 195, in new_instance
self._check_environment(php_executable_path)
File "C:\Users\XXX\google_appengine\google\appengine\tools\devappserver2\php_runtime.py", line 138, in _check_environment
env={})
File "C:\Users\XXX\google_appengine\google\appengine\tools\devappserver2\safe_subprocess.py", line 61, in start_process
stdin=subprocess.PIPE)
File "C:\Python27\lib\subprocess.py", line 711, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 948, in _execute_child
startupinfo)
WindowsError: [Error 5] アクセスが拒否されました。
参考にさせて頂きました。ありがとうございます。
Running WordPress - Google App Engine — Google Developers
Blog @vierjp : 29.Google App Engine for PHPでWordPressを動かしてみた
GoogleAppEngine(GAE)でPHPを動かす手順 その2
- Google api コンソールを開くと 「Billing」タブのところに黄色いビックリマークがついたので、指示に従って、請求先情報とクレジットカードを登録。
Googleさんより、PHP使えるようになったよ~って、メールが来た。
デモアプリを動作させてみる
- 「《SDKフォルダ》\google_appengine\demos\php\minshell\app.yaml」ファイルをエディタで開き、1行目の“shell-php”の部分を、自分が作成した《アプリケーションID》に変更する
GAEにデプロイする
《SDKフォルダ》\appcfg.py update -R minishell/
- 実行すると下記のようなログが出力されるので、途中《Gmailアドレス》と《パスワード》を入力
02:05 PM Host: appengine.google.com
02:05 PM Application: 《アプリケーションID》; version: 1
02:05 PM
Starting update of app: 《アプリケーションID》, version: 1
02:05 PM Getting current resource limits.
Email: 《Gmailアドレス》
Password for 《Gmailアドレス》:《パスワード》
02:06 PM Scanning files on local disk.
02:06 PM Cloning 5 static files.
02:06 PM Cloning 5 application files.
02:06 PM Uploading 1 files and blobs.
02:06 PM Uploaded 1 files and blobs
02:06 PM Compilation starting.
02:06 PM Compilation completed.
02:06 PM Starting deployment.
02:06 PM Checking if deployment succeeded.
02:06 PM Deployment successful.
02:06 PM Checking if updated app version is serving.
02:06 PM Completed update of app: 《アプリケーションID》, version: 1
- Google app engineのコンソールを開いて、「Running」をクリック
こんなん出ました。
GoogleAppEngine(GAE)でPHPを動かす手順 その1
「Installing the PHP SDK on Windows - Google App Engine — Google Developers」の内容に従って設定する。
Python2.7をインストールする
Windows32bit の場合は「Python 2.7.5 Windows Installer」を選択する
- インストールする 特に変更する必要がなければ、インストーラに従って進める。
PHP5.4の実行環境(CGI)を入手する
- バージョン5.4で、"VC9 x86 Thread Safe" と書いてあるZIPファイルをダウンロードする
- ダウンロードしたZIPファイルを、「c:\Users<UserName>\php」等の任意のフォルダに展開する
最新のPHP用AppEngine SDKを入手する
「the latest PHP SDK for App Engine」よりSDKをダウンロードする
ダウンロードしたZIPファイルを、任意のフォルダに展開する
「Google App Engine for PHP」を開き、「Register an app for the Limited Preview」ボタンをクリックする
- PHPが使えるようになるまで、ちょっと待ってね。といったメッセージが表示される
iPhoneでのWeb画面の表示幅設定
iPhoneにプリインストールされているブラウザ(Safari)で、画面幅ピッタリに表示する方法。
ドメイン名で切り替え
.mobiドメインだと、無条件にスマホ画面になる。 ※ViewPortを記述しても反映されない。
DOCTYPE宣言で切り替え
HTMLファイルの先頭で↓を記述
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN">
metaタグのViewPortで切り替え
HEAD内に↓を記述
<meta name="viewport" content="width=device-width"/>
ちなみに、↓は240px固定にする
<meta name="viewport" content="width=240"/>
さらに、↓はピンチイン/アウトで拡大縮小できなくする
<meta name="viewport" content="width=240,user-scalable=no"/>
ワイヤーフレームを作成できるEclipseプラグイン【WireframeSketcher】
Eclipse4.2(Juno)で、WireframeSketcherプラグイン「Wireframing Tool for Professionals - WireframeSketcher」をインストールする。
- Eclipseメニューの「ヘルプ > 新規ソフトウェアのインストール」で「インストール」ウィンドウを表示
- 「WireframeSketcher - http://wireframesketcher.com/updates」追加
- 「WireframeSketcher」を選択して「次へ」→「完了」
ER図を作成できるEclipseプラグイン【ERMaster】
Eclipse4.2(Juno)に、ERMasterプラグインをインストールする。
- Eclipseメニューの「ヘルプ > 新規ソフトウェアのインストール」で「インストール」ウィンドウを表示
- 「ERMaster - http://sourceforge.net/projects/ermaster/files/ermaster/」追加
- 「ERMaster」を選択して「次へ」、使用条件を許諾して「完了」
Eclipse4.2(Juno)でPHP開発環境
PDTインストール
- 「ヘルプ > 新規ソフトウェアのインストール」で「インストール」ウィンドウ表示
- 「Juno - http://download.eclipse.org/releases/juno」追加
- フィルターに"PHP"と入力
Cannot complete the install because of a conflicting dependency. Software being installed: PHP Development Tools (PDT) 3.1.2.201212211235 (org.eclipse.php.feature.group 3.1.2.201212211235) Software being installed: PHP Development Tools (PDT) SDK Feature 3.1.1.201209101312 (org.eclipse.php.sdk.feature.group 3.1.1.201209101312) Only one of the following can be installed at once: PDT Core Plug-in 3.0.1.v201201110400 (org.eclipse.php.debug.core 3.0.1.v201201110400) PDT Core Plug-in 3.1.1.201209101312 (org.eclipse.php.debug.core 3.1.1.201209101312) PDT Core Plug-in 3.1.2.201212211235 (org.eclipse.php.debug.core 3.1.2.201212211235) Cannot satisfy dependency: From: PHP Development Tools (PDT) Runtime Feature 3.1.1.201209101312 (org.eclipse.php.feature.group 3.1.1.201209101312) To: org.eclipse.php.debug.core [3.1.1.201209101312] Cannot satisfy dependency: From: PHP Development Tools (PDT) 3.1.2.201212211235 (org.eclipse.php.feature.group 3.1.2.201212211235) To: org.eclipse.php.debug.core [3.1.2.201212211235] Cannot satisfy dependency: From: PHP Development Tools (PDT) SDK Feature 3.1.1.201209101312 (org.eclipse.php.sdk.feature.group 3.1.1.201209101312) To: org.eclipse.php.feature.group [3.1.1.201209101312]