WordPressは便利なんで重宝していますが、PHPとMySQLを使ってデータ管理しているのでなんかの拍子にバランスが崩れると激しく壊れるおそれがあってデータのバックアップと復元の演習を行う必要性をずーっと感じていました(めったな事では壊れたりしないので、やらなかったんですが)。が、今回手元に何も入っていないXP機が一機あるのでこれにこのFC2のブログの複製サイトを構築して、データを移植する復元の演習作業を行ってみました。実際やってみて分かった事もあるので、備忘録として書いてますが参考になればと思います。
まず、DB(データベース)のバックアップですが、プラグインでぱっぱっと何もかもやってもらえるととても楽なのでそんな便利なツール出回ってないかなと調べて「BackWPup」というプラグインが配布されているのを知りました。このプラグインを使ってのバックアップのやり方と復元の仕方がこちらのサイトさんで記載されていたので、手順に従ってやってみました…。しかしながらうちの場合は、(;´Д`) バックアップからしてうまくいきませんでした。FC2のサーバーが圧縮ファイルを作るために割り当てられる時間がタイムオーバーだよといってエラーをぞろぞろ吐き出してしまいます。プラグインは動いてますが、とても半端な圧縮ファイルを作ります。復元に必要なデータの半分も入ってませんでした。このプラグインが問題なく働いてくれる人は、紹介されているやり方でバックアップと復元を進めればいいのですが、残念ながらうちのように理屈通りにいかなくて放り出されてしまった人は、他の手段を考えなければなんともなりません。(゚д゚)(。_。)(゚д゚)(。_。) ウンウン
DB部分だけですが、バックアップをSQLファイルとして書きだしてくれるプラグインは他にもありますので、今回は、「WordPress Database Backup」というプラグインを使ってサイト上の指定フォルダにバックアップを書きだします。バックアップを作ったら、FTPクライアントを使って、public_htmlフォルダ以下のファイルを全部ダウンロードしてしまいます。
素材は揃ったので、復元作業の演習を行うPCにFC2Liteの環境となるべく同じ環境を構築します。Apache2.2、PHP Version 5.2.13、mysql5.1.47 phpmyadmin 3.5.1 が必要になります。
WordPressをローカル環境に構築する術については、書籍でも解説サイトでもいろいろありますのでそれらについてはここでは詳しく述べませんが、要点となるところと理屈上ではスムーズにいくはずなんだけど、やってみたら障りがでたよという箇所に関して触れてみたいと思います。
ポイントとしては、php.testを表示したとき、php.iniがちゃんとロードできているか、
php.testの中で、mysqlをはじめとするモジュールがきちんとロードされているか
httdconfの末尾あたりで、phpのdllライブラリ等を組み込んでいるか、
mysqlのconfの通信モードはTCP/IPモードになっているか(※環境による)
phpMyAdminのconfが正しく設定されているか、
mysqlのdllをロードしているか、拡張設定を有効にしているかを確認する。
このうち注意したいところとしては、mysqlのインストール時に、ポート3306を使ってTCP/IPで通信をするのを設定し忘れると、ソケット通信モードが設定されてしまいますので、phpMyAdminからMySQlを掴むことができないので気を付けたいのと、phpMyAdminのconfigファイルの設定で、rootユーザーでオートでMySQLにアクセスする様に設定していると、ログイン画面もログアウトボタンも非表示になるのをうっかり忘れてあとであわててしまうことになるので(phpMyAdminの設定を変更し更新する際ログアウトボタンが無くてあわてた。ブラウザのキャッシュを飛ばして、窓をいったん閉じて再アクセスすればいい)そこを留意する点。あとは、四つのアプリケーションのインストールはうまくいってるのに何故か、phpMyAdminあたりが、php5ts.dllのバージョンがおかしいとかなんとかのエラーを出してきたので、その場合はphpを一旦削除し再インストールすると回避できる点ぐらいでしょうか。最後のは個人個人ででたりでなかったりすると思いますので参考にはならないでしょうが、同じような症状がでている場合にはそれなりに有効みたいなので、インストールの順番を変えてみてはいかがでしょうか。またFC2サイト側ではきちんと設定がなされているので問題ないのですが、今回演習用環境をローカルに構築する際に一番障害になったのが、phpMyAdminでした。設置後アクセスするとこんな画面表示になりました。
左ペインにエラー。
#1146 – Table
‘phpmyadmin.pma_recent’
doesn’t exist
phpmyadminなんてDB作ってないし、当然pma_recentなんてテーブルも作った覚えは無い!…などと怒ってみてもしょうがないので、いろいろ調べてみました。つまるところ高度な設定がされていないらしい。この問題の解決に関しては、こちらのサイトに詳しく載っているのでそれを参照に解決しました。
デフォルトでは、これらの拡張設定がアクティブになっていないのでアクティブにする必要があるみたいです。またその際に指定のSQLファイルを実行して追加のテーブルとユーザーを作成しないといけない点に留意しなければなりません。あと、phpMyAdminに関して細かいエラーが出るとしたら、mysql.dllがロードできてないから拡張機能が使えないよとかのエラーが出る場合もあるので、php.iniで、extension=php_mysql.dll と、ロード指定できてるか、phpMyAdminのconfigで$cfg[‘Servers’][$i][‘extension’] = ‘mysql’;となってるか等もチェックしたいところ(うっかりmysqli.dllの方を指定していたりケアミスしてたりするので)
これらが全てクリアできて初めて、phpMyAdminからバックアップしたWordPresのDBのSQLファイルをインポートする準備が整いました。
バックアップしていた、テーマや画像などのデータを、htdocs以下に配置したうえで、phpMyAdminからバックアップしたSQLファイルをインポートしてみます(ローカルでインポートした際に、htdocの外[例えばデスクトップ]からバックアップファイルをインポートするとスルーしました(・(ェ)・)読み込みに失敗する場合は、htdoc以下のサイト上のパスのどこかにSQLファイルを置いてそこからインポートすると成功する可能性が高いみたいです)
正しくテーブルを再建してくれたみたいなので、127.0.0.1環境下からアクセスしてみます。
テキスト(記事)は再建されています。画像やページ移動などのリンクに関しては、ドメイン名が違いますので当然切れています。これら違う環境に移植(ドメイン名を変更した場合なども)した場合、
wp_optionsテーブルで、ページ8まであるので240項目ぐらい。
それらの中で、ドメインに関連するものを置き換えていく。
siteurl と home のところを修正すればある程度は移植できると思う。
特に、home の項目を変えるとリンクとギャラリーの画像がローカルに切り替わる。
※但し記事の中で使っている画像に関しては、テキスト本文にimgタグがあり、そこでドメイン名で指定されているので、本文記事個々の修正を行わないといけない。
この最後の※印の項目に関しては、WordPressの挿入ボタンを使って画像を挿入する際に出来るimgタグのアドレスをそのまま使ってるのでこうなっているので、設定のどこかにサイト上の相対パスで挿入する設定箇所があればそこを修正すれば問題を起こさなくなると思います。調べたことがないので気が向いたらそのような設定個所があるか調べてみよう。
以上で、WordPressのバックアップと復元が出来ました。
コメント