見出し画像

Xsever移転(移行)トラブルまとめ

私の勤めている会社は、ネット通販会社です。ネット通販会社にとって、Webサイトはお店ですので、すごく大切。
先日その大切なWebサイトをアップしているサーバーを移転(移行)した時、いくつかのトラブルが発生したので、簡単にまとめておこうと思います。

サーバー移転の概要

旧サーバーと新サーバー

もともと、会社のサイトはJoe'sウェブホスティングという会社のレンタルサーバーを使っていました。

www.joeswebhosting.net

しかし、今回契約期間切れを待ってXserverに移転(移行)しました

サーバー移転(移行)した理由

サーバー移転の理由はざっくり言うと以下の通りです

・海外からメールを送るとき、アカウント認証に時間がかかるから
・独自SSLを使うのに、別途料金が発生するから
・Xserverの方がレンタル料金が安いから

この中でも特に大きかったのが独自SSLです。
旧サーバーでSSLを使うには、共用SSLなら無料で使えました。
しかし、共用SSLだと、サイトアドレス(URL)が
https://server○○.joes.net/~×××/
と、このようなアドレスになってしまいます。

サイト内の「お問い合わせページ」とか「会員登録ページ」など一部ぺーじのみSSLにするのなら、このような共用SSLでも問題ありませんでした。

しかし、最近ではサイト全体をSSL化する流れになってきており、サイト全体をSSL化するのに、共用SSLでのアドレスでは、SEO的にもまずいので、独自SSLにしなくてはいけません。

独自SSLなら

https://○○○.com

と、シンプルなアドレスになります。

そこで、旧サーバーに独自SSLにするにはどうしたらいいのか問い合わせたら、別契約になるので、別料金が発生するとのお答えでした。

う~ん、なるべく費用はかけたくないなぁ~と、いろいろ調べたら、Xserverなら初期契約料だけで、独自SSLが可能ということでしたので、サーバーレンタル契約が切れる機会にサーバー移転となったわです。

サーバー移転の手順

サーバー移転の手順はそれほど大したことではありませんでした。
Webサイトの全データーは、こちらのPCにあるので、それを新サーバーにアップして、ドメイン管理のネームサーバーデーターを新サーバーに変えてやるだけです。

しかも、Xserverには、丁寧なマニュアルがあるので、それに沿って作業するだけです。

このマニュアルに沿って、楽々移転・・・
となるはずでしたが、いろいろ仕掛けをしてある当社Webサイト。その仕掛けのために、ちょっとトラブルが発生しました。

移転(移行)時のトラブル実例

では、具体的にどんなトラブルが発生したのか、実例を挙げて説明します。

 PHPが動かない

当社のサイトには一部PHPを使っています。
ただし、ページ全体がPHPで作られているのではなく、htmlページの一部にPHPを埋め込んであります。

このように、htmlページにPHPを埋め込んで使う場合、サイトのトップの.htaccessに以下のコマンドを記載しなくてはいけません。

AddHandler application/x-httpd-php .php .html .htm

旧サーバーでは、このコマンドを.htaccessに記載して運用していましたので、新サーバーでもそのまま.htaccessをアップしました。

が・・・PHPが動かないのです。コマンドが間違っているのか?ページのPHPが間違っているのか?いや、そんなはずはない。旧サーバーのデーターをそのままアップロードしているのだから・・・

で、Xserverのカスタマーサービスに問い合わせたら・・・

お客様のレンタルサーバーは新仕様のものとなっておりますので、html内にてPHPを埋め込む場合は、.htaccessに
AddHandler fcgid-script .html
上記コードを記載してください

ということでした。早速、.htaccessのコードを変更したら、治ってしまいました

cgiが動かない

サイトの中に「お客様お問い合わせ」ページがあります。
お問い合わせはメールで送るのではなく、ページ内のフォームに入力されたデータをcgiを使って当方に送信するようになっています。

ところが、このcgiが動かない・・・

旧サーバーからそのまま移転させたので、プログラムミスではない。
もしかしたら、.htaccessの何かが障害になっているのかと思い、試しに.htaccessを消してみたけど、治らない。

またXserverのカスタマーサービスに問い合わせたところ

お客様のサーバーご契約が試用期間であることが原因でございます。

試用期間ではsendmail機能がご利用できないため
メールフォームを用いたメールの送信等が制限されています。

Xserverは、契約してもしばらく試用期間があります。この間にサイトデーターを仮アップして動作などに問題がないか確認することができ、問題ないことを確認したのち本契約となります。

つまり、この時はまだ本契約をしていない試用期間中だったため、機能の一部に制限が掛けられていたのですね。

さっそく契約料をお支払いして、本契約をしたら、ちゃんと動くようになりました。

ページの文字化け

これが一番苦労したトラブルです。

サイトには200以上のページがあるのですが、そのうちの一部が文字化けして表示されないのです。

いろいろテストしてみたら、文字化けするのはcgiを使った動的ページだけということがわかりました。さらに、そのページ以外の正常に表示されるページは文字コードがユニコード(UTF-8)を使っているのに対し、表示されないページはShift-JISを使っているのでした。

ただし、各ページには、ちゃんと文字コード宣言がされています。通常では、プラウザが文字コード宣言を読み取り、それに適した文字コードで表示をするはずなのに、なぜか文字コードがユニコードに固定され正常に表示されません。IE、FireFox,Chromeなどプラウザを変えても同じでした。

このcgiは業者さんに依頼して作ってもらったので、その業者さんに連絡して文字コードをユニコードに変えられないか相談したのですが、かなりややこしいので、変更するには時間が掛かるということでした。

数日かけて、いろいろテストした結果、.htaccessを消すと、この問題は解決することがわかり、ではどのコマンドが悪さをしているか、コマンドをひとつずつ消しながら検証したところ

AddHandler fcgid-script .html

こいつでした・・・・

で、どうしたかというと、幸いこのcgiを使った動的ページは一つのフォルダー内にまとまっており、そのフォルダ内の全ページはPHP埋め込みをしていませんでしたので、フォルダ内のトップ階層に.htaccessをおき、以下のコマンドをつけました

RemoveHandler fcgid-script .html

AddHandlerコマンドでhtmlページにつけたfcgid-scriptをRemoveHandlerで取り外すという考えです。

この方法が見事に当たり、一部ページの文字化けは解消しました。
そののち、Xserverカスタマーサービスに事の顛末を報告したところ

AddHandler fcgid-script .php .phps .html
FCGIWrapper "/home/サーバー名/ドメイン名/xserver_php/php-cgi" .php
FCGIWrapper "/home/サーバー名/ドメイン名/xserver_php/php-cgi" .phps
FCGIWrapper "/home/サーバー名/ドメイン名/xserver_php/php-cgi" .html

.htaccessのコマンドを上記に変更されたらいいのでは?というアドバイスを頂きました。このコマンドでうまくいくかどうかは、検証しておりません。

WordPressオートインストールがうまくいかない

サイトの中には、WordPressのブログがあります。こちらの引っ越しですが、以前旧サーバーでWordPressのブログがハッキングされ改ざんされたということがあり、予防策としてデータベースの定期的バックアップを行っている事と、改ざん後の復旧作業を体験していたので、WordPress移転はそれほど問題はありませんでした。

WordPressの設置には、MySQLの設定など、面倒なことが多いのですが、Xserverでは、それら設定やWordPressインストールを自動で行う機能(オートインストール)があるので、それを使ってインストールしてみました。

無事インストールでき、旧サーバーのデーターも移行し、さて管理パネルを開こうとしたら、管理パネルに入れません。
ユーザー名とパスワードはあっているはずなのに・・・

原因は、新サーバーにインストールしたWordPressの管理者パスワードと、旧サーバーから移転したデーター内にある管理者パスワードが一致せず、おかしなことになったようです。

結局、オートインストール機能は使わず、手動でMySQLの設定、WordPressインストール、データーの移転、復旧を行いました。

データ移転でなく、新規にサーバー内にWordPressを作るのならオートインストールの方が便利かと思いますが、データ移転をする場合は手動にした方がいいかと思います。

SSL化でGoogleMapがトラブル

問題をクリアして、サーバー移転も終わり、最後の大仕事が(無料)独自SSL設定です。

と言ってもそれほど大がかりなものではなく、Xserverの(丁寧な)マニュアルに沿って行えば、簡単にできます。

https://www.xserver.jp

独自SSL化することにより動作トラブルがあるのではないかと思っていたcgiプログラムも、何ヵ所かのマイナートラブルがありましたが、cgi開発者からの指示で切り抜け、やっと終わったと思ったら、なんとサイト内のGoogle Mapが表示されません。

Google先生で調べてみたところ、Google Map APIは、httpsに対応していない・・

え~、が~~ん!!

と、思ったら、当初Google Map APIはhttpsに未対応でしたが、2011年3月から対応するようになったそうです。

ただし、対応させるには、ヘッダー内のスクリプト

<script type="text/javascript" charset="utf-8" src="http://maps.googleapis.com/maps/api/js?key=取得したキー&sensor=false"></script>

こちらを

<script type="text/javascript" charset="utf-8" src="https://maps-api-ssl.google.com/maps/api/js?key=取得したキー&sensor=false"></script>

に変更します。

これで、httpsでGoogle Mapが正常に表示されます。

以上、Xserverへのサイト移転(移行)時に発生した大きなトラブルでした。
他にも細かいトラブルは何点かありましたが、設定ミスや当社オリジナルcgiに関する問題でしたので、割愛させていただきました。

これが、サーバー移転で苦しんでいる方に少しでも手助けになればと思います。

今回移転した先はこちら。

https://business.xserver.ne.jp/

移転時に若干のトラブルはありましたが、ヘルプデスクが丁寧に対応してくれ、解決しました。
稼働後もトラブルなく順調で、本当に移転してよかったと思っています。

いいなと思ったら応援しよう!