SEEDS Creator's Blog

読者です 読者をやめる 読者になる 読者になる

複数ブログ機能(マルチサイト)利用時のサーバー移行手順

WordPress wordpress プログラミング

複数ブログ機能(マルチサイト)利用時のサーバー移行手順

基本的には普通の移行と同じで、wp-configのマルチサイト設定を編集するかどうかなだけです。

環境

旧サーバー

ドメイン demo.hogehoge.com
ドキュメントルート /var/www/demo

新サーバー

ドメイン www.hogehoge.com
ドキュメントルート /var/www/www

上の新サーバーに移行する手順を例とします。 基本的にはwordpressのインポート/エクスポート機能は使用しません。

1.旧サーバーのMySQLのデータベースをダン

phpMyAdmin等が使えればログインし、wordpressが使用しているDBを選択したのちエクスポートタブを選択します。 「ファイルを保存する」にチェックを入れて実行するとdemodb.sqlみたいなファイルがダウンロードできます。 SSHログインができてmysqlコマンドが実行できるなら以下のコマンドでも。

mysqldump -uユーザ名 -pパスワード --databases DB名 > demodb.sql

2.取得したダンプファイルを一括置換

とってきたdemodb.sqlを一括置換します。 テキストエディタとかで開いて置換すればOKです

demo.hogehoge.com を www.hogehoge.com に一括置換
/var/www/demo を /var/www/www に一括置換
旧DB名 を 新DB名 に一括置換

WordPressで作成した記事内容の中も置換されるのである程度の確認はいるかもしれませんが基本的には全部置換して問題ないでしょう。 マルチサイトを使用していない場合や、サブディレクトリ形式のマルチサイトであれば上記でOKですが、 サブドメイン形式のマルチサイトであればそれらもすべて置換を行います。

blog1.hogehoge.com を blog1.hogehoge.com に一括置換
blog2.hogehoge.com を blog2.hogehoge.com に一括置換
...

3.旧サーバーのファイルをすべて新サーバーにコピー

FTPなどで旧サーバーのファイルをすべてコピーします。 wordpressディレクトリとかもそのままごっそりと。

4.新サーバーのMySQLのデータベースを作成してリストア

新サーバーにデータベースを作成します。 phpMyAdmin等が使えればログインし、「新規データベースを作成する」から作成すればOKです。

データベースの作成ができたら、先ほど置換したファイルをリストアします。

phpMyAdminが使えればログインし「インポート」メニューからファイルを選択する事ができますが、PHPで許可されている最大容量までしかアップロードできないので、容量制限の問題でアップロードできない場合はphp.iniや.htaccessでアップロード可能な最大サイズを変更する必要があります。

また、コマンドが使用できるのであれば以下のようなコマンドでリストア可能です。

mysql -u ユーザ名 -pパスワード DB名 < demodb.dump

5.新サーバーのwp-config.php.htaccessの修正

wp-config.phpをのDB設定を変更します

/** WordPress のためのデータベース名 */
define('DB_NAME', '新DB名');

/** MySQL データベースのユーザー名 */
define('DB_USER', '新ユーザー名');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '新パスワード');

/** MySQL のホスト名 */
define('DB_HOST', 'localhost');

複数ブログ機能を使用している場合は以下の項目もあるはずなので ドメイン名を編集します。

define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', '新ドメイン名' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

5.確認

あとは動作確認を行えばOKです。