sixcore(シックスコア)へ移転!1日もかからないレンタルサーバー移転時の作業時間をグッ!と短縮する方法!

Web・ブログのこと Wordpress
Array ( [0] => Array ( [parent] => 0 [slug] => web-tips [name] => Web・ブログのこと ) [1] => Array ( [parent] => 701 [slug] => blog [name] => Wordpress ) )
スポンサーリンク

filebackup
こんにちは。カズヤ(@kazumiso_s)です。

先日、当ブログのレンタルサーバーをシックスコアへと移転しました。


その際、データ移行の作業をなるべく早く終わらせるように行った方法をご紹介いたします!

ちょっとプログラミング的要素があるので、初心者の方には難しいかもしれませんがご参考になれば幸いです。

スポンサーリンク

Wordpressのファイル転送時間の短縮

まずサーバー移転の際に一番時間がかかると思われる作業が、WordPressファイルの転送。

運営している期間や画像の使用具合によっても容量は変わりますが、FTPツールで数GB以上のファイル郡を転送することになります。

移転前のサーバーからPCにダウンロードし、移転後のサーバーへPCからアップロード。

これを普通に転送してしまうと数時間~十数時間かかってしまいます。

そこで、サーバー上で一旦フォルダを圧縮し、移転先サーバーで解凍するという手順を行いました。

圧縮することで容量を軽くし、複数ファイルを1ファイルにまとめることができるため、転送時間の大幅な短縮に繋がります。

1.圧縮用ファイルの作成

下記のコードをコピーしてphpファイルとして保存します。

例として、wp-includesフォルダのみを圧縮するようにしています。

他のフォルダに変更する場合は、3行目と6行目の「wp-includes」の部分を「wp-admin」などに変更して下さい。

<?php
//保存用ファイル名設定
$filenm = "wordpress_backup_" . date('Ymd')."_includes";
//バックアップコマンド作成
$cmd = "tar cvfz $filenm.tar.gz ./wp-includes";
//コマンド実行
exec($cmd,$ret,$output);
//異常終了時
if($output !== 0){
echo "バックアップに失敗しました。\n";
echo 'エラーコード: ' . $output;
return;
}
echo 'バックアップ終了';
?>

2.保存したファイルを移転前のサーバーへアップロード。

ここでは作成した圧縮用ファイルをbackup.phpとします。

これを移転前のサーバーへアップロードします。

wp-admin,wp-contentなどと同じディレクトリに格納。

file_backup1

3.アップロードしたphpファイルをブラウザから実行。

ファイルをアップロードしたらブラウザからファイルを実行します。

例)https://applian.jp/backup.php

「バックアップ終了」と表示されたらtar.gzという拡張子の圧縮ファイルが同じディレクトリに作成されています。

例)wordpress_backup_20130731_includes.tar.gz

こちらをPCにへ転送します。

圧縮されているので容量が軽くなり、1ファイルのみの転送になるので通常より所要時間が短くなります。

file_backup2

4.移転先サーバーへ圧縮ファイルをアップロード

作成された圧縮ファイルをPCへ転送したら、移転先サーバーへアップロードします。

移転先サーバーはドメインの設定を行なって、ディレクトリを作成した状態を例としています。
file_backup3

5.圧縮ファイルを解凍

今度は移転先サーバーで圧縮ファイルの解凍を行います。

1番の手順と同様に、下記のコードをコピーしてphpファイルとして保存します。

3行目の「wordpress_backup_20130731_includes.tar.gz」の部分は、手順3で作成されたファイル名を指定して下さい。

ここでは作成した解凍用ファイルをunzip.phpとします。

これを圧縮ファイルと同じディレクトリへ転送したら、ブラウザから実行します。

<?php
//ファイルの展開用コマンド作成
$cmd = "tar xvf ./wordpress_backup_20130731_includes.tar.gz";
//コマンド実行
exec($cmd,$output,$ret);
//異常終了
if($ret !== 0){
echo "ファイルの展開に失敗しました。\n";
return;
}
echo "ファイルの展開終了\n";
?>

file_backup4

6.フォルダの解凍確認

画面に「ファイルの展開終了」と表示されたら移転先サーバーのディレクトリを確認してみましょう。

移転前のサーバーで圧縮した「wp-includes」フォルダが存在しています。

これで作業は完了です。

あとはwp-admin,wp-contentフォルダも同様の手順をで転送。

ルート直下にあるwp-config.phpなどのファイル郡は容量も軽くファイル数が少ないため、手動で転送すればOKです。

サーバー上で圧縮、解凍を行なっているので数分でファイルの転送作業が完了します。

file_backup5

mysqlデータのインポート

WordPressファイルの転送が完了したら、次にmysqlのデータをインポートしましょう。

こちらも考え方は同じで、サーバー上でmysqlへインポートを行うことにより高速化を図ります。

インポートに使用したファイルはプラグインの「WP-DBManager」にて出力したものを使用しました。

また、事前準備として移転先サーバーのmysqlは作成しておいて下さい。

1.phpMyAdminでエラー

WP-DBManagerでエクスポートしたSQLファイルを、移転先サーバーのphpMyAdminでインポートしようとしたらこのエラーがでました。

300MB近くあるエクスポートファイルは処理しきれないようです・・・
mysql_imp_err

2.WP-DBManagerでバックアップ

データベースのバックアップはプラグイン「WP-DBManager」で行いました。

この時、「GZIP圧縮を使用しますか?」という項目は「いいえ」を選択して下さい。
mysql_imp_err2

3.インポート実行用ファイルの作成

下記のコードをコピーしてphpファイルとして保存します。

ここではimport.phpとします。

また、接続するデータベースの情報を入力する必要がありますので、自分の環境の情報を入力してください。

  • 3行目:$url=データベースのホスト名
  • 5行目:$user=データベースのユーザー名
  • 7行目:$pass=データベースのパスワード
  • 9行目:$db=データベース名
  • 11行目:$sql=インポートするファイル名(アップロードしたファイル名)
<?php
//ホスト名
$url = "xxxxx";
//ユーザー
$user = "xxxxx";
//パスワード
$pass = "xxxxx";
//データベース名
$db = "xxxxx";
//取り込みSQLファイル名
$sql = "applian.sql";
// MySQLへ接続する
$link = mysql_connect($url,$user,$pass) or die('MySQLへの接続に失敗しました。<br>$url,$user,$passの値が正しいか確認して下さい。');
// データベースを選択する
$sdb = mysql_select_db($db,$link) or die('データベースの選択に失敗しました。<br>$dbの値が正しいか確認して下さい。');
// MySQLへの接続を閉じる
mysql_close($link) or die("MySQL切断に失敗しました。");
//DBインポート用コマンド作成
$cmd = "mysql $db -u$user -p$pass -h$url < $sql";
//コマンド実行
system($cmd,$output);
//異常終了
if($output !== 0){
echo "データベースの取り込みに失敗しました。\n";
echo "エラーコード:$output";
return;
}
echo "データベースの取り込み終了\n";
?>

4.インポート実行用ファイル、データベースのバックアップファイルの転送

手順2で作成したデータベースのバックアップファイルと、手順3で作成したインポート実行用ファイルを移転先サーバへ転送します。

mysql_imp_err3

5.インポートファイルの実行

ブラウザからインポート用ファイルを開きます。

手順3で作成したインポートファイルのmysql接続情報が誤っている場合は下記のエラーがでます。

設定情報を見直して下さい。

mysql_imp_err4

「データベースの取り込み終了」と表示されれば、作業完了です。

phpMyAdminへログインしてテーブルが作成されていることを確認してみて下さい。

mysql_imp_err5

後処理

転送に使用したファイル(backup.php、unzip.php、import.php)は必ずサーバー上から削除しておいて下さい。

unzip.php、import.phpが誤って実行されてしまうと、ファイルやデータが移転時の状態へ戻ってしまいます。

WordPress、Mysqlのデータが無事に転送できたら、wp-config.phpのデータベース接続情報を書き換えて移転先サーバで表示確認を行いましょう。

最後に

こちらでご紹介した方法を使用すれば、かなりの時間短縮が実現するはずです。

ただし、作業を行う際は全て自己責任てお願い致します。

トラブルや損失・損害等につきましても一切責任を負いかねますのでご了承ください。

ファイル転送後は、ネームサーバの切り替えをお忘れなく・・・

お疲れ様でした。

スポンサーリンク

この記事は私が書きました。

管理人:カズヤ(@kazumiso_s)

31歳、横浜市在住の2児の父。本業はシステムエンジニアで目標は今の会社で取締役になること。「毎日に価値を見出す」ことを信念に置き、未来に役立つ情報を発信しています。難病「好酸球性副鼻腔炎」という嗅覚障害持ち。最近生まれて初めて坊主にした。詳細なプロフィールはこちらから

この記事をシェアはこちらから。

フォローして頂けるとブログの更新情報をお届けできます。

この記事が気に入ったら「いいね!」
最新情報をお届けします。

もう1記事いかがですか。