1. TOP
  2. Webサービス
  3. CentOS7,PHP7,MySQL5.6でWordPressサイトを構築 その14(WordPressサイトのお引越し I)

CentOS7,PHP7,MySQL5.6でWordPressサイトを構築 その14(WordPressサイトのお引越し I)

thumbnail

その13までの記事を読んでくださった方の中には、「WordPressサイトのお引越し」を考えている方がいらっしゃるかもしれません。

WordPressサイトのお引越しは難しい

ただしひとくちに「WordPressサイトのお引越し」のお引越しといっても、さまざまなパターンがあります。したがって一連の記事のように、万人受けするマニュアルを書くことは非常に難しいです。

ただ難しいと言ってもお引越しに際して「気をつけるべきこと」はいくつか挙げることはあります。またその「気をつけるべきこと」の中でも、WordPressに直接関係することと、それ以外のことがあります。

今回の記事では、その「気をつけるべきこと」のうちWordPressに直接関連する事項についてご紹介いたします。

画像フォルダの移動

centos7php7mysql5-6_wordpress_14_1

WordPressでは投稿した画像は全てwp-content/uploadsに保存されます。なのでお引越し先のWordPressに保存されているuploadsディレクトリを、一旦削除してお引越し元で使っていたディレクトリをwp-contentの下に保存します。

DB上のドメインとドキュメントルートの変更

WordPressの投稿した記事などのデータは、全てデータベース(MySQL)に保存されます。お引越し元のデータベースを使用するためには、そのデータをエクスポートして、お引越し先のWordPressの管理画面からそのデータをインポートすることになります。

インポート後はデータベースに記述されている、ドキュメントルートディレクトリとドメインの文字列に関する置換が必要になります。ただしWordPressのデータベースでそれらの文字列はシリアライズされていているため、独特の置換が必要となります。決してエディタソフトで置換しただけのデータベースファイルは使わないようにしましょう。

DATABASE SEARCH AND REPLACE SCRIPT IN PHPによる置換

DATABASE SEARCH AND REPLACE SCRIPT IN PHPというシリアライズされた文字列を置換するためのツールを使用します。

こちらの使い方については、上記のGoogleドキュメントシートを参考にしてください。

WP-CLIによる置換

DATABASE SEARCH AND REPLACE SCRIPT IN PHPではツールをダウンロードしたり、作業終了後にディレクトリを削除しなければならないなどの作業が必要となります。

$ wp search-replace 'fuga.net' 'hoge.com'
$ wp search-replace '/home/www/fuga' '/var/www/hoge'

一方、WP-CLIによる置換では2行のコマンドを叩くだけなので、置換作業が非常に楽です。第一引数は置換対象の文字列を、第二引数は置換後の文字列を表します。WP-CLIのインストールについては、その12の記事を参考にしてください。

wp-config.phpの設定変更

WordPressサイトのお引越しをするとその前後でWordPressがデータベースに接続する情報が変わります。

  • DB_NAME : 引越元で使っていたデータベース名
  • DB_USER : 引越元で使っていたMySQL作業用ユーザ名
  • DB_PASSWORD : 引越元で使っていたMySQL作業用ユーザのパスワード

引越し元のデータベースの情報に合わせないといけないため、あらかじめ構築していたWordPressのwp-cofig.phpの内容を以上の通りに書き換える必要があります。

WordPressサイトのバックアップについて

引越しのついでにバックアップのシステムを充実させたいとお考えの方もいらっしゃるかもしれません。WordPressのプラグインであるBackWPupを使うという手もあります。ですが自分の場合、あまりプラグインを入れたくなかったので、シェルスクリプトを記述してバックアップを取るようにしています。

そのシェルスクリプトのコードは、上記の「さくらのナレッジ」の記事が参考になります。

WordPress関数のエスケープ

バックアップ同様、引越しのついでにテーマも新しくしたいとお考えの方もいらっしゃるかもしれません。その新しいテーマがWordPress.orgの公式ディレクトリに保存されているテーマである場合は問題はありませんが、自作のテーマについては文字列の出力について自分でエスケープ処理をする必要があります。

// 文字列のエスケープ
echo esc_html($text);
// 文字列を属性用にエスケープ
<a href="..." title="<?php echo esc_attr($title); ?>">...</a>
// URLの文字列をエスケープ
<a href="<?php echo esc_url($url); ?>">...</a>
// 文字列をJavaScript用にエスケープ
$text = '<?php echo esc_js($text); ?>';
// 文字列をtextarea用にエスケープ
<textarea><?php echo esc_textarea($text); ?></textarea>

これらのエスケープ関数は全てWordPress Web開発逆引きレシピ WordPress4.x/PHP7対応のP.458からP.462で紹介されています。ぜひ参考にしてください。

【参考サイト】