アプリ版:「スタンプのみでお礼する」機能のリリースについて

AN HTTPDとAPATHEの両方で試していますが
AN HTTPDの方はサーバーが見つかりませんと表示されて、
APACHEの方は、Internal Server Error(500)と表示されてしまいます。
ActivePerlの設定変更も間違えないですし、
単にテスト用の文字表示CGIすら表示されません。
どうしてでしょうか?
ちなみにPerlの関連付けも出来ていて、ファイルもきちんとPerlで表示されています。
実行内容、構文等に間違いはありません。

ただ、一つのファイルだけがちゃんと表示されます。
しかしながら、そのファイルの保存場所がわかりません。
*同じ名前で沢山いろいろな場所に保存してあるため(汗)
一応全部確認しましたが、限定する事ができませんでした。
HTTP://Localhost/test.cgi
で呼び出して表示できています。
Localhost/test.cgiのフォルダはどこのフォルダの事か
調べる方法が解かれば解決できる気がします。
*どこのフォルダのどのファイルが実行されているのかが特定できません。

どうか宜しくお願いします。


ちなみに、フォルダをたどっていけば解かるだろう?と
思われるかも知れませんが、ドジをしてしまい同じ名前のファイルが30以上あってなかなか特定できません(涙)
宜しくお願いいたします。

A 回答 (3件)

DocumentRoot がどこかわからない?


Apacheで動かしてるなら httpd.conf に書いてあるでしょうに。
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。

本当にしょうもない事を聞いてしまって。
しかしながら、ドキュメントルートが解かってファイルを見ても以前は表示されて、現在は表示されない理由がわかりません。
何か書き変えたのですが、現在の構文でもテスト用にただテキストを表示させようとしている構文なので問題ないと思うのですが表示されん。

#!/usr/local/bin/perl
print "content-type: text/html\n\n";
print "<html>\n";
print "<head><title>CGIテスト</title></head>\n";
print "<body>CGI動作テスト!!</body>\n";
print "</html>\n";
__END__

あと、一行目を
#!/usr/local/bin/perl--

にしてみたり

#!/usr/bin/perl

にしてみたりしましたが失敗に終わりました。
ちゃんと表示されていたのになぜでしょうか。

お礼日時:2004/04/15 18:46

別スレッドの方にも回答しましたが、1つ、忘れていた事があったので。



実行しようとしてエラーを起こすサーバーはUnix系でしょうか?

そうであれば、スクリプトのソースをWin系からUnix系サーバーにFTP転送する場合、テキストモードで転送しているか確認して下さい。

Unix系サーバーにバイナリ転送してしまうと、以下のような単純なスクリプトでさえ、一切動きません。

#!/usr/local/bin/perl
print "END"

これは、サーバーがスクリプトを起動する際に[LF]の直前までの名前のプログラムを呼び出そうとして
「/usr/local/bin/perl[CR]が見付からない」
と言うエラーになるからです。

バイナリ転送していて、ファイルの中身が
#!/usr/local/bin/perl[CR][LF]
print "END"[CR][LF]
になっているので、エラーが出ている訳です。

テキストモードで転送して、ファイルの中身が
#!/usr/local/bin/perl[LF]
print "END"[LF]
になるようにして下さい。

なお
HTTP://Localhost/test.cgi
が動いてしまうのは、Localhostは自分自身のPCを示していて、つまりはWin系のサーバーで動くからです。

Win系のサーバーで動いているなら改行が[CR][LF]のままでも、まったく問題なく動いてしまいますから(と言うか、Win系のサーバーで動かすなら、改行は[CR][LF]になっている必要がある)

この回答への補足

お返事ありがとうございます。
転送モードは、自動変換(アスキー)です。
こちらの説明不足でした。申し訳ございません。

PC上で(ローカル)Apacheを使ってCGIなどを表示させる際に、アップロードする必要はありませんのでアップロード関係の問題ではなさそうです。
以前はちゃんと動いていたのですが…。

とにかく、実行フォルダがどれなのかが特定できません。
もちろん、Apacheなどの設定などもすべてフォルダを指定しているのですが上手くいきません。

しかしながら、Http://Localhost/の表示はきちんとされています。
この、”Localhost”がどこに設定されているのか…
設定した本人がわからなくなってしまいました(涙)

補足日時:2004/04/15 17:44
    • good
    • 0
この回答へのお礼

やっと原因がわかりました!!
C:/usr/local/bin/
この後になんと!Pealという”フォルダ”が作成したありました。
ですので、PerlのExeが呼び出されずに、このフォルダの方が呼び出されていて実行不能になっていたようです。

どうもいろいろお返事いただきまして、心より感謝いたしております。

お礼日時:2004/04/15 20:18

 An Httpd の設定を見れば、どのフォルダ上で実行されたか分かります。


 デフォルトのまま使っているなら、An Httpd の実行プログラムと同じフォルダになっているはずです。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。

An Httpd では、うまく作動しませんでした。
Apacheの方を使ってなんとか一度だけ表示できたのですが…。

お礼日時:2004/04/15 17:08

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