自作プログラムを作ってみたのですが
HTTPDを利用してのローカル環境では実行に成功するのですが、
オンライン上で動かそうとするとどのサーバーでも
内部サーバーエラーと表示されてしまうのです。

プログラムは
http://person3.rocketbeach.com/~ikariya/bbs_cgi. …
に見ることが出来るようにアップロードしました。
どこかおかしいところがあるでしょうか。

サーバーに負担がかかり過ぎるせいでしょうか?

A 回答 (5件)

tabaさんのいわれる通りだと思います



ちなみに

SunOSでは /usr/local/bin/perl
TurboLinux6.1Serverでは /usr/bin/perl

でした
    • good
    • 0
この回答へのお礼

度々、勉強不足で申し訳ありません。
サーバーによってパスが違う理由まで
御教え頂いて恐縮です。

勉強になります。
本当に、ありがとうございました。

お礼日時:2001/02/04 11:22

jiri_tさんが動かないとお書きでしたので、私も自分のサーバーで試してみました。

動きませんでした。
で、よくみたらPerlのパスが間違ってます。

#!usr/local/bin/perl
ではなく、少なくとも
#!/usr/local/bin/perl
でしょう。

私のところでは動きました。
おそらくこれでしょう。
    • good
    • 0
この回答へのお礼

勉強不足ですみません。
ありがとうございます。
Perlへのパス部分を直しましたら
動きました。

逆に、ローカル環境で(Win98、HTTP Daemon Ver 1.26b)で
動いていたのが不思議です。
融通が効いてくれていたのでしょうか。

兎にも角にも、悩みが氷解致しました。
ありがとうございます。

お礼日時:2001/02/04 11:19

どのような CGI かはわかりませんが、


サーバ側が SUEXEC で起動している場合は
CGI の置かれているディレクトリの
パーミッションなども注意する必要があります。
SUEXEC が設定されている場合は
他人が書き込み権をもっていると
「500 Internal Server Error!」
と表示されたと思います。
一度確認してみることをおすすめします。
    • good
    • 0
この回答へのお礼

勉強不足でした。
ありがとうございます。
サーバー毎にパーミッションが大分違うというのは、
セキュリティの関係上と聞いたことがありましたが
理由がわかりました。
ありがとうございます。

お礼日時:2001/02/04 11:07

どのような環境で確認されました?


とりあえず私の環境では動かなかったので...

サーバーのエラーログが見られれば一番いいのですが。
とりあえずtelnetが使えるプロバイダなら
そこで実行してみるといいのですが。
実行権限、perlのパスはあっているか
再確認してください
    • good
    • 0

細かくは見ていませんが、ローカルで動いているということなので、コードは間違ってないという前提で。



だいたいこういうケースでよくあるのは、
1.CGIが実行できるディレクトリではない
(サーバーで制約をかけている可能性があるので、プロバイダによって異なります)
2.cgiファイル自体の実行権限が無い
3.データファイル(この場合、log.datやcnt.dat)の読み書き権限が無い
というあたりですね。

そんなの分かってる!というのであればごめんなさい。
基本ということで。
    • good
    • 0
この回答へのお礼

サーバーによってはパーミッションの設定が
大分違うということに気付きました。
早々回答を下さいましてありがとうございます。

お礼日時:2001/02/04 11:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報