PaaS で動かす WordPress + OpenShift 入門

このブログは PaaS の AppFog のフリープランで動かしてるのですが、先日、フリープランのサービス縮小の通知がありました。念のため WordPress が動く目ぼしいところが他にないか探したところ、OpenShift が 「無料、広告なし、独自ドメイン対応、Git でアップロード」といった感じで良さげでした。
そんな訳で OpenShift で WordPress を使用する手順をまとめてみました。

※OpenShift では簡単にオンライン上で WordPress を作成することもできますが、この方法だとソースをいじれないので自前で WordPress を準備する方法でまとめてます。

事前準備

ここでは 32ビット版 Windows 環境で行います。まず以下の準備をしておきます。

  • Git(1.8.5.2)
  • WordPress 日本語版(3.8.1)
  • phpMyAdmin(4.1.8)

Git のインストール

※既に Git をインストール済みの場合は飛ばしてください

https://code.google.com/p/msysgit/downloads/list にアクセスします。

opeshift

2014/03/05 時点の最新版 Git-1.8.5.2-preview20131230.exe をダウンロードし、インストールします。

文字化け対応

日本語が文字化けしないよう設定します。

opeshift

エクスプローラーを起動し、適当なフォルダを選択した状態で、右クリック→[Git Bash Here] で Git のコンソールを立ち上げます。

opeshift

MINGW32 と表示されたタイトルバーの部分を右クリック、[プロパティ][フォント]タブを選択し、[フォント]をMSゴシック、[サイズ]に適当な値を指定し、[OK] をクリックします。

次にコンソール上で以下のコマンドを入力します。

vi ~/.bashrc
alias ls='ls --color=auto --show-control-chars'
:wq

Bash の再起動で文字化けが解消されます。

ssh 認証キーの作成

ssh 認証キーを作成します。コンソール上で以下のコマンドを入力します。

mkdir ~/.ssh
cd ~/.ssh
ssh-keygen -t rsa -C "hogehoge@gmail.com" ←自分のメールアドレス

c:Users<Windowsアカウント名>.ssh フォルダに id_rsa.pub が生成されます。

WordPress のダウンロード

http://ja.wordpress.org/ にアクセスします。

opeshift

[WordPres 3.8.1をダウンロード] をクリックし、ダウンロードしたら適当なフォルダに解凍しておきます。

phpMyAdmin のダウンロード

※phpMyAdmin が不要な場合は飛ばしてください

http://www.phpmyadmin.net/home_page/downloads.php にアクセスします。

opeshift

[phpMyAdmin-4.1.8-all-languages.zip] をクリックし、ダウンロードしたら適当なフォルダに解凍しておきます。

OpenShift にサインアップ

ここから本番です。https://www.openshift.com/ にアクセスします。

opeshift

[SIGNUP] をクリックします。

opeshift

メールアドレス、パスワード、CAPTCHA を入力し、[Sign Up] をクリックします。

opeshift

メールを確認しするようにとメッセージが表示されます。

opeshift

OpenShift からきたメールの [Click here] のリンクをクリックします。

opeshift

上記画面が表示されるので [I Accept] をクリックします。

PHP / MySQL の動作環境を作成する

次の画面が表示されます。

opeshift

[Open the Console and CreateI Accept] をクリックします。

opeshift

[Create your first application now] をクリックします。

opeshift

[PHP 5.4] をクリックします。(※ WordPress 3.x をクリックするとすぐ作成されますが、ソースのカスタマイズができません。)

opeshift

[Public URL] を指定します。「-」の右側の入力フィールドはアカウント毎のネームスペースにあたり、他のアプリを追加する場合にも適用されます(一度指定すると変更できなくなるので要注意)。
[Create Application] をクリックします。

opeshift

[Yes, help me get started] をクリックすると ssh 認証キーの入力フィールドが表示されます。
[c:Users<Windowsアカウント名>.sshid_rsa.pub] をテキストエディタで開き、[Paste the contetns of your public key fie(.pub)] にコピペし、[Save] をクリックします。

opeshift

[Continue to the application overview page] をクリックします。

opeshift

[Add MySQL 5.5] をクリックします。

opeshift

[Add Cartridge] をクリックします。

OpenShift に WordPress と phpMyAdmin を設置する

データベースの接続に必要な情報が表示されます。

opeshift

[Source Code] の ssh:// で始まる URI を選択しコピーします。

適当なフォルダで Git を起動し(今回は c:webappopenshift で起動)、コピーしたソースコードの URI を git clone します。

git clone ssh://xxxxxxxxxxxxxx

opeshift

opeshift

上記のようなフォルダ構成ができあがるので、解凍した WordPress のソースファイル一式をc:webappopenshiftphpphp にコピーします。
また、同フォルダ内に myadmin という名前でフォルダを作り、phpMyAdmin のソースファイル一式をコピーします。

c:webappopenshiftphpphp 直下にある wp-config-sample.php を wp-config.php にリネームしテキストエディタで開き、define(‘DB_NAME’… と記述のある箇所を以下のように変更します。

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', getenv('OPENSHIFT_APP_NAME'));

/** MySQL database username */
define('DB_USER', getenv('OPENSHIFT_MYSQL_DB_USERNAME'));

/** MySQL database password */
define('DB_PASSWORD', getenv('OPENSHIFT_MYSQL_DB_PASSWORD'));

/** MySQL hostname */
define('DB_HOST', getenv('OPENSHIFT_MYSQL_DB_HOST') . ':' . getenv('OPENSHIFT_MYSQL_DB_PORT'));

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

以下のようになります。

opeshift

c:webappopenshiftphpphpmyadmin 直下にある config.inc.php をテキストエディタで開き、$cfg[’Servers’][$i][‘host’]… と記述のある箇所を以下のように変更します。

$cfg['Servers'][$i]['host'] = getenv('OPENSHIFT_MYSQL_DB_HOST');
$cfg['Servers'][$i]['port'] = getenv('OPENSHIFT_MYSQL_DB_PORT');

以下のようになります。

opeshift

git で c:webappopenshiftphp に移動後、下記コマンドを入力し、OpenShift にソースをアップロードします。(ソースを変更しアップロードする場合は下記コマンドを入力します。git commit では -m 以降を省略するとテキストエディタが開き、変更コメントを日本語で入力できるようになります。)

git add .
git commit -m 'add wordpress and phpMyAdmin'
git push

opeshift

独自ドメインを割り当てる

※不要な場合は飛ばしてください

https://openshift.redhat.com/app/console/applications アクセスすると作成したアプリの一覧が表示されるので、今回作成したアプリを選択します。

opeshift

[change] をクリックします。

opeshift

[Domain name] を入力し、[Save] をクリックします。

opeshift

契約してるドメイン登録代行サービスで、DNS の設定をし(上記は お名前.com の場合)、しばらく待ちます。

WordPress をインストールする

登録した独自ドメインにアクセスします(上記例では http://openshift.cyokodog.net/ 、独自ドメインを設定してない場合は http://php-cyokodog.rhcloud.com/)。

opeshift

WordPress のインストール画面が表示されるので、必要情報を入力し、[WordPress をインストール] をクリックします。

opeshift

[ログイン] をクリックします。

opeshift

先程指定した [ユーザ名][パスワード] を入力し、[ログイン] をクリックします。

opeshift

管理画面が表示されます。画面左上のブログ名のリンクをクリックします。

opeshift

トップ画面が表示されます。
※.htaccess の設定をしてませんが、スラッグ指定形式での URL でも正しく表示されます。

phpMyAdmin を実行する

OpenShift 上のアプリケーション管理画面で、データベースの接続情報を確認します。

opeshift

http://openshift.cyokodog.net/myadmin にアクセスします。

opeshift

[ユーザ名][パスワード] を入力し、[実行] をクリックします。

opeshift

管理画面が表示されます。

以上です!

最後に

PaaS で WordPress というと Heroku や Google App Engineでもいけるらしいのですが、Heroku の場合、無料でも DB を使用する際にクレジット番号の入力が必要になるらしいです。

Google App Engine の場合は、Cloud SQL を利用する必要があるので課金が発生してしまうようです。

そんなわけで OpenShift ですが WordPress 以外にもいろいろ動くようですし(若干重い気もしますが)なかなか良いのではないでしょうか。