[wordpress]マルチサイトのリニューアル(サーバー移行&ドメイン変更)

公開中のサイトの場合、リニューアル準備は別サーバーで行うことが多いので、公開時にドメインを変更する必要があります。私はノンプログラマーなのでマルチサイトのドメイン変更は緊張します。

出来るだけスムーズに失敗なく行うための手順メモです。

リニューアル作業前に動作環境を検討する

稼働中のサーバーをそのまま利用する場合は、リニューアルの準備は仮サーバーで行う。
但し、マルチサイトでは、特定のサイトのみリニューアルする場合は、新しいサイト(テストサイト)を1つ作成して行えることもある。
サーバー移転する場合は、移転先のサーバー内で行うのがベストだけど、作業中にもサーバー料金がかかるので仮サーバーで行う。
どちらにしても、リニューアル準備は、仮サーバー(テストサイト)で行うことが多い。

稼働中サイトと新サイトの動作環境

稼働中サイトのwordpressのバージョンが古い場合でも、「カスタマイズやプラグインをそのまま利用したい」という要望があるときは、新サイトで利用するカスタマイズやプラグインを十分検討して、wordpressのバージョンを決定する。セキュリティーを考えると出来るだけ最新バージョンを利用したい(2017/07/14時点で既に4.8)。

稼働中サイトのプラグインやカスタマイズが、新しい環境でも動作するか確認して、不具合が起こらないよう万全を期しておく。

※PHPバージョン、データベースのバージョンが古いと、新しいwordpressで不具合が起こる可能性が大きい。

 

リニューアルの手順

リニューアル後、稼働中のサーバーをそのまま利用する場合と、新サーバーに移転する場合があると思うので、それぞれの手順をメモ

(1)稼働中のサーバーをそのまま利用する

1)テストサイト(仮サーバー)でリニューアル作業を行い、稼働中のサイトに移行する場合

  1. 稼働中サイトをバックアップ(データベース・全てのファイル)
  2. 稼働中サイトの過去記事を移行して公開、または、過去記事のページ内容を一部変更(デザインを変更など)する場合は、エクスポートして、テストサイトにインポート
  3. テストサイトで、新デザインのテーマ作成(wordpressにデザインを組み込む作業)
  4. テストサイトで、記事ページを作成、インポートした過去記事の変更・修正などの作業
  5. テストサイトの記事をエクスポート&テーマをダウンロード
  6. 稼働中サイトをメンテナンスモードにして、動作環境をテストサイトと同じにする
  7. テストサイトで作成した新しいテーマを、稼働中のサイトに設定する
  8. 稼働中サイトの記事を削除する(ゴミ箱の記事も)←バックアップを取っておく

ココまでで、稼働中サイトは新しいデザインになり、記事がない空の状態の新サイトになりました。後は、記事をインポートして新サイトを完成させる作業です。


  1. テストサイトの記事を新サイトにインポートする(メディアも含む
  2. 新サイトの記事内のURLを変更する(テストサイトのドメインになっているので)
    ※プラグイン:search_Regex
  3. 必要があれば、ウィジェットの内容を変更
  4. 必要があれば、テーマ内のドメイン名、カテゴリーID、スラッグなどを修正する

 

(2)新サーバーに移転する

1)テストサイト(仮サーバー)でリニューアル作業を行い、新サーバーに移行する場合

  1. 稼働中サイトをバックアップ(データベース・全てのファイル)
  2. 稼働中サイトの過去記事を移行して公開、または、過去記事のページ内容を一部変更(デザインを変更など)する場合は、エクスポートして、テストサイトにインポート
  3. テストサイトで、新デザインのテーマ作成(wordpressにデザインを組み込む作業)
  4. テストサイトで、記事ページを作成、インポートした過去記事の変更・修正などの作業

ココまでで、テストサイトでの作業が完了。後は、新サイトに記事とテーマを移行して完成させる作業


  1. 新サーバーにテストサイトと同じバージョンのwordpressをインストールする
  2. 新サイトをメンテナンスモードにして、動作環境をテストサイトと同じにする
  3. テストサイトのテーマ、記事をエクスポート
  4. 新しいテーマ(新サイト用)を設定する
  5. テストサイトの記事をインポートする(メディアも含む
  6. 必要があればウィジェットを設定する
  7. 必要があれば、テーマ内のドメイン名、カテゴリーID、スラッグなどを修正する
  8. 以下の、ドメイン変更の手順でドメイン名を変更する

 

2)新サーバーでリニューアル作業を行い、完成後ドメイン名を変更する
(作業中は仮URLなので)

  1. 新サーバーにwordpressをインストールする
    (稼働中サイトのカスタマイズやプラグインをそのまま利用する場合、動作確認できたバージョンを利用するが、出来るだけ最新バージョンを利用)
  2. サイトをメンテナンスモードにして、動作環境を整える
  3. 稼働中サイトをバックアップ(データベース・全てのファイル)
  4. 稼働中サイトの過去記事を移行して公開、または、過去記事のページ内容を一部変更(デザインを変更など)する場合は、エクスポートして、新サイトにインポート
  5. 新デザインのテーマ作成(wordpressにデザインを組み込む作業)
  6. 記事ページを作成、インポートした過去記事の変更・修正作業
  7. 必要があればウィジェットを設定する
  8. 以下の、ドメイン変更の手順でドメイン名を変更する

 

ドメイン変更の手順

マルチサイトの場合、設定→一般設定で、ドメインを変更することができないため、データベースを開いて変更する必要があります

(1) 新サイトにドメインを設定
レンタルサーバーのコントロールパネルで、独自ドメインを設定する
※DNSの設定を行ってから、サイトが正常に表示されるまで1日~2日間を要する場合がある。

(2) wp-config.phpの以下の部分のドメイン名を書き替える
※ディレクトリー構造に変更がある場合は、PATH_CURRENT_SITE も書き替え

[php highlight=”3,4″]
define(‘MULTISITE’, true);
define(‘SUBDOMAIN_INSTALL’, false);
define(‘DOMAIN_CURRENT_SITE’, ‘sample.com’);
define(‘PATH_CURRENT_SITE’, ‘/’);
define(‘SITE_ID_CURRENT_SITE’, 1);
define(‘BLOG_ID_CURRENT_SITE’, 1);
define( ‘TRUST_FORM_CSV_SJIS_SUPPORT’, true );
[/php]

 

(3) データベースを変更する

phpMyAdmin(データべース接続ソフト)に接続して、新しいURL(ドメイン)に書き替える

  1. wp_options(siteurl、home)
  2. wp_site
  3. wp_blogs
  4. wp_sitemeta(siteurl)
  5. wp_x_options(siteurl、home)
  6. fileupload_url(マルチサイト分)

※wp_x_optionsの ”x” は、サイトID

 

※サイト全体をSSLページにする(Google推奨)場合は、上記で書き替えるURLを(https://~)にする
※「お問い合わせ」ページなど、フォームを使用したページのみ、SSLページにする場合は、プラグイン利用で任意のページのみSSLページにすることが可能(プラグイン:WordPress HTTPS)

 

(4) htaccessを書き替える(ディレクトリー構造に変更がある場合)
※新ドメインに変更したのにエラーになる場合、htaccessが原因の事が多い

以下は、一例です。ご自分のサイトに合わせて変えてください。

 

(マルチサイトをwpディレクトリーにインストールしている場合)

[php]
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) wp/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ wp/$2 [L]
RewriteRule . index.php [L]
[/php]

 

(マルチサイトをドメイン直下にインストールしている場合)

[php]
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ – [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
[/php]

 

(5) 記事内のURLを変更する(作業中は仮URLになっているのでドメイン名に変更)
※プラグイン:search_Regex

 

参考にされる場合には、バックアップしてから作業されてください。
環境によって予期せぬトラブルが起こることがあります。