【WordPress】マルチ構成からシングル構成への移行

マルチ構成のサーバでの操作

WordPressのデータのバックアップ

以下のファイルをバックアップします。

wp-content/plugin
wp-content/themes
wp-content/uploads/sites/[ID]

通常「uploads」下は「2018/11/01/」のように日付で分かれていますが、マルチ構成だと「uploads」下のファイルが「sites/[ID]/2018/11//01/」のように「sites/[ID]」が加わります。

バックアップする際は「uploads/sites/[ID]/」をバックアップする必要があります。

DBのバックアップ(抜き出し)

次にDBをバックアップします。

マルチ構成の場合は、DBのデーブル名に「wp_[ID]」のようにサイトIDが接頭語として使われています。 これらすべてと、「wp_users、wp_usermeta」をhバックアップします。

mysqldumpコマンドの例を載せておきます。

mysqldump -u[ユーザ] -p[パスワード] [移行するWordPressのデータベース名] [該当するテーブル] [該当するテーブル]... > backup.sql

移行先のサーバでの操作

WordPressのデータのコピー

先ほど取ったWordPressのデータのバックアップを移行先にコピーします。

移行先にはWordPressが入っているはずなので、wp-contentの「plugin、themes、uploads」にコピーします。

この時、「uploads」直下はサイトIDではなく、「uploads/2018/」みたいに年が来るようにしてください。

DBのインポート

先ほど取ったダンプデータをインポートします。

この時、ダンプデータの中身を色々と置換する必要があります。

  • 「旧ドメイン(サブドメイン、サブディレクトリ)」から「新ドメイン」 ex. hogehoge.com/site2 → hogehoge2.com
  • 「wp_[ID]」から「wp_」 ex. wp_2 → wp_
  • 「uploads/sites/[ID]/」から「uploads/」  ex. uploads/sites/2/ → uploads/

以上を変更したらインポートします。

例はこんな感じ

mysql -u[ユーザ] -p[パスワード] [新しいデータベース名] < backup.sql

以上で完了です。

うまくいかない場合は以下の点に注意すれば行けると思います。

  • .htaccessをデフォルトに変更(マルチ構成の奴はそのままでは使えない)
  • wp-config.phpをシングル用に変更(デフォルト設定を使うならそのままで良い)
  • ・データコピー時にディレクトリの権限や所有者が変更されていないか確認。