このブログはさくらインターネットレンタルサーバ【新】スタンダートプランで運用しています。
つい最近、旧プランから新プランへ移行したのですが、他のサーバ会社とは異なり、自身で行う必要があることと、私には少し敷居が高かった作業でした。
移行に数回失敗したことと、それを踏まえた注意点も覚書として記しておきます。
移行から統合、そして移行
このブログはそもそも2010年8月、FC2ブログで始めたことがきっかけで続けております。
FC2よりさくらインターネット旧スタンダートプランへ移行し、この際に独自ドメインを取得し運用を始めました。
そして妻が綴っていたブログ「わんこ日記」もFC2ブログからさくらインターネットに移行し、別ドメインで運用していました。
そして最終的にこの2つのブログを統合して1つのブログとして運用していました。
この時の経験で一つ忘れていたことがありました。
画像データのファイル名の大文字と小文字の区別がなくなり、全て小文字でさくらインターネットのサーバーに移行されたこと。
この時、記事データのリンクは大文字小文字の区別はそのままだったので、画像データのファイル名を手作業で大文字小文字に打ち直しました。
思えばここで画像データでなく、記事データの方を修正すべきでした。
この時はFC2からさくらインターネットへの移行のみに発生すると思っていましたし、以降の移行に関することは考えていませんでした。
ファイルマネージャーからデータをダウンロード
ダウンロードデータ解凍での失敗
まずは、新サーバへ移行するデータを旧サーバのファイルマネージャを利用してダウンロードしました。
ZIP形式で圧縮されてダウンロードされます。
1.7GBのZIPデータでした。
これを解凍してFTPソフト等を利用して新サーバへアップロードします。
その為にはダウンロードしたデータを解凍しなければなりません。
ここで一つ目のトラブルが発生しました。
圧縮ファイルの中身のデータは大文字小文字が区別されているのですが、解凍すると小文字になって同一名は上書きされてしまいます。
LINUXサーバは区別して管理できますがWindowsは標準の状態では区別しません。
ABC001.jpg
abc001.jpg
この2つのファイルは「abc001.jpg」として同じものと判断され、後の方のデータで上書きされてしまいます。
LINUXのサブシステムをインストールする
そこでコントロールパネルの「プログラムと機能」の左側にある「Windowsの機能の有効化または無効化」をクリックします。
Linux用Windowsサブシステムにチェックを入れて大文字小文字の区別をWindowsが判断できるように機能を追加します。
再起動を求められるので指示に従って再起動します。
次にコマンドプロンプトで対象となるフォルダを指定します。
仮にデスクトップに「UP」というフォルダを作成します。
コマンドプロンプトで、
fsutil.exe file setCaseSensitiveInfo C:\Users\ユーザー名\Desktop\up enable
これで「UP」の中に解凍すれば大文字小文字が区別された状態で解凍できるので、新サーバにアップロードするファイルの準備が整いました。
解凍後のデータ容量は3.07GBでした。
なお、この手法はWindowsユーザー名に半角スペースが入ると動作ません。その場合はユーザー名から作り直すことが必要です。
データベース移行の失敗
アップロード容量に制限がある
旧サーバのphp My Adminにログインし、使用しているデータベースを選択しデータベースをエクスポートします。
エクスポートされたデータエースは私の場合308MBでした。
そして新サーバでデータベースを作成し、そこにダウンロードしたデータでーすをインポートします。
しかし何度やっても30数メガバイトにしかなりません。
他のレンタルサーバ会社なら問題はないのかもしれませんが、さくらインターネットでは32MBで規制を掛けているようです。
SSH転送では制限を設けていないということなので、コマンドを使用してデータベースをアップロードしましたが、何回かトライしましたが容量が合わないのです。
転送に失敗しているか途中で切断があったようです。
SSH転送に使用したソフトは「poderosa_portable」を使用しました。
手順は、FTP転送ソフト(FFFTP等)を利用してsqlファイルをWWW直下にアップロードします。
SSH(poderosa portable等)でさくらのサーバーにFTPユーザ名とパスワードで接続。
接続された後はSSHコマンドを使用します。
mysql -h mysql[数字].db.sakura.ne.jp -u [ユーザー名] -p [データベース名]
するとパスワード入力を求められるので入力します。
接続が成功していると mysql> と表示されます。
use データベースの名前を入力
source /home/ユーザー名/www/アップロードしたsqlファイル名
この方法で合っていると思うのですが上手くいかず、データベースの転送はされているのですが、微妙に容量が合わない状態でデータベースのアップロードは終わってしまうのです。
最終的にサポートに頼ることに
そこでさくらインターネットのサポートに依頼してデータベースは移行して頂くことにしました。
そうするとデータベースの容量は、新旧同じになるのです。
SSH転送の何が悪かったのか未だに不明です。
アップロードしたデータベースを利用してインストール
アップロードしたデータベースを利用してWordPressをインストールします。
インストールパスは旧に合わせました。
インストール後の設定は行わず、ファイルマネージャーからインストールされたフォルダとファイルを全部削除。
ここに旧データをアップロードします。
データアップロードでの失敗
アップロードしたデータサイズが合わない
FTP転送で新サーバにデータをアップロードします。
FFFTPというソフトでアップロードしました。
3.07GBのデータ容量でしかも数百キロバイトの細かなデータが多く、アップロード時間は11時間掛かりました。
しかし、今度もアップロードされたデータ容量が合わないのです。
2.7GBであったり、2.5GBであったり。
11時間を何度か繰り返しても合いません。(^^;
アップロードされたデータを比較する
アップロードされたデータを再びダウンロード、大文字小文字の区別が付けられる「UP」フォルダに解凍しました。
WinMergeというフリーソフトを使用してアップ前後のファイルを比較しました。
これで何のファイルが足りないのか比較できます。
するとやはりアップロードされていないファイルが出てきました。
データベースのアップロードの際もそうですが、大きなデータをアップロードする等、サーバに負荷が掛かる状態が続くと接続に問題が出るのでしょうか。
FFFTPを使用して再度アップロードで上書きするようにしました。
すると今度はデータ容量が合いました。
念のため再度アップロードしたデータをダウンロードし、解凍。
WinMergeで比較。
合致。(^^)
これでデータとデータベースの移行は終了しました。
wp-config.phpの編集
ファイルマネージャでWordPressインストールフォルダ直下にある「wp-config.php」を編集します。
エディタで、
/** WordPress のためのデータベース名 */
define(‘DB_NAME’, ‘新データベース名‘);
/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘新ユーザ名‘);
/** MySQL データベースのパスワード */
define(‘DB_PASSWORD’, ‘データベースパスワード‘);
/** MySQL のホスト名 */
define(‘DB_HOST’, ‘mysql****.db.sakura.ne.jp’);
****の部分の数字を新データベースサーバ番号に変更します。
あとはドメインの移行です。
独自ドメインの移行
これは簡単でした。
旧サーバで、
Webアプリケーションファイアウォールの解除、SSLの解除、ドメインの削除。
そして2時間待つ。
新サーバで、
ドメインを追加して「変更」からワードプレスのインストールパスを入力。
20分待つ。
無料SSLを登録。
20分待つ。
いつものHarmonic-Soundが表示されました。
暫く様子を見て旧サーバを解約
新サーバで運用されているか確認しよう
WordPressのダッシュボードにあるサイトヘルスステータスの「サイトヘルス画面」をクリックし、「情報」タブを表示します。
「ディレクトリとサイズ」
ディレクトリパスとサイズは新サーバのものとなっているか。
「データベース」
新サーバの情報となっているか。
「WordPress定数」
新サーバのパスとなっているか。
さくらインターネットのコントロールパネルの情報と、比較しながらチェックしましょう。
この確認を怠ると、
新から旧のデータベースを見に行っている。
そんな状況も発生する可能性があります。
最終的に旧サーバでログインして確認
旧サーバにログインし、ファイルマネージャでワードプレスのインストールフォルダの名前を変えてみましょう。
それでもサイトが表示されているなら旧サーバのデータは関係なくサイトは表示されています。
では、旧サーバのデータベースを削除してみましょう。
データベースは手元にダウンロードしています。
恐れず、データベースを削除してみましょう。
これで旧サーバにはデータもデータベースもなくなりました。
ブラウザの履歴キャッシュをクリアしてサイトを表示してみましょう。
それでもサイトが表示されているなら間違いなく新サーバでサイトは運用されています。
ここまでで何かあったら
もしここまでで、何かあってもデータもデータベースも手元にダウンロードしてあります。
もう一度、最初からおちついて見直していきましょう。
新サーバのWordPressバックアッププラグイン設定
移行が上手くいった場合、WordPressをプラグインでバックアップをとっている場合は、その内容を確認し、必要があればパス等を変更しておきましょう。
SSLが原因のエラーが出た場合
旧サーバのWordPressではさくらインターネット提供のSSLプラグインは有効のままで移行しています。
何かの具合でエラーになる場合があります。
その際はファイルマネージャーからWordPressインストールフォルダ直下の「.htaccess」に記述してある
# BEGIN Force SSL for SAKURA
# RewriteしてもHTTPS環境変数を有効にする
SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1
# 常時HTTPS化(HTTPSが無効な場合リダイレクト)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteCond %{REQUEST_URI} !/wp-cron\.php$
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# END Force SSL for SAKURA
を削除して保存。
WordPress管理画面が表示されたら「SAKURA RS WP SSL」を無効化して削除、再度インストールして有効化、設定してみましょう。
もし、この作業で不具合があったときのために、編集前の.htaccessをダウンロードしてアップロードする準備や、削除した内容をコピー、削除した内容の位置を何かに留めておくようにしましょう。
全ては自己責任です
これは既にあたり前のことですが、ここに書かれていることを行って何かあっても全て自己責任です。
私は何ら責任を負うことは致しません。
私のPC環境で、私の旧サーバの状況で、私の契約した新サーバの状況で、これで最終的には偶然的にも上手くいっただけかもしれません。
さくらインターネットのコントロールパネルを使用することがありますが、旧コントロールパネルで行ったことと、新コントロールパネルで行ったことでは、見かけ上は同じでも細かな動作の違いがあるか否か、私に知るよしはありません。
サイト運営者にとって、サーバの移行はかなり重要な作業です。
場合によっては全て損失する恐れもあります。
もう一度書きますが、この覚書を参考にするのは構いませんが、実行するのは自己責任で私は何ら責任を負うことは致しません。
【価格チェックと購入】
Amazon パソコン・周辺機器ベストセラーの価格チェック
Amazon 無線ルーターの価格チェック