いろいろ試行錯誤

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

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

GoogleAppEngine(GAE)でPHPを動かす手順 その2

  • Google api コンソールを開くと 「Billing」タブのところに黄色いビックリマークがついたので、指示に従って、請求先情報とクレジットカードを登録。

Googleさんより、PHP使えるようになったよ~って、メールが来た。

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

デモアプリを動作させてみる

  • GAE用SDK(PHP)を展開したフォルダ(以下《SDKフォルダ》)の配下にデモアプリがある

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

  • 「《SDKフォルダ》\google_appengine\demos\php\minshell\app.yaml」ファイルをエディタで開き、1行目の“shell-php”の部分を、自分が作成した《アプリケーションID》に変更する

f:id:k-kitaoka:20130704141917j:plain

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

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

こんなん出ました。

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

GoogleAppEngine(GAE)でPHPを動かす手順 その1

Installing the PHP SDK on Windows - Google App Engine — Google Developers」の内容に従って設定する。

Python2.7をインストールする

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

  • インストールする 特に変更する必要がなければ、インストーラに従って進める。

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

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

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

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

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

PHP5.4の実行環境(CGI)を入手する

  • バージョン5.4で、"VC9 x86 Thread Safe" と書いてあるZIPファイルをダウンロードする

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

  • ダウンロードしたZIPファイルを、「c:\Users<UserName>\php」等の任意のフォルダに展開する

最新のPHP用AppEngine SDKを入手する

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

  • PHPを適用するGAEアプリケーションを選択、使用目的を記述して、「Request PHP for this application」ボタンをクリックする

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

  • PHPが使えるようになるまで、ちょっと待ってね。といったメッセージが表示される

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

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プラグインをインストールする。

Eclipse4.2(Juno)でPHP開発環境

PDTインストール

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

  • PHP 開発ツール(PDT)」と「PHP 開発ツール(PDT) SDKフィーチャー」にチェックして「次へ」
  • すると↓のエラー発生
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]
  • PHP 開発ツール(PDT) SDKフィーチャー」のみチェックしてインストールすると、なぜかうまくいった