- ベストアンサー
CGIが動きません
サーバAで正常に動作しているCGIファイルは、サーバBに移動し、”500 Internal Server Error”が出て、動きません。困っています。 解決方法は教えていただけますか? お願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
サーバーOSがLinux/Solarisなどだと、CGIを実行可能にしないと動きません(chmod +x)。 500 Internal Server Error は、ブラウザに表示されるエラーだと思います。WEBサーバのエラーログには原因究明に役立つ情報が残っているので、まずはそれを確認することが第1です。エラーログは、たとえば/var/alache/logs/error_log などに入っています。
その他の回答 (5)
- moritan2
- ベストアンサー率25% (168/670)
500 Internal Server Error というのは、いろいろなエラーが含まれているので、error_log を見るのが一番はやいですよ。
お礼
ご回答ありがとうございます。
- Jodie0625
- ベストアンサー率30% (397/1288)
Internal Server Errorが出る場合、ほとんどがパーミッション(実行権限)の設定ミスです。 FTPアプリケーションなどで、サーバ側のディレクトリ一覧が出ているとき、ファイル名の横に rwxr-xr-x などという属性(あるいはアクセス権)が表示されていることがあります。 サーバAで動作しているのでしたら、そのディレクトリにあるファイル一覧の属性を、そのままサーバBでも設定してください。 FTPアプリケーションから設定できる場合、数字で指定することができる場合があります。 rwxを数字に置き換えると、 rwx 7 rw- 6 r-x 5 r-- 4 -wx 3 -w- 2 --x 1 --- 0 になります。二進法の表記と考え方は同じです。
お礼
ご回答ありがとうございます。
- haruka96
- ベストアンサー率58% (25/43)
・CGIファイル、DATファイル、PLファイルをアスキーモードで転送しているか ・CGIを書き換えるときに間違えて書き換えていないか の2点はいかがでしょうか?
お礼
ご回答ありがとうございます。 ファイル転送はアスキーモードでした。 CGIファイルは変更なし、そのままです。
- asahina02
- ベストアンサー率47% (95/202)
#1です。 ちょっと気になったので再確認させていただきます。 サーバーAのファイルの1行目とサーバーBの1行目は当然同じに書かれているのかなと思ったのですが、 各サーバーでPerlがインストールされているパスが違うということはないですか? 後は、そのCGIが使用しているライブラリがちゃんとあるかとかでしょうか。
お礼
再度のご回答ありがとうございます。 マニュアルで確認しましたが、AとBのパスは同じです。CGIファイルもCGI置くべきのライブラリに保存しております。
- asahina02
- ベストアンサー率47% (95/202)
Perlのパス(CGIファイルの1行目)が違うということはないですか?
お礼
ご回答ありがとうございます。 Perlのパスは同じです。
お礼
ご回答ありがとうございます。