PHPを使うならレンタルサーバーのエラーログ対応は必須

レンタルサーバーを選ぶ際に見落としがちなのが 「エラーログ」 機能です。アクセスログに対応していても、エラーログは未対応というレンタルサーバーは割と多いです。

あくまでも「初心者であれば」という条件は付きますが、PHP(他の言語であっても)やデータベースを利用するなら「エラーログのないレンタルサーバーは避けるべき!」と言えるほど重要です。

最も役に立つのは、「開発環境(自分のパソコン)で問題ないので、本番環境(レンタルサーバー)にアップロードしてみたら動かない」という見つけにくい問題が発生した場合です。

多くのレンタルサーバーでは、PHPのエラーを非表示にしています。そのためエラーが発生していたとしても、真っ白な画面が表示されるだけで、何のエラーがどこで発生しているか分かりません。

非表示にしている理由は、エラーの内容からサイトの構成(プログラム言語やCMS、ライブラリなど)を推測されるのを防ぐという、セキュリティ的な側面があります。また、サイトの信頼性に関わるので、訪問者に意味不明なエラーを見せないという意味もあります。

例えば、エックスサーバーで以下のコードを含むphpファイルへアクセスしてみます。

sample.php

<?php
echo echo;

明らかに間違っているのでエラーが発生しているはずですが、ブラウザの表示は真っ白(空データ)になります。

レンタルサーバーによってはphp.ini(またはhtaccess)にdisplay_errorsを設定することで、エラーを表示させることができますが、上述のように稼働中のサイトではオフにするのが常識です。

エラーログがあれば、問題が発生するたびにわざわざ設定を変更しなくても問題点を発見することができます。

例えば、エックスサーバーであればエラーログのダウンロードができます。

ダウンロードしたファイルを適当なテキストエディタで開いてみると、先程のエラー内容を確認することができます。

レンタルサーバーによっては、display_errorsの設定が無効となり何をやってもエラーが表示されないこともあります。エラーの原因特定に無駄な時間を使うのであれば、最初からエラーログの出力に対応しているレンタルサーバーを選ぶとよいでしょう。