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を動かしてみた