すでにインストールされているWordPressの引っ越しをしたい、ということは時々あると思います。
ここでいう引っ越しには、物理的なインストール場所の変更だけでなく、ドメインが変わるとき(テストドメインから本番ドメインへの切り替え時など)、SSL対応によりプロトコルが変わるとき(http:// ⇒ https:// のようにSSL対応でURLが変わるときも含まれる)、などが含まれます。
色々と気を使うWordPressの引っ越しですが、どのような方法が一番良いのでしょうか。
様々な方法がありますが、実は、これがベスト!と言い切れるものが存在します。
そもそもWordPressの引っ越しで、色々と気を使う必要があるのはなぜでしょうか。
WordPressでは、サイトの情報や画像のパスなどがURLのフルパスでデータベースに格納されています。
ですので、URLが変わる、ということは、データベース内の全てのURLを変更する必要がある、ということになります。
なので、URL変更して管理画面から一般設定を変える、というだけではうまくいかないのです。
実質、
WordPressのインストールフォルダを物理的に移動させてやり、
データベース内のパスを置換してやれば引っ越し終了、
ということになりますが、ただ置換すれば良いわけではありません。
WordPressでは、メタデータなどをシリアル化して保存しています。
シリアル化されているデータをただ置換するだけでいけない理由は、シリアル化されたデータがテキストの長さを保持しているからです。
例: {s:16:”https://b-risk.jp”;
これをテキスト置換のように置換してしまうと、保持している長さとの整合性が合わなくなってしまいます。
では、どうするのか。
WordPressの公式ドキュメントのWordPress の引越しの章に書いてあるツールを使いましょう。
上記ページの「ドメイン名またはURLを変更するとき」の節に出てくる「WordPressデータベース用検索と置換スクリプト」をクリックします。
こちらのページですが、中ほどにある「DOWNLOAD」のボタンを押すと「Search-Replace-DB-master」というツールをダウンロードできます。
これをサーバーに置いてブラウザからアクセスしますと以下の様な画面が現れます。
だいたい直感で使えるようにはなっていますが、以下に各項目の解説を記述しますね。
●search/replace:置換する内容を入力します。「use regex」にチェックを入れると正規表現で検索&置換もできます。
[replace] : 置換するテキスト
[with] : 置換後のテキスト
●database:接続するデータベース情報を入力します。
[name] : データベース名
[user] : データベースのユーザ名
[pass] : データベースのパスワード
[host] : ホスト名
[port] : ポート番号(たいていは変更せずにOK)
上記の内容をwp-config.phpなどを見ながら入力して、下にある「update details」のボタンを押します。
データベース情報が合っていれば、右にあるボタンが灰色から赤色に変わります。
エラーがある場合は「SQLSTATE[28000] [1045] Access denied for user ‘root’@’localhost’ (using password: NO)」などのようにエラーメッセージが表示されるので、それに従って対処します。
●tables:置換するテーブルを限定することもできます。(オプション項目)
[all tables] : 全テーブルを置換する。たいていはこちらでOK。
[select tables] : 置換するテーブルを Ctrl キーで選択する。
[columns to exclude] : テーブル内の置換しない列を指定。(例:タイトルに記述している内容は変えたくない、という場合は「post_title」を入力)
[columns to include only] : テーブル内の置換する列を指定。ここで指定したら他の列は置換されない。(例:記事の内容とカスタムフィールドの値だけを変更したい、という場合「post_content,meta_value」を入力)
●actions:ボタンが配置してある部分です。
[update details] : データベース情報を変更したときに押す。接続の確認のようなボタン。
[dry run] : 仮実行ボタン。 これが非常に優秀だと思いますが、実行したらどうなるのか、を仮実行して表示して見せてくれます。データベースを丸ごと置換に対する不安を多少とも除いてくれるボタンです。置換を正規表現で記載していたり、オプションを細かく指定しているときには、特に重宝するボタンです。
[live run] : 実行ボタン。 実際に置換を実行するボタンです。
[convert to …] : 文字コードの扱いを変更して置換してくれます。
●delete:このボタンを押すと、データベース置換機能を失います。放置しても安全なツールとなるわけです。
ユニークなボタンですね。
とはいえ用が済んだらフォルダごと削除を推奨します。
WordPressの引っ越しに携わるときには、ぜひこのツールを使って簡単にそして安全に作業を行いましょう。
南本貴之