プロが教えるわが家の防犯対策術!

x.cgi:

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD><TITLE>world</TITLE></HEAD>\n";
print "<BODY>\n";
print "<H2>Hello</H2>\n";
print "<HR>\n";
print "</BODY>\n";
print "</HTML>\n";

を配置して他のPCからこのファイルを読みだしたのですがこのコードがそのまま表示されてしまい
Perlが実行されません

何が原因でしょうか?

A 回答 (7件)

namazuとは日本語全文検索システムです。


べんりなので標準で入っているのでは?
私のところにもあります。
ちなみに私はRHL9ですが。

なお、あとは、私に考えられるのは改行コードくらいなんですよねえ。
nkf -Lu x.cgi
で改行コード変更してもダメでしょうか?

あと、/var/log/httpd/error_log
には何とかいてあります?

あんまり力になれずめんぼくないです。

参考URL:http://www.namazu.org/
    • good
    • 0
この回答へのお礼

ありがとうございます
nkf -Lu x.cgi>y.cgi
としy.cgiにアクセスしたら動きました
Meで作成しているので\r\nが改行になるのでこれが悪さしていたようです
namazu.cgiが正常表示されたのでこの辺が原因ですね
半ば諦めてPHP一本でいこうかと思っていたので助かりました
しかし契約プロバイダがPHPを使えないので実験としてPerlが是非必要だったのです

お礼日時:2005/01/04 23:43

>返って来るなら改行コードではないですね。

これでうまく行くならx.cgiの改行コードが悪いのでは?とおもいます。

って、めちゃくちゃウソいいました。
ブラウザで見てうまく行かないなら、
上でやっても同じ結果のはずです。

x.cgiの改行コードの問題とは別問題です。失礼しました。
"Content-type: text/html\n\n"
の最後の\n\nがちゃんと認識されてないのかな?
という疑念とごっちゃにしてしまいました。

しつれいしました。がんばってください。

この回答への補足

http://192.168.1.3/namazu.cgi

http://192.168.1.3/cgi-bin/namazu.cgi
の書き間違いです

補足日時:2005/01/04 21:40
    • good
    • 0
この回答へのお礼

ありがとうございます
今までは部分インストールしたものでやっていたので
もしかしたら必要なファイルがないのかもしれないと思い
フルインストールしたPCでやってみましたが同じエラーになりました
フルインストールしたものは部分インストールしたものが空だったのに対して
/var/www/cgi-bin/
に3つのファイルがありました
qtest,htserch,namazu.cgi
です
新しく入れたx.cgiでエラーになるのですが
http://192.168.1.3/namazu.cgi
とすると何も表示されないのですがエラーは出ません
FedoraCore3をフルインストールしたときに
/var/www/cgi-bin/
に存在する
namazu.cgi
とは何でしょうか?
geditで中身を見ようとするとエラーになり見えません

お礼日時:2005/01/04 21:39

文字コードというより、改行コードかな?


それがちょっと心配でした。
ちなみに、telnetで直接HTTP接続するとどうなります?
ターミナルで、以下のようにやって、
返って来るヘッダと内容をみてみてください。

telnet 192.168.1.2 80<RET>
GET /cgi-bin/x.cgi HTTP/1.1<RET>
Host:192.168.1.2<RET>
<RET>

<RET>はリターンです。最後はリクエスト送信の合図としてリターンを2回おして下さい。

これでもエラーコード500が返って来るなら改行コードではないですね。これでうまく行くならx.cgiの改行コードが悪いのでは?とおもいます。
後学のため、解決したらご報告お願いします。
    • good
    • 0

いやーおっしゃる状況ならうまくいかない原因はちょっと思いあたりません。

。。
ちなみに私の環境ではうまく行きます。
あとは文字コードなんかが関係するんでしょうか?
うーん、ちょっとわかりません。すみません。

とりあえず、エラーログ

/var/log/httpd/error_log

の内容が原因究明の手がかりになるのでは?と思います。
    • good
    • 0
この回答へのお礼

ありがとうございます

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD><TITLE>world</TITLE></HEAD>\n";
print "<BODY>\n";
print "<H2>Hello</H2>\n";
print "<HR>\n";
print "</BODY>\n";
print "</HTML>\n";

ですから文字コードは多分関係ないとおもいます
参考サイトを参考にしていろいろやってみます

お礼日時:2005/01/04 18:55

http://192.168.1.2/cgi-bin/x.cgi
でできません?

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

は/cgi-bin/が/var/www/cgi-bin/のエイリアスという意味のはずです。
/var/www/cgi-binにx.cgiをおけば、
http://192.168.1.2/cgi-bin/x.cgi
でアクセスできるのでは?

この回答への補足

ありがとうございます

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


--------------------------------------------------------------------------------

Apache/2.0.52 (Fedora) Server at 192.168.1.4 Port 80

というメッセージがブラウザに現れます


ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

もあり

<Directory "/var/www/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

に変更しました

x.cgiのモードは755です

補足日時:2005/01/04 14:37
    • good
    • 0

あ、すみません、あと、cgiを置くのは(デフォルトでは)


/var/www/html/
ではだめだと思います。
デフォルトではcgiをおくディレクトリは
"/var/www/cgi-bin/"
です。
変更はhpptd.conf内の

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

を適当にいじるなりすればいいと思います。
httpd.confファイルの説明を読むとだいたい分るとおもいます。

この回答への補足

ありがとうございます
アクセスするときにはブラウザアドレス欄にどう入力すればいいのでしょうか?
このコンピュータのアドレスを192.168.1.2としたとき
http://192.168.1.2/
とすれば
/var/www/html/index.html
を表示しますが
どのようにアドレス欄に入力すれば
/var/www/cgi-bin/x.cgi
を実行できるのでしょうか?

補足日時:2005/01/04 12:16
    • good
    • 0

httpd.confの設定が正しくないのでは?


/var/www/cgi-binに対して、ExecCGIの記述が必要です。

<Directory "/var/www/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

参考URL:http://www.rfs.jp/server/apache/01/02.html
    • good
    • 0

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