エックスサーバー間でのサーバー移転

Xserver同士で異なるアカウント間のサーバーの引っ越しの方法を調べました。

Webサイト管理を一つのアカウントに統一するためです。ちょっと特殊なケースなので備忘録として。
ドメインの移管などは発生しないので、作業自体は2日程度で完了するでしょう。

WordPressで管理するサイトだったので、データベースの移転も併せて行ってみます。
作業をおおまかに分けると以下のようになります。

1.移転元サイトディレクトリデータのバックアップ

2.移転元MySQLデータベースのバックアップ

3.移転元各予備データバックアップ

4.ドメインの削除と追加

5.移転先MySQLデータベース作成

6.移転先サイトディレクトリデータアップロード

7.動作確認

Xserverの管理画面や機能は初心者にもやさしい配慮がされているので、順番さえ間違わなければ、わりと簡単に移転ができます。

Xserver内でサーバー移転を行う場合の一番の注意点は、ドメインの移管を行わないので、ドメイン設定が移転元から移転先で完了する間、おおよそ24時間ほどはサイトが表示されなくなるので注意が必要です。

また、別会社のレンタルサーバーへの移転やについてもデータやDBバックアップ、予備データの定期的なバックアップについては基本的には同じ作業になるので、同じ手順でバックアップを保存しておくのもよいでしょう。

1.移転元サイトディレクトリデータのバックアップ

まずは移転元のサイトディレクトリのデータをバックアップしますが、この作業は15秒程度で完了します。

Xserverサーバーパネルのアカウント項目、バックアップから該当する対象ディレクトリをダウンロードします。

これで移転元サイトディレクトリデータ保存は完了です。

アカウントrootを一括でもダウンロードできますし、設定したドメインのディレクトリのみを選択してもダウンロードできるので、非常に便利です。

2.移転元MySQLデータベースのバックアップ

XserverサーバーパネルのphpMyAdminにログインします。
ログイン情報はwp_config.phpに記載されていますので、忘れた場合はこちらのDBユーザー名とパスワードでログイン可能です。

phpMyAdminの管理画面にログインすると左上にinformation_schema(MySQLの基本設定情報)とWordPress用に設定したMySQLのデータベース名の二つのDB名が表示されているので、WordPress用に設定したMySQLの方をクリックします。

WordPress用に設定したDBの構造が表示されたら、上部のタブの”エクスポート”をクリックしてDB のダンプ(スキーマ)表示画面に。

通常はこのまま”ファイルに保存する”にチェックを入れ、”zip形式”を選択して、画面左下の”実行”ボタンをクリックすると、圧縮されたDBファイルが自身のパソコンにダウンロードされます。

これで移転元のDBバックアップは完了です。

3.移転元各予備データバックアップ

Xserverにはサーバメールやメールマガジンなどの機能も付属しており、念のためWordPressの投稿データなどを含めて個別にバックアップをとっておきます。

WordPressはダッシュボードからのエクスポート機能ですべてのコンテンツのxmlデータをダウンロードしておきます。

メール設定についてはサイトディレクトリのデータの中にWebメールのデータがドメインフォルダのmailフォルダに保存されているようですが、基本バックアップできないと思った方がよさそうです。移転先で複数のメールアドレスを一括して追加できるので、サーバーパネルのメールアカウント設定からアドレス一覧をコピペしてメモ帳で保存しておきました。

メルマガやメーリングリストも利用していた場合は、ひな形やタイトルを同じくメモ帳で保存しておきました。xmailinglistというフォルダに保存されているようですが、ちょっとあやしいので送信先のアドレスなどはexcelなどで管理しておいたほうが無難です。

CGIツールのメールフォームはディレクトリアップで大丈夫でしたが、アクセス解析は上手くいきませんでした。

これで移転元の各予備データバックアップは完了です。

4.ドメインの削除と追加

移転元のドメイン設定からサーバー移転する対象のドメインを削除します。ドメインを削除すると、ドメイン下のフォルダや各設定はすべて消失するので注意が必要です。MySQLのデータベースは、個別に削除する必要がありますが、こちらは可能な限り保存しておいたほうが無難でしょう。

移転先のサーバーパネルから、先ほど移転元で削除したドメインを追加します。ドメインが削除されていない場合はエラーが出て追加できないのと、ドメインのトップレベル部分comやjpはプルダウンからの選択になっているので、間違いないように注意しましょう。

上記作業が完了して、ドメインにアクセスして以下のように表示されていれば、あとはサーバー移転の設定が完了するのを待つことになります。

「無効なURLです。ドメイン設定の反映待ちか、存在しないアドレスです。
再度ご確認のうえアクセスをお試し下さい」

以上の作業で、現在のサイトは完全に閲覧できなくなり、メールの送受信もできなくなります。今回の場合は平均して20時間ぐらいはドメイン管理の変更でサイトが表示されなくなりました。

これでドメインの削除と追加は完了です。

5.移転先MySQLデータベース作成

移転先のXserverアカウントで、新しいMySQLのデータベースを作成します。移転元ではMySQL5と5.5が混在しているタイプでしたが、新しい移転先のアカウントでは5.5で統一されていました。

データベースはXserverのサーバーパネルから、MySQL設定で新しいユーザーとデータベースを作成します。

データベースには空のデータベースを作成して、移転元でバックアップしたMysSQLのデータベースをインポートします。

phpMyAdminの管理画面にログインすると左上にinformation_schema(MySQLの基本設定情報)と新しくWordPress用に設定したMySQLのデータベース名の二つのDB名が表示されているので、WordPress用に設定したMySQLの方をクリックします。

WordPress用に設定したDBの構造が表示されたら、上部のタブインポート”をクリックしてインポート表示画面に。

“インポートするファイル”するの参照から、保存しておいた移転元のファイルを選択して、画面左下の”実行する”をクリックして完了です。

6.移転先サイトディレクトリデータアップロード

移転元からダウンロードしたファイル内のpublic_htmlフォルダ内のwp_config.phpの以下の項目を、移転先で設定したMySQLのデータベース内容に変更してから、public_htmlフォルダのすべてを同じディレクトリにアップします。

/** WordPress のためのデータベース名 */
define(‘DB_NAME’, ‘データベース名’);

/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘ユーザー名’);

/** MySQL データベースのパスワード */
define(‘DB_PASSWORD’, ‘パスワード’);

/** MySQL のホスト名 */
define(‘DB_HOST’, ‘mysql移転先.xserver.jp’);

このままでは確認できないので、Xserverサーバーパネルの動作確認URL設定でURLを追加してみましょう。

元のWordPressサイト構成が表示されていればまずは一安心です。デザインなどは内部的テーマのパス指定の違いなどの影響で、正常には表示されていませんでした。

これで移転先サイトディレクトリデータアップロード作業は完了です。

7.動作確認

おおよそ24時間以内には新しいWebサーバーの内容が関連付けられますので、何らかの画面が表示されれば、正常にドメイン管理の変更は完了しています。

ただし24時間以上経っても、以下のメッセージが表示され続ける場合はブラウザのキャッシュクリアをすると更新される場合があります。

「無効なURLです。ドメイン設定の反映待ちか、存在しないアドレスです。
再度ご確認のうえアクセスをお試し下さい」

まずは、メールアドレスの追加を一括で行い送受信を試してみます。送受信に問題がなければ、サイトの動作確認に移ります。

移転元と移転先のPHPのバージョンが異なる場合注意が必要で、TOPページ以外表示されず404サーバーエラーが発生したり、PHPのエラーやWarnningなどが表示されたりします。

今回はhtaccessファイルの作り直しが必要であったため、サーバーパネルの自動インストールからWordPressを一度インストールして、自動生成されたhtaccessファイルを取得してURLを変更してアップしたら、下層ページが表示されるようになったりと、個別に動作確認と対応をする必要があるので、ひととおりサイトの動作確認を行った方がよいでしょう。

※データが喪失する恐れがあるので、どのようなデータも2種類以上でバックアップしておくのがよいでしょう。

HTTPユーザーエージェント文字列の取得するメソッド

WebサイトもUAの端末は多種多様になり、かなりの種類のユーザーエージェントが存在します。
そんなUA文字列を取得するための記述、メソッドについて。

今回はPHP、JavaScript、Perlの3言語の取得メソッド。

[php] $_SERVER[‘HTTP_USER_AGENT’]
[JavaScript] navigator.userAgent
[perl] $ENV{‘HTTP_USER_AGENT’}

次世代プロトコルSPDYとHTML/2.0について

2010年6月リリースのChromeから標準で搭載されている通信プロトコル技術、SPDY(スピーディー)。

Google独自の技術として採用された技術ですが、IETF(インターネット技術の標準化を推進する任意団体です)によってWeb標準の仕様化がすすめられています。

SPDYがHTTP/2.0とされるのにはSPDYの利点である以下の3つの内容が関係します。

1.ブラウザでのコンテンツ表示時間の大幅な短縮(サイト内容や構成による)

2.これまでのHTTP/1.1で制作されたコンテンツをそのまま利用できる

3.既存のWebサーバをそのまま利用できる(ただしTLS/SSL化されている必要がある)

なので、SSL対応のサーバであればSPDYでの通信がサーバー側と閲覧側で選択ができ、さらに対応サイトによっては、表示速度が同じ接続回線を利用していても、何倍も表示速度が光速度される可能性がある。

■HTTP vs HTTPS Test
HTTPとHTTPS(HTTP/2.0)の表示速度をテストするサンプリングサイト

http://www.httpvshttps.com/

ちなみに、SPDY対応のWebコンテンツかどうかを確認するためには、ChromeやFirefoxでは拡張機能/アドオンの”SPDY Indicator”をインストールするこで確認ができる。