WordPress を DotCloud で運用することにしましたが、どうも push はできても pull が出来ないようです。(たぶんw)
となると、公開中のサイトの管理画面でテーマやプラグインの追加・変更を行っても、手元にファイルを残しておくことができません。また、functions.php をはじめ、自分で機能拡張するためのコーディングはやっぱりローカルで慣れたツールでやりたいところです。
そこで、なるべくローカルで管理する構成を考えてみました。
ざっとした構成は次の通りです
- WordPress は DotCloud と Local と両方に配置
- データベースは DotCloud を利用(ローカルも DotCloud 上のDBを参照)
- WordPress サイトは、独自ドメインで公開(この運用の為に必要)
こんな感じにセットアップして、ローカルでサイトを管理しつつ、ファイルの変更があったら DotCloud に随時 push する方法です。
1)ローカル環境の準備
WordPress を動かすための Web サーバーを構築してください。
僕はとりあえず、MAMP を利用しました。
また、サイトの公開用のドメインでバーチャルホストを設定してください。
ここでは、www.lurala.com を使用します。
hosts に次のエントリを追加し、www.lurala.com がローカルを参照するようにします。
2)DotCloud の環境準備
サインインしてアカウントを準備して、DotCloud の CLI 環境も準備してください。
ここはググるとすぐに出てくるし、簡単なので割愛します。
3)WordPress プロジェクトを準備する
任意のディレクトリに WordPress のプロジェクトを作成します。
とりあえずここでは、/Users/yuka2py/Projects/lurala というディレクトリを作成し、このディレクトリをプロジェクトのルートとします。ここに直接 WordPress のファイルを展開することもできますが、僕は次のディレクトリ構成としました。
- /dotcloud.yml
- dotcloud の設定ファイル。プロジェクトのルートに1つ必要
- /public/
- パブリックルート。この中にWordPressなど設定します
プロジェクトのルートには、dotcloud.yml のみとして、公開ファイルは public ディレクトリに入れてしまう感じです。では、dotcloud.yml を以下の内容で作成します。
approot で、パブリックルートディレクトリ public ディレクトリに指定しています。
そして、public フォルダを作成し、wordpress の初期ファイルを全てどどどーんと展開しておきます。
4)DotCloud にアプリケーションを展開する
DotCloud のコマンドを入力して DotCloud の設定を行っていきます。
必ず、プロジェクトのルートで操作してください。
まずは、DotCloud にアプリケーションを作成。
そして、ローカルのファイルをアップ。
これでアプリケーションが展開され、Webサーバーやデータベースの初期化が実行されます。
次に、初期化された、データベースのインフォメーションを取得します。
以下のような情報が出力されます。
この情報より、データベース接続の為のホスト名やアカウント情報を参照できます。
次に、mysql に WordPress 用のデータベースとユーザーを作成します。
まずは、mysql にログイン。
そしてデータベースの作成して、データベースを参照できるユーザーを作成。
以上で mysql の準備は完了です。
mysql から ctrl+D でログアウトします。
5) WordPress のインストールを実行する
WordPressのインストールを行います。
ここでアクセスするのは、ローカルのWebサーバーであることに注意してください。
http://www.lurala.com/wp-admin/
そして、おなじみのデータベースの設定画面です。
ここで、先ほど設定した、データベース名、ユーザー名、パスワード、そしてホスト名を入力します。
ホスト名には、dotcloud info lurala.db で参照できる、ports: mysql: のホストからポートまでの情報を入力します。僕の場合、以下の通りです。
lurala-yuka2py.dotcloud.com:18836
あとは、おなじみの WordPress インストールの流れです。
★補足★ この時点で、Web サーバーや WordPress のファイル群はローカルのものを参照し、データベースだけ DotCloud を参照する形となっています。この状態でセットアップなどすることで、ローカルにファイルを持つ事ができる感じです。ローカルで追加や更新されたデータは、dotcloud push コマンドで DotCloud にアップして更新します。
インストールが終了したら、インストールによって生成されたローカルのファイルを DotCloud に push します。
これで、ローカルで生成された設定ファイルなどが、DotCloud にも展開されます。
DotCloud でもローカルでも、参照している DB は同じなので、DotCloud 側でもキチンと WordPress が動きます。
…ととと、あとひとつ、ドメイン名の設定が残っていました。
6) WordPress を公開する
そのままローカル環境の WordPress にログインします。
[設定] > [一般] の中の「WordPress のアドレス (URL)」「サイトのアドレス (URL)」の2項目が、公開ドメイン(ここでは、http://www.lurala.com)になっていることを確認してください。
この時点で、http://www.lurala.com は、ローカル環境からのみアクセス可能です。
DotCloud のデータが http://www.lurala.com で公開されるように準備します。
まず、DotCloud にドメイン名のエイリアスを登録します。
これで登録できました。
次のコマンドで確認できます。
結果、次のような情報が確認できます。
ここで、追加した http://www.lurala.com/ が確認できます。
さて、もうひとつ、http://lurala-yuka2py.dotcloud.com/ とありますが、これは dotcloud アプリケーションのデフォルト url です。
で、この lurala-yuka2py.dotcloud.com に対して、www.lurala.com の CNAME レコードを、あなたの管理する DNS サーバーに登録します。
以上で完了です。
最後に dotcloud push した内容で、あなたの WordPress が公開されます。
7)運用方法
- プラグインやテーマのインストールおよび管理や、functions.php の修正などは、基本的にローカルで全て作業できると思います。変な php エラーを出して焦ることもありません。ゆっくりと修正できます♪
- 修正が完了し、ローカルでの動作確認が OK なら、dotcloud push で、本番に公開します。
- データベースだけ共用している点に注意が必要です。
- また、この設定のままでは、ローカルのマシンからは常にローカルの WordPress が見えています。DotCloud 上の本物のサイトを見るには、別のマシンから見るか、あるいは、hosts ファイルのエントリをコメントします。ちょっと面倒ですが、良いやり方があったら教えてください。
- アプリケーションのルートディレクトリで、git のリポジトリを作成し、git の管理下に置くこともできます。dotcloud コマンドは、.git ディレクトリがあるとヨシナニ取りはからってくれるらしいです。
追記のおまけ
パーマリンクのための設定
WordPress のパーマリンクを使うには、public root に、以下の内容の nginx.conf の設定ファイルを置きます。
nginx.conf は dotcloud の htttpd である、nginx の設定ファイルです。
どうやら差分だけ設定できるようです(.htaccess みたいな感じかな? たぶん)。
本家のドキュメント
http://docs.dotcloud.com/tutorials/php/wordpress/
後で見つけました。 (^_^;A
やっぱり説明書から目を通さないとね。