ローカルサーバで動作しない原因は?

[上に] [前に] [次に]
KEI [E-Mail] 1999/06/05(土) 13:00:30
CGIをローカルサーバで、テストしようと思ったんだですが、ちゃんと動いてくれません。
ちなみに、今までにもテストしているし、ちゃんと動いていたので設定は出来てるはずです。
CGIスクリプトも、自分で作った訳ではなく、DLしてきたものです。
色々試してみたんですが、真っ白の状態でちゃんと動きません。
wwwサーバに送ってみたところ、そちらではちゃんと動きました。
ローカルサーバだけで動作しないのです。
ローカルサーバでも動作するようにするには、どうしたらよろしいのでしょう?
どなたか、アドバイスお願いしますm(__)m

sekita 1999/06/06(日) 00:13:12
たぶんローカルのwebサーバ名とそのスクリプトが
どういうものか記述しないとわからないでしょう。
wwwサーバと言うのはプロバイダのサーバでしょうか?
そこで動くのであればスクリプトとサーバの設定に矛盾が
あると思われますがこれだけでは分からないです。

ちはる 1999/06/06(日) 01:07:29
ありがちなのは、flock(ファイルの排他制御)関係をつかっているからとか。
とりあえずWindowsマシンなら、DOSプロンプトで perl に食わせてみるとか。

羽崎 1999/06/06(日) 01:28:17
sekitaさんも言ってますが、最低限、
OS(win,Mac,Unix,Unix clone or else)とwwwサーバ名、
CGIと関連付けるプログラムがわかったほうがよいです。

ほかに考えられるものとして、ローカルのOSでサポートされていないようなシステム関数(system(),exec()から呼び出し)が使われて
いないか?文字コードやパミッションはただしく設定されているか?
などが考えられます。

KEI 1999/06/06(日) 02:05:51
素人なんで、説明不足でもう仕訳けありませんm(__)m
えっと、OSは「Win95」でローカルサーバは「HTTP Daemon version1.16b」を使ってます。
CGIスクリプトは、http://www2.freeweb.ne.jp/~kei2/cgi-bin/abcheck.txtに、一応アップしておきました。
よろしくお願いします。

sekitaさん>
はい、wwwサーバはプロバイダと言うかフリーウェブのサーバです。

羽崎さん>
CGIと関連付けるプログラムとは、どういう事ですか?(;^_^A アセアセ…
技量不足なもんで、お手数かけて申し分けありません(><)

よろしければ、もう一度ご指摘お願いしますm(__)m

やっぱり 1999/06/06(日) 03:51:15
flock使ってるじゃん。
WinのPerlではflockっつー関数はサポートしちょらんのよね。

とりあえず、flock関係は全部封印して動かす事をオススメしましょう。
そんなに頻繁に呼び出されないスクリプトなら、ロックはしなくても平気だから。

KEI 1999/06/06(日) 16:27:47
[[解決]]
出来ました!
みなさんのアドバイスのおかげで、何とかローカルサーバでも動作確認出来ました。
ホントにありがとうございましたm(__)m
また、何か質問しに来るかもしれませんが、その時はよろしくお願いします。
ありがとうございました(^-^)

B-Cus 1999/06/06(日) 18:22:54
つーかさ、ログを見ましょうよ、ログを。
せっかくローカルにperlとWWWサーバ入れても、これじゃあ全然意味がない。
「どこがまずいの?」って言ってるようでは、プロバイダで動かしてるのと一緒です。

ログにflockがどうこうとか、何行目でエラーとか出てない?
それにコマンドラインからCGIスクリプトを実行したら、エラーの発生場所ってわからない?

エラー原因の切り分け方がわからなかったら、再度質問してください。
あたしゃWin95もHTTP Daemonも使ってないので答えられませんが、
誰か教えてくれるでしょう。

羽崎 1999/06/07(月) 03:15:30
>CGIと関連付けるプログラムとは、どういう事ですか?(;^_^A アセアセ…
Perlで書かれたスクリプトなのか、shやcshなどのシェルスクリプト
なのかCで書かれたアプリケーションなのか、という意味です。

>つーかさ、ログを見ましょうよ、ログを。
ログの見方はwinなら「ヘルプ」からひっぱってくればよいでしょうね。おそらく。

07 1999/06/08(火) 00:39:09
僕もWin95でAnHttpd 使ってますけど、スクリプトの上の方に

if($ENV{"SERVER_SOFTWARE"} =~ /AnWeb/){ $test="ok";}

とかって書いといて、flock の行を

flock(FILE,2) unless($test);

ってやれば、ローカルでは無視して、
サーバーでのみ動作してくれるのでは…
実際サーバーで flock が効いてるのか確認しようがないんですけど
とりあえずローカルでエラーは出ませんよ。

[上に] [前に] [次に]