コラム(WEB制作のポイント)
WordPress 2015年9月24日
WordPessをスムーズに移行するための安全策
WordPressをCMSとして活用した環境を移行する際に、注意すべきポイントがいくつかある。カスタマイズを加えたWordPressのモジュールやデータベースの扱いだ。
たとえば、リニューアル時の開発用サーバーから本番サーバーへ、新しいサーバーの乗り換えでも慎重に移行を進めなければならない。
コーポレートサイト構築の際に、トピックス(お知らせ、新着情報)や製品検索などのCMSとしてWordPressを活用するケースは多い。
この記事では、WordPressをサーバー移行する際の、データベースの扱いについて、注意点について紹介しておく。スムーズかつ安全に異なる環境にWordPress一式を移行するための参考にしてほしい。
ドメインをデータベースに抱え込んでしまうWordPress
WordPressは、非常によく考えられて、よく作り込まれたソフトウェアであるが、約7年前にWordPressを扱い始めてから今日までずっと不満でならないことが1つだけある。
それは「データベースにドメインを抱え込む」ことだ。
WordPressは、記事のテキスト情報と一緒に記事中に掲載した画像へのリンクをドメインを含めて記録してしまっているのだ。たとえば「http://www.samplesite.ac/img/photo.jpg」の様に、絶対パスで記憶してしまっている。
ひと工夫すれば、絶対パスで記録しなくてもいいようにできそうなものだが、いまだに絶対パスのままだ。
この状態のまま、本番サーバーにデータベースを移行してしまうと、画像ファイルなどは、開発サーバーを参照してしまうことになる。
「WordPress お引越し」や「WordPress サーバー移行」などでネットを検索すると、プラグインを用いたり、データベースにSQLでパッチをあてたりと、いくつかの方法を見つけられるが、当社ではデータベースのエクスポートファイルを直接書き換えることで対応している。
テキストエディタの一括置換で済むこの方法が最も時間がかからず、お手軽だ。
以下に、簡単な手順を紹介しておこう。
テキストエディタの一括置換
- mysqldumpコマンドか、phpMyAdminからWordPressで使用しているデータベースをエクスポートする。
通常、なにも指定しなければSQLで構成されたダンプファイルとして作成される、 - 次の吐き出されたダンプファイルをテキストエディタで一括置換する。
旧サイトが「「http://www.samplesite.ac/」で表示されていた場合、「www.samplesite.ac」の部分を「www.newsite.ac」に文字列置換すればよい。 - あとは、再びmysqlコマンドか、phpMyAdminで本番サーバーのデータベースへインポートすれば完了だ。
HTMLの記事、固定ページをインポート
当社の制作するWEBサイトは、サイト全体をWordPressで完結させることは稀で、更新頻度の少ないページは、静的HTMLで制作している。しかし、更新頻度が少ないページのなかでも定期的に更新が必要なページは、WordPressの「固定ページ」に入力して、その内容をクライアント自身で編集可能な形にしている。
固定ページとして入力する際、ページデザインに図表が組み込まれていることが多いため、HTMLの形式で入力しているが、このHTML入力はサーバー移行の際に手を焼かせてくれる。
前項で紹介したとおり、移行に際してデータベースをphpMyAdminでエクスポートすると、通常はSQL文の塊としてダンプファイルが生成される。このダンプファイルを本番サーバーでインポートする際、記事や固定ページにHTMLが記述されているとエラーを起こすことがある。
ただ、すべてのケースでエラーが起きるわけではない。エクスポートする際のダブルクォーテーションやシングルクォーテーションの処理に不具合があるか、インポートする際の解釈に問題があるかでエラーを起こすことがあるのだ・・・。
これが本番公開を間近に控えた本番サーバーへの移行作業の際に判明すると「データベースが移行できない!!」と焦ってしまうことになるのだ。しかしこの記事を読んでいるあなたは、もう心配することはない。エクスポートする際に、ひと工夫するだけで回避できるので安心してほしい。
そのひと工夫とは、phpMyAdminでデータベースをエクスポートする際に「XML」形式でエクスポートするだけだ。インポートの際は、phpMyAdminが自動的に認識してくれるので何も気にする必要はない。
WordPressの移行用プラグインも
WordPressの開発者がどこまで考慮しているかは不明だが、一度構築したWordPressの環境一式を移行する部分については、いまひとつ配慮に欠ける部分があるのは事実だ。
しかし心配することはない。今回紹介した方法は、まだサーバー移行のプラグインが充実していない頃からWordPressを扱っていた筆者が実行してきた方法のひとつであるし、今では、サーバー移行用のプラグインをいくつか見つけることができる。そのなかでも「Duplicator」が使い勝手が良さそう思われるので、機会があれば実務で使用し、次回はレポートとして紹介しようと考えている。