WordPressの引越―仮想マシンにクローンを作る

ローカルの仮想マシンに WordPress を引っ越してみます。ふつう逆だろうという突っ込みをしたくなりますね。ローカルでテストしてからインターネットに公開するのが手順というものです。それだといつまでたっても、こんどまた、で永遠に取りかかりそうになかったので…

に沿ってやればできそうです。

データのバックアップについては WordPress のバックアップ でやったとおり。

次が wp-config.php の編集になっていますが、その中身を見ると、MySQL の設定情報です。先にローカルの仮想マシンで、MySQL を最低限は設定してやらなければならないということですので、

を参照します。仮想マシンの phpMyAdmin は、ゲストの仮想マシン上では

http://localhost/phpmyadmin/

や、ホストマシンからなら

http://192.168.56.102/phpmyadmin/

でアクセスできるようにしました。「仮想マシンに LAMP を入れる tasksel」や「VirtualBox “ホストオンリー ネットワーク インターフェースの作成に失敗しました”」 で苦労したとおりです。

WordPress の解説に戻ると、「データベース」から「新規データベースを作成する」。次に「特権」から「新しいユーザを追加する」で追加して、特権をデータベース固有にするらしいのですが、何をやっているのか今ひとつよくわからないので、そのまま引用しておきます。

  1. WordPress 用のデータベースが左側のデータベースドロップダウンリストになければ、作成します:
    1. WordPress データベースの名前を決めて (例えば ‘wordpress‘)、新規データベースを作成するフィールドに入力し、作成をクリックしてください。
  2. 左上のホームアイコンをクリックしてメインページに戻り、特権をクリックしてください。もし WordPres s用のユーザーがまだ存在しなければ、作成します。
    1. 新しいユーザーを追加するをクリックしてください。
    2. WordPress のユーザー名を決めて (例えば ‘wordpress‘)、ユーザー名フィールドに入力します (テキストフィールドの値を利用するがドロップダウンメニューから選ばれていることを確認してください)。
    3. 推測しづらいパスワードを決めて (大文字、小文字、数字、記号を組み合わせたものが理想的です)、パスワードフィールドに入力してください(テキストフィールドの値を利用するがドロップダウンメニューから選ばれていることを確認してください)。それからもう一度入力してくださいフィールドにパスワードを再入力してください。
    4. ユーザー名とパスワードをメモしておきましょう。
    5. グローバル特権のすべてのオプションはデフォルトのままにしておきましょう。
    6. 実行するをクリックしてください。
  3. 特権画面に戻ったら、先ほど WordPress 用に作成したユーザー名の右にある特権を編集アイコンをクリックしてください。データベースに固有の特権セクション内にあるデータベースに特権を追加ドロップダウンから、先ほど作成したデータベース名を選択してください。ページはそのデータベース用に更新されます。すべてチェックするをクリックしてすべての特権を選択したら、実行をクリックしてください。
  4. 結果ページで、ページの上部にあるサーバ:の後に続くホスト名を確認してください (通常は localhost)。

となっていますが、4 の localhost は、2 でユーザを追加するときに、「ローカル」 localhost を明示的に指定するからそうなるのではないかと思われます(解説には書いてありません)。

さて、MySQL の設定がうまくいっているのかどうかわかりませんが、ファイルと SQL の編集に移ります。

wp-config.php を編集します。

データベースの .sql ファイルをエディタで開き、 www.makisima.org を localhost に置換します。今回はローカルホストで動かしてみることが目的なのでこれでかまいませんが、もともと存在したであろう localhost と区別がつかなくなるので、あまりよい方法ではありません。ユニークな文字列になっていたほうがよいですね。また、 URL としてではなく地の文で www.makisima.org と言及している部分を判別するのは困難です。正規表現を駆使すればできるのかもしれませんが。このあたりの書き分けは、今後、文章を書くときにも考慮したほうがよさそうです。

WordPress のファイルを仮想マシンにアップロードします。

アップロード… FTP サーバを入れていませんでした。FTP (に類似のサーバ)を入れてもいいですし、ホストマシンとファイルを共有してもかまいません。ホストとのファイル共有は別項 「ホスト Windows 7 の VirtualBox でゲスト Ubuntu とファイル共有(Guest Additions 導入)」 にて。

SQL のほうは

にしたがって行います。ログインは上で作った wordpress 用のアカウントです。

phpMyAdmin でデータベース名を選択します。その後でインポートする .sql ファイルを選択、アップロード実行します。

phpMyAdmin でデータベースを選択、さらに ‘wp-options’ テーブルを選択し、’site_url’ と ‘home’ の値を確認します。必要に応じて書き換えます。

デフォルトの index.html があると、apache がそちらを優先して表示する設定になっているかもしれません。その場合、とりあえずは index.html の名前を変えてブラウザのキャッシュを消去すれば WordPress の index.php が表示されるようになります。実際には、Apache の設定で AllowOverride None になっていて .htaccess が有効になっていない可能性が高いと思われます。(cf. Apache2 mod_rewrite と AllowOverride

WordPrss がサブディレクトリにインストールされていて、それでもトップになるようにしている場合、つまり、

のようになっている場合は、サブディレクトリの URL に相当するアドレスのほう( http://localhost/wp/ )で WordPress にログインできるかもしれません。ログインは WordPress のユーザ名で行います。WordPress の管理画面になれば、とりあえず再設定できるようになります。仮想マシンの localhost のルート (/var/www)  に .htaccess や index.php をきちんとコピーして設定する必要があります。

.sql をアップロードしたあとの設定方法は、なんとなくやっているうちに WordPress が動くようになったので、何がどう功を奏しているのかわかりません。クローンが仮想マシンで動いたので結果オーライということで…  🙂

サブディレクトリに配置した頃のメモ書きは wiki (第2巻)のほうです。

さて、すくなくとも、バックアップの方法が間違っていないこと、バックアップから復元できること、サーバの引越ができることは確認できました。これで、テスト用のサーバとして仮想マシンが使えます。

と喜んでいたら、パーマリンクが「デフォルト」 (?=数字)でないと動きません。とほほ。ということで、続きます……

(2010.11.13)

WordPress のバックアップ

WordPress をバックアップするには

ファイルのバックアップ

WordPress 全体(またはサイト全体)を FTP (に相当する方法)でバックアップ先にコピー(ダウンロード)

データベースのバックアップ

MySQL データベースを phpMyAdmin でバックアップ

  1. WordPress サイトの情報を保持しているテーブルだけを選択します
  2. “Add DROP TABLE” ボックスにチェックを入れます。
  3. “Complete inserts” ボックスにチェックを入れます。
  4. “Save as File” ボックスにチェックを入れます。
  5. 圧縮には “None” のチェックを入れます。データベースが巨大なら圧縮します。
  6. Go をクリック。データが自分のコンピュータに保存されます。

と、「WordPres のバックアップ」には書いてあるが、

のほうが詳しい。(以下、抜粋)

  1. サーバー上の phpMyAdmin にログインします。
  2. ログイン後のメイン画面から、WordPress のデータベースを選びます。
  3. 次のページでは、WordPress データベースに含まれるテーブルの一覧が表示されます。画面上部のタブで、「エクスポート」をクリックしてください。
  4. エクスポート画面の左上にあるリストボックスに、ステップ2で選択したデータベース内のテーブルが全て表示されているはずです。(「全選択」するか個別に選択)
  5. 「SQL」ラジオボタンをオンにします。
  6. 画面右上の「オプション」セクションで、以下のチェックボックスをオンにします。
    • DROP TABLE / VIEW / PROCEDURE / FUNCTION を追加
    • IF NOT EXISTS を追加
    • AUTO_INCREMENT 値を追加する
    • テーブル名やフィールド名を逆クォートで囲む
  7. さらに下のセクションでは、「データ」(見出し)以外のチェックボックスは外しておきます。
  8. その下で、「ファイルで保存する」のチェックボックスをオンにします。「ファイル名のテンプレート」はそのままで構いません。
  9. 圧縮タイプを選び、「実行する」ボタンをクリックし、ファイルを保存しましょう。(圧縮タイプは好みで、無圧縮でも可。保存先に単体ファイルとして保存される)
  10. これで、WordPress サイトの投稿、固定ページ、コメント、設定などのバックアップが完了しました。

(2010.11.10)