ネットのブログをローカル環境に復元

phpadmin

phpMyAdmin

[post=”1426″]の続きで、ネットに公開中のwordpressブログを、Windowsローカル環境に、そのまま再現する作業をしました。
データのリストアでつまづき、phpMyAdminをインストしてクリアしたら、設定でつまづいて、phpMyAdminで変更できて完了。って流れでした。

wp-contentをダウンロード

FTPソフトで、サーバー上のwp-contentディレクトリを、ローカルのドキュメンルートの当該ディレクト上に上書きコピー。
この中には、使用中のthemasやplugins、アップロードしたメディア(画像)などがはいったuploadsディレクトリなどがあります。

データベースを復元(失敗)

次に、肝腎のエントリーなどのデータを、MySQLのデータベースに復元。
これは、 wp-dbmanagerでバックアップしたファイルが、wp-content/backup-db にあり、上の作業でハードディスクにきてるので、ローカルのwp-dbmanagerで、リカバリすれば簡単。
って高を括っていたのですが、リカバリがエラー。

ちなみに、gzで圧縮してあるファイルがダメかと思って、解凍してもダメでした。
圧縮・解凍自体は、php.iniの
extension=php_bz2.dll
をコメントアウトして有効にしてあるので、機能してると思うだけど。(これは違うのかな?)

で、

Windows版PHPのインストールマニュアル

でインストールした、MySQL Toolsで、リストアを試みたのですが、ファイル形式が違うみたいで、だめした。

phpMyAdminをインストール

そこで phpMyAdmin を試してみることにしました。

phpMyAdmin から、ダウンロードできます。この時点ではバージョンは3.2.2でした。phpMyAdmin-3.2.2-all-languages.zip ってふぁいる。(やっぱりzipが一番圧縮率悪いですね)

ダウンロードしたファイルの中身を解凍すると、phpMyAdmin-3.2.2-all-languages と言うディレクトリに収まって出てきますが、ディレクトリ名を phpmyadmin に変更し、ドキュメントルートに移します。

phpmyadmin 内に config.sample.inc.php があるので、config.inc.php というファイル名でコピー。
この中身の下記の行の、cookie  を http に書き換えます。

$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;

$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;

そしてブラウザで、http://localhost/phpmyadmin/ にアクセスすると、ログイン画面が出ます。

ローカル wordpress 用に MySQL データベースに設定した、ユーザー名とパスワードでログインします。

すると、ぎょぎょぎょ。ヤバそうなメッセージが。

phpadmin

phpMyAdmin

リンクテーブルを処理するための追加機能が無効になっています。理由についてはこちらをご覧ください

PHP の mbstring 拡張が見つかりませんでした。マルチバイト文字セットを使用しているようですが、mbstring 拡張がないと phpMyAdmin は文字列を正しく分割できないため予期しない結果になることがあります

お使いの PHP MySQL ライブラリのバージョン 5.0.51a が MySQL サーバのバージョン 5.1.39 と異なります。これは予期しない不具合を起こす可能性があります。

二つ目のメッセージが赤くて緊急度が高そうなので、これを解決することに。
方法は簡単。php.iniの下記の部分をコメントアウト(「;」を取る)して、有効にするだけみたい。

;extension=php_mbstring.dll

これで、Apache を再起動すれば、メッセージが消えました。
1つ目と3つ目は、そのままだけど、以下の操作には問題なしでした。

データベースの復元(再挑戦)

phpMyAdminの画面。左カラムでwordpressのデータベースを選択。
メインカラム上部メニューで、インポートをクリック。
wp-dbmanagerの圧縮されたバックアップファイルを選択して、他にいじるところなく、「実行する」

で、ぎゃー。またエラー。
エラーの内容が記述されているのでよく読むと wp_comments テーブルがゴニョゴニョらしい。
ここには、wordpressインスト時の、サンプルのコメント1件が入ってるだけだったのだけど、このテーブルを空にして、もう一度インポートを行ってみる。
すると OK! やったぜ!

疑問その1 最初にコメントを削除しておけば、wp-dbmanagerでリストアできたのか?
その2 wp_postsテーブルにも、初期値のサンプルエントリーがあったのだけど、これはなぜ問題にならない?

ともかく、先に進めました。

ブログへのログイン問題

これで、晴れてブラウザで、http://localhost/とやると、ちゃんと表示されました。
でもプラグインは機能していません。

設定を見直そうと、管理画面にログインしようとすると、問題が。
ユーザーID・パスワードは、すでにネット時のものが復元されていて、それでログイン出来るのですが、ログインすると、ローカルではなく、ネットのWebSiteの管理画面が出てくるのです。

データベースの復元により、wordpressの一般設定「WordPress のアドレス (URL)」までもが、ネット環境のアドレスに変わってしまったのです。
それを直そうにも、管理画面にアクセスできない状況です。

ここでまた、phpMyAdminの出動!
wordpressデータベースの wp_options テーブルを表示。

option_name の siteurl と home の値のアドレスを、ローカルのhttp://localhost/~に合わせ書き換えます。

オプションのパスを見直し

これで管理画面にログインし直すと、OK!

管理画面にログインできて、しかもなぜか、[post=”1426″]では文字化けしていた、開発ブログやフォーラムのカラムが直ってました。

必要なプラグインを有効にしていきます。
すると有効にした wp-dbmanager がなんか言ってくる。
バックアップや mysqldump のパスが、ネット環境のモノになっているからです。このように絶対パスを記録しているオプションは全部、ローカルに合わせて直す必要があるでしょう。

ちなみに、ネット環境では散々困った、(チカッパがケチで教えてくれなかった)mysqldumpは、
MySQLをデフォルトでインストしていれば、
C:/Program Files/MySQL/MySQL Server x.x/bin/mysqldump.exe
自分で管理しているので確実です。ざまーみろ!管理者っていいなぁ!

今宵はこれまで

これで、必要な動作は再現できるようになりました。

当座の目的が、PC版テーマの改良をすることなので、必要のないプラグインは作動させず、これで完全に復元かどうかは確認していませんが。

実際に作業した時間より、このエントリーを書いてる時間の方が何倍もかかりました 😥 
不毛だ……。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です