当ブログですが、従来はレンタルサーバーのXREA+に
CMSソフトのMovable Type をインストールして運営しておりました。
しかしここ最近、おかげさまでアクセス数が激増しておりまして、
サーバー負荷がちょっとやばい状態になっておりました。
※一日の転送量が4GBを超える日も出てくるようになりました。
※特に、SAXOリアルタイムクオート、チャートが人気ページです。
そこで今般、XREAの上位サービスであるCORESERVERに移行してみました。
(本日早朝に作業完了)
移行作業ですが、結構大変(特に、MySQL4→5への移行)だったので、
その手順、ノウハウを以下にまとめてみました。
1.下準備 バックアップ
・ブログのコメント、トラックバックを無効にする
↓
・ブログの全てのファイルを再構築
↓
・サーバー管理画面でデータベースをバックアップ
↓
・引っ越し元のサーバーのファイルをFTPソフトを使ってダウンロード、バックアップ。
2.サーバー間コピー
移転先のサーバー間コピーを使用します。
移転元でサーバー間コピーをすると、ファイルが全て消えますのでくれぐれもご注意を。
今回は、XREA→CORESERVERなので、CORESERVER側で操作をします。
実行後、余計なことはせずにまったり待ちましょう。
コピー完了を知らせてくれる通知とか一切ありませんので、だいたいで判断するしかありません。
ファイル使用容量を見て判断するといいでしょう。
追記:コピーが完了すると、コピー先のルートディレクトリに、.servercopy.log というファイルができるので、それ開いて一番下にCOMPLETEとか書いてれば完了です。
私の場合は、1.2GBの容量でしたが2時間後にファイル容量をチェックしたところ完了してたような感じでしたので
作業を再開しました。(意外に早い)
なお、このXREAのサーバー間コピーが優れているのは、早いだけじゃなくて、なんとパーミッション設定もそのまま保持してくれるので超便利です。
コピーした後、面倒なCGIのパーミッション設定などが不要でそのまま稼働できるのが嬉しいです。
(→ 訂正:CGI を勝手に755にしてくれるだけです(なのでとりあえずサイトは動くことは動く)。書き込み権限が必要なログファイルやデータファイルは手動で606とかにしないと駄目です。これが設定に時間かかりますが、しょうがないですね。)
3.データベースMySQL4→5移行 その1エクスポート
このデータベース移行が一番苦労したところです。
XREAではMySQL 4 でしたが、CORESERVERではMySQL 5です。
この4→5への移行が、文字化けしまくったりしてとんでもなく大変でした。
苦労の末、成功した手順は以下のとおりです。
【1】移転元サーバー(今回の場合はXREA)管理ページのデータベース画面でphpMyAdminにログイン
phpMyAdminをインストールしてない場合はインストールをクリックして数分後にログイン
【2】左のサイドバーで移行させるデータベースをクリックし、上のエクスポートをクリック
【3】以下の画像のように設定、実行
4.データベースMySQL4→5移行 その2インポート
【1】移転先サーバー管理ページ(今回の場合はCORESERVER)のデータベースのところで、
任意のパスワードを入力して、データベースを作成(文字コードは移転元のと同じにする)
※追記:ユーザー名もパスワードも、移転元と同じにするのがオススメ!面倒くさい設定ファイルの書き換えをしなくていいので楽です!
ユーザー名はアカウント名と同じなので、サーバーのアカウント作成時に、移転元と同じアカウント名にしましょう。
【2】.htaccess、.htpasswdを設定
私はここでハマったんですが、このままではphpMyAdminのディレクトリにアクセスできません。
理由は、サーバー間コピーで、phpMyAdminがインストールされているディレクトリ(public_html/logディレクトリ)の
設定.htaccessと認証パスワード.htpasswdが、移転元サーバーのものになってしまっているからです。
なので、CORESERVER側のファイルマネージャで、
root/public_html/log ディレクトリにアクセス、
まず、.htaccess を編集、
一行目
AuthUserFile /virtual/(ここを移転先サーバーの設定(普通はユーザー名)に変える)/public_html/log/.htpasswd
を書き換え。
追記:上でも書きましたが、こういう面倒くさい書き換えが必要になるので、ユーザー名もパスワードも、移転元と同じにするのがオススメです。
次に、.htpasswd を編集、再設定。
【3】移転先サーバー管理画面(今回の場合はCORESERVER)からphpMyAdminにログイン
【1】で設定したID、パスワードでログイン
【4】左サイドバーのインポート先データベースを選択、上部メニューの「操作」をクリック
「照合順序」を latin1_general_ci にして実行
(重要。これやらないと文字が無茶苦茶になります)
【5】上の「インポート」をクリックして以下のように設定、実行
エクスポートしたデータベースファイルを選択、
文字セットをlatin1にして
実行する をクリック
しばらくして、「インポートは正常成功しました」と出たら成功!おめでとうございます。
※追記:2017年9月のコアサーバー大規模再構築のついでに、内部文字コードをutf8_general_ciで統一しました。(参考:MySQLのutf8_general_ciとutf8_unicode_ciの違い)
具体的なやり方としては、めっちゃ単純なんですが、Movable Type標準機能のツール>記事のエクスポート、テーマのエクスポート、これだけで簡単に移行できました。コロンブスの卵ですw
データベース移行の文字化けで苦しんでいる方、結局記事のエクスポート、テーマのエクスポート、これが一番早くて確実です。こちらの記事が参考になりました。
僕の場合、参考記事と違うのは、ツール>バックアップを使うとうまく移行できませんでした(具体的には、リストアで失敗する)。ツール>記事のエクスポート、テーマのエクスポート、この2つでさくっと移行できます。
あと、僕の場合はエクスポートした記事のデータが50MBを超えていてでかすぎて、インポートの際にエラー(The file you uploaded is too large.)が出たんですが、mt-config.cgiに CGIMaxUpload 90000000 と追記したらあっさりインポートできました。(参考:http://www.koikikukan.com/archives/2014/11/28-013333.php)
あとついでにmt-config.cgiに SQLSetNames 1 と追記しておきましょう。詳しくはググってください。
※ツール>記事のエクスポート、テーマのエクスポート、これで移行した場合、移行後に、ブログ管理画面の右上のユーザー名をクリックして、下の方の「Webサービスパスワード」を設定し直してください。windows live writer で記事を投稿しようとしたら、lnvalid login エラーで記事を投稿できなくて焦りましたが、↑のWebサービスパスワードを設定したら投稿できました。
5.DNSの変更
ドメイン管理画面にログインして、DNS設定を変える。
ご存じだと思いますが、DNSの設定変更には数時間、長いときは数日かかります。
→DNSの設定が反映するまでの時間 - Master of IP Network
6.ドメインウェブの変更
5分くらいしたら、コアサーバーのドメインウェブを設定
あとは、6~12時間くらい放置後、DNS設定が問題なく移行したかなと判断したら、
移転元サーバーのドメインウェブ設定を削除します。
※追記:移転元の設定は、削除せずにそのまま放置でOKです。
7.Movable Typeのmt-config.cgiを書き換え
データベースID、パスワードを移転先のに変更
※しつこいですが、こういう書き換えが面倒くさいのでデータベースのユーザー名もパスワードも、移転元と同じにするのがオススメ。
8.Movable typeログイン後、設定変更
サイトのhtmlファイルにアクセスしたり、CGIを動かしたりして表示に問題がないか定期的に確認しつつ、
6~12時間放置後、Movable typeにログイン。
設定>公開のサイトパスを変える
※しつこいですが、こういう書き換えが面倒くさいのでユーザー名もパスワードも、移転元と同じにするのがオススメ。
コメント、トラックバックを有効にする。
9.MTを再構築
Movable typeを問題なく再構築できたら完成です!
なかなか大変な道のりでしたが、上記の手順で無事に完了しました。
Movable typeの引っ越しを検討している方のご参考になりましたら幸いです。