インストール時のInternal Server Errorの修正方法

2014年01月29日 (水)

一部のレンタルサーバーにおいてCS-Cartをインストールする際に
 Internal Server Error
が発生し、インストール作業を実行できないという報告が寄せられました。
(インストール後にエラーが発生するという報告もあり)


このエラーはほとんどの場合、Apacheの
 MultiViews
オプションが無効化されているために発生しています。


MultiViewsオプションとは

MultiViews とは、HTTP/1.1の規格に記述されているコンテントネゴシエーションに対応するApacheのオプションです。


MultiViews
オプションを有効化すると、例えばサーバーの
 /some/dir/foo
ディレクトリにアクセスするリクエストが発生し、このディレクトリがサーバー上に存在しない場合に
 /some/dir/foo.php
のようなファイルが存在しないかチェックし、存在すれば自動的にそのファイルを参照します。


MultiViews が有効化されているサーバーにCS-Cartをインストールすると、何らかの理由でサーバー上の一部ファイルやディレクトリが欠落していた場合に予期せぬファイルが代わりに参照される可能性があり、トラブルの原因となります。

そのため、.htaccessにおいて明示的にMultiViewsを無効化しています。

なぜInternal Server Errorが発生するのか

上記のようにCS-CartではMultiViewsオプションによるトラブルを回避するため.htaccessにおいて
 Options -MultiViews
と記述しMultiViewsを無効化しています。

しかし、MultiViewsオプションが最初から無効化されているレンタルサーバーにおいては、
 Options -MultiViews
という記述に対する処理を実行できず、Internal Server Errorが発生する場合があります。

対策(1) : サーバー会社にMultiViewsオプションを有効化してもらう

可能であればレンタルサーバー会社にApacheのMultiViewsオプションの有効化を依頼してください。
サーバーにおいてMultiViewsオプションが有効化されればエラーは修正されます。

対策(2) : .htaccessを編集する

MultiViewsオプションの有効化が困難な場合は、CS-Cartをインストールしたディレクトリ直下に存在する
 .htacess
に記述されている
 Options -MultiViews

 # Options -MultiViews
のようにコメントアウトしてください。