さくらのレンタルサーバーで「505 Internal Server」エラーが発生する場合の対処方法




  1. Perl




  2. Mojolicious


 Mojoliciousのアプリケーションがローカル環境では実行できるけれど、レンタルサーバーにアップロードしてCGIとして動かそうとしたときに動かないということはよくあります。以下の原因が考えられるので順番に対処しましょう。

404 Not Foundが表示される

 URLが間違っています。正しいURLをブラウザに入力しましょう。

スクリプトの内容が表示される

 拡張子が「.cgi」以外になっていませんか。「.cgi」という拡張子がないとCGIスクリプトとして実行されません。

モジュールのロードができていない

 ローカルの環境には、CPANモジュールが存在するのに、サーバー上には存在していないということがあります。以下の記述をスクリプトの先頭に追加すると、読み込みに失敗した場合のエラー内容が表示されます。

use CGI::Carp 'fatalsToBrowser';

改行コードの変換ミス

 Windowsからレンタルサーバにアプリケーションをアップロードする場合は、改行コードを変換する必要があります。ASCIIモードで転送を行っているかを確認しましょう。app.cgiのみASCIIモードで転送されていればよいです。他のスクリプトについては、どちらのモードであってもかまいません。

CGIスクリプトに実行権限がない

 CGIスクリプトに実行権限がない場合はエラーになります。CGIスクリプトの実行権限が755になっているかを確認しましょう(suEXEC環境の場合。さくらレンタルサーバーはsuEXEC環境)。app.cgiの権限だけ変える必要があり、その他のファイルについては大丈夫です。

一行目のPerlのパスの間違い

 一行目のPerlのパスが間違っているとエラーになります。

#!/usr/bin/perl