• ベストアンサー

CGIが動きません

サーバAで正常に動作しているCGIファイルは、サーバBに移動し、”500 Internal Server Error”が出て、動きません。困っています。 解決方法は教えていただけますか? お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.4

サーバーOSがLinux/Solarisなどだと、CGIを実行可能にしないと動きません(chmod +x)。 500 Internal Server Error は、ブラウザに表示されるエラーだと思います。WEBサーバのエラーログには原因究明に役立つ情報が残っているので、まずはそれを確認することが第1です。エラーログは、たとえば/var/alache/logs/error_log などに入っています。

2003saki
質問者

お礼

ご回答ありがとうございます。

その他の回答 (5)

  • moritan2
  • ベストアンサー率25% (168/670)
回答No.6

500 Internal Server Error というのは、いろいろなエラーが含まれているので、error_log を見るのが一番はやいですよ。

2003saki
質問者

お礼

ご回答ありがとうございます。

  • Jodie0625
  • ベストアンサー率30% (397/1288)
回答No.5

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 になります。二進法の表記と考え方は同じです。

2003saki
質問者

お礼

ご回答ありがとうございます。

  • haruka96
  • ベストアンサー率58% (25/43)
回答No.3

・CGIファイル、DATファイル、PLファイルをアスキーモードで転送しているか ・CGIを書き換えるときに間違えて書き換えていないか の2点はいかがでしょうか?

2003saki
質問者

お礼

ご回答ありがとうございます。 ファイル転送はアスキーモードでした。 CGIファイルは変更なし、そのままです。

  • asahina02
  • ベストアンサー率47% (95/202)
回答No.2

#1です。 ちょっと気になったので再確認させていただきます。 サーバーAのファイルの1行目とサーバーBの1行目は当然同じに書かれているのかなと思ったのですが、 各サーバーでPerlがインストールされているパスが違うということはないですか? 後は、そのCGIが使用しているライブラリがちゃんとあるかとかでしょうか。

2003saki
質問者

お礼

再度のご回答ありがとうございます。 マニュアルで確認しましたが、AとBのパスは同じです。CGIファイルもCGI置くべきのライブラリに保存しております。

  • asahina02
  • ベストアンサー率47% (95/202)
回答No.1

Perlのパス(CGIファイルの1行目)が違うということはないですか?

2003saki
質問者

お礼

ご回答ありがとうございます。 Perlのパスは同じです。