サーバ』の最近のブログ記事

サーバ移転から約2週間。だいぶ落ち着いてきたので、忘れないうちにまとめておこうかと。以下、移転作業についてのメモ。

サーバ移転先

【移転前】ロリポップ ⇒ 【移転先】エックスサーバ

ロリポップからエックスサーバへ

サーバ選びでいろいろ迷ったんだけど、結果的には、ロリポップからエックスサーバーへ移転することに。

データベースが複数個つかえて、マルチドメイン対応で、とか前提条件をいくつか決めてエックスサーバーを選んだんだけど、乗換直後にロリポのチカッパプランが誕生。もう少しタイミングが早ければ、嗚呼・・・。

サーバ移転の手順

全体の流れは、以下のような感じ。

  1. MT(Movable Type)の移行
  2. Wordpressの移行
  3. メールサーバ変更
  4. DNS変更
  5. リダイレクト処理

今回は、「1. MT(Movable Type)の移行」についてまとめます。以下、詳細。

1. MT(Movable Type)の移行

旧サーバでバックアップ取って、新サーバで復元するだけなのだが、移行前にMTのバージョンを揃えておくのがポイント。データ移行は、同じバージョン間じゃないとうまくいかないらしい。

(参考)別のサーバーへ移行したい | Movable Type 4 FAQ
http://www.movabletype.jp/faq/export-blogs.html
バックアップ

ということでまずは、バックアップから。

MT管理画面でのバックアップ

上図の通り、管理画面の「システムメニュー>ツール>バックアップ」画面に移動。zip圧縮を選択の上、「バックアップデータを作成」ボタンをクリック。しばらくたつと、zipファイルがダウンロードされます。
※「ツール>エクスポート」だと、テンプレートデータ等がエクスポートできないので注意!

(参考)

MT4 のバックアップ・復元についてのまとめ | Movable Type 4 | 阿部辰也のブログ――人生はひまつぶし。
http://www.abe-tatsuya.com/web_prog/movabletype4/backup.php
ブログの完全バックアップと、データベースのバックアップ | Movable Type 4 ドキュメント
http://www.movabletype.jp/documentation/start_backup.html
MTのバージョンアップ

続いて、MTを最新版にバージョンアップ。

当然のごとく、MT5へのアップグレードを考えたけど、SQLiteはサポートしてないみたいで、断念。そのうち、MySQLに移行して、MT5にするかな・・・。

結局、以下のバージョンアップを実施。
Movable Type 4.261 ⇒ Movable Type 4.28

MTのバージョンアップ手順
  1. インストールディレクトリ「mt」を「mt--」にリネームし、バックアップ
  2. 「mt--」と同ディレクトリに、インストール用「mt」ディレクトリを新規作成
  3. 「mt」ディレクトリに、MT4.28の全ファイルをアップロード
  4. 「mt--」内のmt-config.cgiをコピーして「mt」ディレクトリにアップロード
  5. ブラウザで「mt/mt.cgi」にアクセスし、アップグレード実施

※メモ
MTファイルをアップロードする際、転送モードは「バイナリ転送モード」を選択する。
mt.cgi等のCGIファイルは、パーミッションを「755」に変更する。

(参考)小粋空間: Movable Type 4.21 から 4.22 へのアップグレード
http://www.koikikukan.com/archives/2008/10/19-003333.php
データの復元

続いて、バックアップデータを復元。

データの復元手順
  1. 「mt」ディレクトリ内に、データ復元用の「import」ディレクトリを作成
  2. 「import」ディレクトリ内に、先ほどのバックアップデータ(zip形式)を解凍の上、アップロード
  3. 管理画面の「システムメニュー>ツール>復元」で、バックアップファイルを何も指定せず、「復元」ボタンをクリックし、データを復元(※下図参照)

MT管理画面での復元

※メモ
sqlitedbファイルを利用して、データ移行する際は、FTPの転送モードに注意。
ダウンロードもアップロードもバイナリモードで行うこと。
アスキーモードのままだと、mtログイン画面にて、下記エラーが発生する。
「DBD::SQLite::db prepare failed: database disk image is malformed(11)」

(参考)

バックアップしたブログの復元 | Movable Type 4 ドキュメント
http://www.movabletype.jp/documentation/start_restore.html
やっちまっただ - 流れ着いたら。。。
http://www.flotsam-fareast.com/2009/04/mt-reset-20090423.html
MT4を別サーバで復元するとき - ウェブデザイン hasegawahiroshi.jp
http://hasegawahiroshi.jp/2008/03/24/mt4/
再度バックアップ

バージョンアップしたMTでデータが復元されていることが確認できたら、再度バックアップを実施。新サーバへの移行に備える。

新サーバへMTをインストール

ここからようやく、新サーバでの作業。

旧サーバと同じバージョンのMTを、新サーバにインストールしていくのだが、手順は、「MTのバージョンアップ」のときとほぼ同じなので割愛。

サブドメインで公開する場合

http://blog.example.com/のように、サブドメインで公開する場合は、mt-config.cgiの「CGIPath」と「StaticWebPath」を、絶対パスで指定する必要がある。

ルート相対のままにしておくと、ディレクトリを読みにいけないため、captchが表示されないなど、不具合が発生する。

(変更前)mt-config.cgiの設定

CGIPath /mt/
StaticWebPath /mt/mt-static/
StaticFilePath ルート相対


(変更後)mt-config.cgiの設定

CGIPath http://www.example.com/mt/
StaticWebPath http://www.example.com/mt/mt-static/
StaticFilePath (変更なし)

(参考)

小粋空間: Movable Type(MT)のインストール
http://www.koikikukan.com/archives/2008/11/01-015555.php
サブドメインでブログを公開したい | Movable Type 4 FAQ
http://www.movabletype.jp/faq/post-36.html
小粋空間: Movable Type でサブドメインを利用する場合の設定
http://www.koikikukan.com/archives/2008/03/06-020202.php
Movable Type 4.2  Can't call method "label" on an undefined value - 徒然雑草
http://veritascreative.org/continuous_connection/2009/09/02_165800.html
xserver で cron | trash-area.com
http://trash-area.com/archives/335
まとめ

ということで、以上でMTの移転完了。

これにプラスして、プラグインの動作確認したり、移行データの検証したり、リダイレクトの設定したり、みんなにお知らせしたりと、やること盛りだくさん。ひとことで言えば大変でした。

でも、参考として挙げている数々のサイトに助けられ、無事移行が完了しました。感謝、感謝。

<結論>
サーバの移転なんて、しないに越したことないね! なんだ、この結論。。。

サーバ移転:Wordpress移行篇に続きます。

サーバの移転ではまったので覚え書きとしてメモ(というか半分以上、愚痴)。

ちょっと前から、サイトリニューアルの依頼を受けて個人で制作してた。
で、完成間近になって、さてサーバを移転するか!とDNSの設定をいじってみたがうまくいかん...。

まずは状況のまとめ

・現行サイトは独自ドメインを使用。(仮に、client-domain.com)
・サーバはロリポップを使用。(仮に、old.lolipop.jp)
・リニューアルを機にサーバをロリポップの別サーバに移転。(仮に、new.lolipop.jp)

これまでにサーバの移転を自分でやったことはなかったけど、DNSの設定を変更すりゃいいんだろ?くらいに思っていた。
が、DNSを変更しようとして重大なことに気付く。

ロリポップの場合、DNSの指定は以下のようになる。

プライマリネームサーバー uns01.lolipop.jp (IP 202.222.19.125)
セカンダリネームサーバー uns02.lolipop.jp (IP 202.222.19.126)

そう、ロリポップのレンタルサーバである限り、ネームサーバの指定値は同じなのだ。
ということはつまり、ロリポップからロリポップへのサーバ移行は、内部の設定を変更してもらわないと「無理」と言うこと。

ということで、現行サーバ管理者に早速ドメイン設定の解除を依頼した...のだが、いつまでたっても解除されない。
ロリポップに事情を話して解決方法を相談したが、「現行サーバ管理者に依頼してください」の一点張り。
これではいつまでたっても、新サーバに移行できないので、色々調べた結果、新サーバのIPアドレス当てにDNSの設定を行うこととした。

IPアドレスの調べ方(Windowsの場合)

(1) スタート > すべてのプログラム > アクセサリ > コマンドプロンプトを起動
(2) nslookup new.lolipop.jp(=調べたいサーバ)と入力してEnter
(3) 表示されたAddress: ***.***.194.77という数字がIPアドレス

IPアドレスを調べるだけなら、nslookupっていう便利なサイトがあるから、そちらを使わせてもらうのが吉。

ということで、DNSの設定をIPアドレスに変更してめでたしめでたし、と思いきや、今度はロリポップ側で403エラーが発生。
どうやら、IPアドレスをDNSの設定値にすると、ロリポップ側ではじいてしまうらしい。

しょうがないので最終手段。別サーバを用意してそこに飛ばすことに。

用意したのは、Host Mysite 101.comなる海外の無料サーバ。
無料サーバをたくさん紹介している「無料ホームページ・無料サーバー比較」というサイトから探してきた。

このサーバ、無料にも関わらずPHPにも対応してるし、広告も入らないという優れもの。
とまあ、サーバの紹介はいいとして、旧サーバのデータを「Host Mysite 101」にアップして、DNSを切り替えたところ...見事に接続できた!

画像がまったく表示されないっていうバグがあったものの、画像を別サーバに置いて、それも力ずくで解決。

この一連のサーバ移転トラブルで3日くらい悩んでた。しかも、まだリニューアル完了してないし...
まだまだ修行が足りないようです。(いろんな意味で)

最後に、この一連の作業をワークフローとして図式化しておきます。
それにしても、×多すぎ...

サーバ移転フロー

ドメインを取得した。

苦労してMTをインストールした後だし、ドメインの移行って大変そうだから敬遠していたのだが...。どうやらサーバの移転と違って、ドメインを変えるだけなら簡単にできるらしい。
それならってことで早速ドメインを取得。旧ドメインからの移行が無事終了したので、移行の流れを自分用のまとめとして記事にしておく。

まず、以前の状況のまとめ。
1. 使ってたのはロリポップのサブドメインプラン(hoge.lolipop.jp)。
2. hoge.lolipop.jp/blog フォルダにMovableType4.1をインストール済み
3. hoge.lolipop.jp/piyo フォルダにphpを使ったサイトを構築。

ほんとは「skylovedesign.net」でドメインが取りたかったんだけど、既に埋まっていたので代わりに「skyld.net」を取得。


以下、ドメイン移行手続きの流れ。

(1) ドメイン管理会社のサイトで、欲しいドメインを申請する。
(僕は「ムームードメイン」で取得しました。キャンペーン期間中につき「.net」が年間649円だったので。以下、ムームードメイン+ロリポップという組み合わせでの流れを記述。)

(2) ドメイン申請の決済終了後、ムームードメインのコントロールパネルから「ドメインの取得」を選択し、ドメインを発行する。
(この手続きを行うまで、ドメインは使えない。)

(3) 同じくムームードメインのコントロールパネルから、「ネームサーバ設定変更」を選択。『ロリポップ!のネームーサーバーを使用する』をチェックした上でDNS情報を変更する。

(4) MT管理画面から、ブログのサイト設定を変更する。
(MT管理画面 > ウェブログの設定 > サイトのurlとアーカイブのurlを新しいサブドメインのurlへ書き換え > 再構築をかけ終了)

(5) 旧ドメインにアクセスしにきた人を新ドメインに飛ばすために、.htaccessでリダイレクトの設定を行う。

この(5)ではまってしまった。

googleで調べた方法、『.htaccessに Redirect permanent文を書く』ことで新ドメインにリダイレクトさせようとした。
ソースコードは以下。

.htaccess
Redirect permanent / http://www.skyld.net/

もうお気付きの方も多いと思うが、上のように書くと無限ループに陥っておかしなことになる。
上のコードの意味は、アクセスしてきたものはすべて http://www.skyld.net/ に飛ばしなさいということ。

こう書けば、旧ドメインにアクセスしてきた場合、新ドメインにリダイレクトすること自体は可能だが、新ドメインにたどりついた瞬間、またリダイレクトしようとして。その後も、その後も同じことを繰り返す。そう、つまり無限ループ。

この無限ループを回避するため、最終的には.htaccessにこう書いた。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(skyld\.net)(:80)?
RewriteRule ^(.*) http://www.skyld.net//$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(hoge\.lolipop\.jp)(:80)?
RewriteRule ^(.*) http://www.skyld.net/$1 [R=301,L]

2~3行目: wwwなしのskyld.netへのアクセスをwww.skyld.netにリダイレクトする処理
4~5行目: 旧ドメインhoge.lolipop.jpへのアクセスをwww.skyld.netにリダイレクトする処理


これでドメイン移行完了。かかった時間は3時間くらい。はじめに思ってたよりは簡単だったかな。

あ、そうそう、ムームードメインでは引き続き○○○.netの割引キャンペーンをやってるみたい。8/25が締め切りなので、ドメイン取得を検討中の方は使ってみてはいかがでしょ?


あ、なんかアフィリエイトブログみたくなってる。まあ、気にせずに。

参考記事:
サブドメインへ移行しようかと。 - 我楽
dis-CHARGE.net - リダイレクトについて
セカンドノート: 独自ドメインへ移行