読者です 読者をやめる 読者になる 読者になる

南国うまうま日記/バリ島ウブドの生活

南国バリ島のウブドに暮らすもんぶぅのうまうまな毎日を綴った日記です。海外生活豆知識やタイなどの旅行記もあります

にほんブログ村 海外生活ブログ バリ島情報へ   ←クリックよろしくお願いします

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

SEOに関して

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

f:id:monbuu01:20161119155138j:plain

 

<目次>

 

サーバー移転の概要

旧サーバーと新サーバー

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

www.joeswebhosting.net

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

www.xserver.ne.jp

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

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

  • 海外からメールを送るとき、アカウント認証に時間がかかるから
  • 独自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には、丁寧なマニュアルがあるので、それに沿って作業するだけです。

www.xserver.ne.jp

このマニュアルに沿って、楽々移転・・・
となるはずでしたが、いろいろ仕掛けをしてある当社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を使っているのでした。

ただし、各ページには、ちゃんと文字コード宣言がされています。通常では、プラウザ文字コード宣言を読み取り、それに適した文字コードで表示をするはずなのに、なぜか文字コードユニコードに固定され正常に表示されません。IEFireFox,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の(丁寧な)マニュアルに沿って行えば、簡単にできます。

www.xserver.ne.jp

 

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

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

え~、が~~ん!!

と、思ったら、当初Google Map APIhttpsに未対応でしたが、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>

 に変更します。

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

 

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

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