ホスティングサーバーをロリポップからXserverへ移転しました。

インドネシアに来て以来、公私ともどもにIndositeというローカルホスティング会社を利用していましたが、あまりにサーバーダウンが頻発するため、見限って日本のロリポップに引越ししたのが5年前、以来快適に使用できていました。。

ただ時代の流れというべきか、やはり格安なだけあって年々その遅さが気になりだし、特に管理画面の動きが遅くタイムアウト起こすこともしばしばで、快適なブログライフに支障をきたすようになりました。

サーバー移転の理由

そして昨年末にグローバルサインの独自SSL証明書にてサイトを常時SSL化したのですが、自分のスマホのテザリングでアクセスすると、非定期的に以下のエラーで接続できなくなるというトラブルに悩まされるようになりました。

Error

Chromeでエラーが出たらFirefoxで繋がったり、今度はFirefoxでエラーが出たからIEで繋ぎ変えたり、さらにエラーが出たから今度はChromeで繋がったり。。。。

おそらくブラウザが、グローバルサインのSSL証明書がindonesia-japa.comというドメインに対して有効であることを認識できないのが原因だと思うのですが、ブラウザのキャッシュをクリアしたり、AndroidのアンチウィルスソフトであるAVGプロテクションのスキャンの感度を低くしたりしても効果なし。。。

常時SSL化以前はこんな問題なかったし、今でも自宅のZUMというCDMA高速インターネットでは問題なく接続できるので、ProXLがSSL接続にセキュリティをかけているとか、アンチウィルスかAndroidがブロックしているか何かだと思います。

1ヶ月ほど悩み倒しましたが結局解決しないので、サーバーを移転しドメインも移管してしまい、移転先で新たに別の独自SSL証明書を適用すれば、もしや解決するんじゃなかろうか、と考えるようになりました。(注)

SSL

この場合、Xserverの独自SSL証明書は、Xserverに管理されているドメインでないと契約できないため(ロリポップも同じ)、ムームードメインからのドメインの移管も必須となります。

ちょうどXserverのSecureCoreが初年度無料キャンペーン中だったので、まあ来年からSecureCoreに費用がかかったとしても、グローバルサインが年間20,000円するのに対してSecureCoreは格安の1,000円程度なので、価格的にも圧倒的に割安になります。

(注)最終的には独自SSLをサブドメインに対して適用したのが原因ではないかと考えています。ロリポップではwwwをサブドメインとして定義でき(Xserverではできない)、ドメインとサブドメインの両方をWordPressルートにマッピングさせていました。一方で独自SSLはサブドメインとドメインは別々に契約しないといけないという規定があり、ここでおかしくなっていたのだと思います。

ロリポップとXserverの比較

一般的にロリポップは格安サーバーと言われますが、独自SSLの利用を前提で考えた場合、価格的にはXserverのほうが大幅割安になります。

ロリポップでSSL証明書をサブドメインに適用してしまうと、これを解除してドメインに適用し直すということはできないし、そもそもSSL証明書を適用している場合はそのサブドメインすら削除できないし、結論として今回はサーバー移転とドメイン移管やむなしということになりました。

ロリポップスタンダードプラン

  1. 費用:6,000円/年
  2. 独自SSL(グローバルサイン):20,000円/年 wwwありなしOKの2way対応
  3. 自動バックアップ:3,600円/年
  4. ディスク容量:120GB
  5. DB:30個
  6. 転送量:100GB/日

Xserver X10

  1. 費用:12,000円/年
  2. 独自SSL(CoreSSL):1,000円/年 wwwありなしOKの2way対応
  3. 自動バックアップ: 無料 7日間分有料提供(DB:5,250円 サーバー領域:10,500円)
  4. ディスク容量:100GB
  5. DB:30個
  6. 転送量:50GB/日

正しいサーバー移転方法

システム移行は誰も気づれないで「いつの間にか移行されていた」というのがプロの仕事だ、と昔の上司に教えられましたが、、できれば今のWEBサイト表示に支障をきたさないまま、誰も気づかれないようにコソッっと移転するのが目標です。

dousakakuninXserver側のサーバーパネルには、indonesia-japan.comのドメインでキチンと稼動するかどうかの確認をするための「動作確認URL設定」という便利な機能があります。

 

「他社で管理されているドメインを、当サーバーに移転(ネームサーバーの切替)する前にサイト内容を確認できる動作確認URLの発行を行うことができます。」とあるのですが、この文面を理解できなかったためずいぶんドタバタしました。

本来Xserverのサイト構築の正しい流れは以下のとおりです。

  1. サーバーパネルでドメイン名を追加
    まだドメイン未取得でも移管前でも可能
  2. WordPressをインストール
    WordPressのURLとサイトのURLはhttp://domain名.check-xserver.jp/
  3. 「動作確認URL設定」からhttp://domain名.check-xserver.jp/でアクセス
    この段階ではドメインでアクセスしてもロリポップ側に繋がってしまう。
  4. ドメインを取得または移管
    上記の動作確認できたらhttp://domain名でも動くということ。
  5. 独自SSL証明書を取得
    .htaccessにHTTPS通信に一本化する設定を行なう。

これに従うと僕の場合、本来は以下のようにするのが正しい流れでした。

  1. Xserverにindonesia-japan.comというドメインを作成
    Xserverでドメインを作成するというのはディレクトリを作成することなので、ムームードメインから移管前でも可能。
  2. WordPressをインストール
    作成される/indonesia-japan.com/public_htmlというディレクトリ内に構築。
  3. ファイルとDBのコピー
    ロリポップWordPressのwp-content内のテーマをコピーし、DBをインポート
  4. wp-config.phpを書き換え
    DB名・ユーザーID・テーブルprefixなど
  5. 「動作確認URL」で正しく表示されることを確認
    動作確認できたということは、ドメインでも正しく動作するということ。ただしSSL証明書適用後のHTTPS通信の確認まではできない。
  6. ムームードメインからXserverにドメインを移管
    ムームードメインのネームサーバーの宛先をXserverに変えるだけでもいいのですが、Xserverで新規独自SSL取得のためには移管必須です。
  7. 常時SSL化のための設定
    .htaccess内でHTTP通信によるアクセスをHTTPSに変換します。HTTPS通信によるアクセスの場合、wwwありなし両方に対応しているので何もする必要はありません。

ロリポップとXserverでは、物理ディレクトリとドメインのマッピング方法が違います。

ロリポップでは最初に物理ディレクトリ構造を定義して後からドメインをマッピングするのに対して、Xserverでは最初にドメインを定義することでマッピングされる物理ディレクトリが自動生成され、そこにWEBサイトを構築していきます。

これを知らず、Xserverから割り当てられたXserverのサブドメインにWordPressを引越しして、後からドメインをマッピングしようとして出来ないことに気づき、1から全部やり直したという痛恨のミスを犯しました。

上記の正しい移転の流れを把握することが大事で、後はロリポップのWordPressのDBをエクスポートしてXserverにインポートしたり、ファイルをゴソッとコピーしたり、wp-config.phpや.htaccessを修正したりとか、各論の話になります。

データベースとサーバ領域ファイルの引越し

ロリポップ側のphpMyAdminのエクスポートツールで、DROPしてUTF-8形式でCREATEするSQLスクリプトを生成し、Xserver側のphpMyAdminのインポートツールでインポートします。

サーバー領域内のファイルでコピーする必要があるのはおおよそ以下くらいであり、プラグインは移転後に再インストールしたほうが早いです。

  1. 画像ファイル
    ../wp-content/uploads/*.*
  2. テーマ
    ../wp-content/themes/*.*
  3. コンフィグファイル(環境に合わせて要書き換え)
    ./wp-config.php
  4. Apache設定ファイル(環境に合わせて要書き換え)
    ./.htaccess

ディレクトリ構成の変更と設定

public_htmlのルートにindex.phpを配置し、WordPressモジュールはindonesia-japanディレクトリ内に配置する場合、index.phpの最後でindonesia-japanディレクトリ内 のwp-blog-header.phpをインクルードします。

その上でWordPressの一般設定のURLを変更します。

  • WordPressアドレス(インストールディレクトリのURL)
    https://www.indonesia-japan.com/indonesia-japan
  • サイトのアドレス(ブラウザでアクセスするURL)
    https://www.indonesia-japan.com

ドメイン移管

Xserverにドメイン移管申請すると、WHOISやロリポップとコミュニケーションする必要もなく、全部Xserver側が指示をだしてくれるので楽でした。

  1. ムームードメイン側のレジストラロックをOFFに変更
    もともとかかっていないのでスキップ
  2. Xserverのインフォパネルから移管申請する
    この場合ムームードメイン側でのAuthKey認証鍵が必要になるのですが、AuthKey取得のためにはムームードメインのコントロールパネルからWHOIS情報を自分の情報に変更する必要あります。
  3. Xserverから移管承認メールが来る
    WHOISから英文メールが来るかと思いきやXserverから翻訳版が来ました。メイン公開データベース(WHOIS情報)のドメイン登録者連絡先(Registrant Contact)メールアドレス宛てに移管承認のメールが送信されますのでリンク先から承認ボタンを押します。
  4. ドメイン移管完了
    Xserverから完了のお知らせとムームードメインからトランスファー申請承認処理完了の知らせが来ます
  5. 翌日にムームードメインのコントロールパネルからindonesia-japan.comが消える
    ルーターが書き換わるまでは不安定なので、自分のPCのhostsを書き換えて対応します。

独自SSL証明書の適用

ロリポップサーバーで契約していたグローバルサインを引き続き使用するのであれば、ムームードメインのネームサーバーの宛先アドレスをXserverのアドレスに変更するだけでいいのですが、今回はサーバーの移転だけでなく独自SSL証明書の変更も必須(ロリポップでサブドメインに独自SSLを適用してしまったから 汗)なので、ドメイン移管が必須になります。

本当なら、Xserverで完全に以下の4パターンで問題なく繋がることを確認できてから、ドメインを移管したかったのですが、上記の「動作確認URL設定」はSSLまでは対応していないので、通常のHTTP通信で問題なく繋がることを確認してから、ドメインを移管し独自SSL証明書の適用を行い、下記の4パターンでのアクセスが1本のURLに集約する確認をする必要があります。

  1. https://www.indonesia-japan.com
  2. https://indonesia-japan.com
  3. http://www.indonesia-japan.com
  4. http://indonesia-japan.com

ロリポップではhttps://indonesia-japan.comでの接続でエラーが出ており、僕はグローバルサインがwwwありなし両方に対応していないからだと勘違いしていましたが、実はしっかり2way方式に対応してくれており、自分がサブドメインに対してSSL証明書を適用しているのが原因だと判明しました。

しかも.htaccess内で「HTTPS通信時にも全部wwwありのURLに変換する」という条件指定ができないため、未解決事項として残ったままでした。

サーバー移転とドメイン移管によって改善されたこと

今回の一連の引越し作業の結果としてロリポップで発生していた問題点がすべて改善されました。

  1. 接続スピードが圧倒的に改善された
  2. SSL証明書に起因すると思われるアクセスエラーが発生しなくなった
  3. wwwありなし両方のURLでSSL接続が可能になったこと

そして、これらの問題のすべてはSSL証明書の適用方法という点で繋がっており、ロリポップで設定したサブドメインに対してグローバルサインのSSL証明書を適用してしまったことに起因するということが判りました。

こんな投稿も読まれています