Web Design: ローカルにテスト環境を作りました

またもや、しばらく手がつかなかった内容で、WordPress サイトを Dreamweaver CS6 上で作業しやすくするため、ローカルにテストサーバーを作ってみました。

使用したのはAMPPS (Apache, Mysql, PHP, Perl, Python)でインストールするだけでローカルにサーバー環境が出来上がる便利なもの。ただ、MACの環境ではなぜかMySQLが速やかに立ち上がりませんでした。一度、システム再起動したらいつの間にか使えるようになりました。幾つか同様のものを見てAMPPSを選びましたが、インターフェースがとてもすっきりしていて、広告らしいものもなく、正解だったかも知れません。

これを使うと新規のWordPressインストールは本当に簡単にできるので良いのですが、今回は既にリモートサーバーに作っていたWordPressサイトのテスト環境をローカルに移管する作業でしたので、色々設定に苦労しました。おかげでデータベースのテーブル操作やインポート/エクスポートも大分深く覚えることが出来ました。

既に出来上がった Word Press サイトをローカルのテストサーバーに移動する

注意:作業に関わるすべてのファイル、データベースのバックアップをするのが大前提です。私は全くエキスパートではありませんので、あくまで参考程度にご覧下さい。

1. ローカルテストサーバー上、AMPPSアプリケーション内の www フォルダに、リモートからダウンロードしたサイト全体のフォルダすべてをコピーする。

2. リモートで接続していたサーバーの phpMyAdmin にログインして、移動元になるデータベース(.sql)をエクスポート。特別な設定は行いませんでしたが、エンコーディングなどは新サーバーと一緒である必要があるためサーバー間の仕様の違いは確認はしました。



3. AMPPSで起動した、ローカルの phpMyAdmin 上に元のデータベースと同じ名前のデータベースを作り、それを選択した状態で 2. のデータベースをインポート。注:間違っても目的と別のデータベースを選択しないで下さい。

もちろん、この時点ではまだつながりません。ブラウザにhttp://127.0.0.1/フォルダ名/と入れても、WordPress は “Error establishing a database connection” と返してきます。

 

4. AMPPSアプリケーション内の www フォルダに移動したサイトフォルダ内にある、wp_config.php 内のパスワードやホストネームなどの設定をローカルのデータベースに合うように書き換える。

データベースのパスワードは phpMyAdmin の “特権” “ログイン情報” のパスワードとは違うものなので、注意が必要です。忘れた場合は “特権” の中、”パスワードを変更する” で再設定可能ですが、混乱しやすいので、こまめに記録したほうが良いかと思います。

その他の設定も新しいデータベースにあったものに変更していきます。私の場合、 Multisite の設定 define(‘SUBDOMAIN_INSTALL’, true); と “false” の混同があり、管理画面が開けず、しばらく時間を無駄にしてしまいました。(私の設定の場合はここは “false” が正しく、ローカルのURLにサブドメイン true はあまり考えられないなと気がつきました。) WordPress 新規インストールと違って、個別の設定を手動で接続していくので、見落としも多く出ます。

wp_config.php 変更後はこれはテストサーバー用のものになりますので、間違ってアップロードしないように、バックアップ。Dreamweaver ならクロークしておきます。(リモートサーバー用のものは別にバックアップしてあります。)



5. データベース内、各テーブルでリモートサイトURL(“example.com” とか)に指定されている部分をローカルのURL(“127.0.0.1/フォルダ名” など目的のもの)に書き換える。今回はSQLを使用して書き換えましたが、Multisiteを利用していたので、項目が少ないものにSQLを使うのも面倒になり、仕上げは手動でテーブルを確認しながら書き換えました。

主に書き換えたものは、

wp_blogs

wp_options

wp_posts

wp_site

wp_sitemeta の5つだったと思います。

wp_posts だけは Permalink などに使われているURLの項目が非常に多いため、下記のようにSQLを実行して一括に処理しました。

——————–

UPDATE wp_posts SET guid =

REPLACE (guid, ‘元のURL’, ‘新しいローカルのURL’);

——————–

上記は一例で、テーブル名、カラム名を、元のURL(example.com など)、新しいURL(127.0.0.1/フォルダ名 など)、入れ替えながら旧URLをすべて書き換えることが目的です。

テーブル wp_blogs (wp_はPrefix) の中のURLを書き換えたあたりから WordPress が反応し始めたように思います。すべて書き換えたなと、チェックをして問題が無いようならば、リモートサーバーからローカルサーバーへ WordPress の引っ越しというかコピーが完了です。

上記はあくまで忘れないように書きました。私もやっと行えたぐらいのレベルですので、参考程度にご覧下さい。

最終的には今までリモートサーバーにアップしながらつくっていたサイトが、インターネット接続無しで表示されるように。もちろん theme、plug-in もすべてそのまま。しばらく使っていなかった Dreamweaver を幾らかは活かせるようになりました。(WordPress/phpだけではなく、かなり昔つくった CGIのサイトもローカルで使えるようになったことに気がついて、どうも順序が逆転しているような妙な気分ですが、、、)

今回、Theme のデザインからすべてのサイト構築を行うため、デザインと機能をすぐチェックできる、少しでも良いワークフローにしたかったのです。Dreamweaver の Liquid Layout も旬なうちに WordPress と合わせたかった。

また、サーバー間で WordPress を引っ越しすることも出来るようになったことで、今まで結構作りっ放しだったサイトへの愛着も増えるような気がします。