いろいろ試行錯誤

調べものしたときの覚書きや、仕事でコーディングした時のメモ などなど…

GoogleAppEngine(GAE)でWordPressを動かす手順

ローカル環境の設定

  • PHP版GAEのSDKGoogle 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をダウンロード&展開する

f:id:k-kitaoka:20130705142041p:plain

  • 《プロジェクトフォルダ》\wordpress\wp-config-sample.phpファイルをコピーして、wp-config.phpファイルを作成&編集
        /** 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の設定

  • ローカルのMySQLにrootでログインする

  • WordPress用のユーザとデータベースを作成する MySQLクライアントのプロンプトで↓を実行

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