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が実行されません
何が原因でしょうか?
No.7ベストアンサー
- 回答日時:
namazuとは日本語全文検索システムです。
べんりなので標準で入っているのでは?
私のところにもあります。
ちなみに私はRHL9ですが。
なお、あとは、私に考えられるのは改行コードくらいなんですよねえ。
nkf -Lu x.cgi
で改行コード変更してもダメでしょうか?
あと、/var/log/httpd/error_log
には何とかいてあります?
あんまり力になれずめんぼくないです。
参考URL:http://www.namazu.org/
ありがとうございます
nkf -Lu x.cgi>y.cgi
としy.cgiにアクセスしたら動きました
Meで作成しているので\r\nが改行になるのでこれが悪さしていたようです
namazu.cgiが正常表示されたのでこの辺が原因ですね
半ば諦めてPHP一本でいこうかと思っていたので助かりました
しかし契約プロバイダがPHPを使えないので実験としてPerlが是非必要だったのです
No.6
- 回答日時:
>返って来るなら改行コードではないですね。
これでうまく行くなら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
の書き間違いです
ありがとうございます
今までは部分インストールしたものでやっていたので
もしかしたら必要なファイルがないのかもしれないと思い
フルインストールした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で中身を見ようとするとエラーになり見えません
No.5
- 回答日時:
文字コードというより、改行コードかな?
それがちょっと心配でした。
ちなみに、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の改行コードが悪いのでは?とおもいます。
後学のため、解決したらご報告お願いします。
No.4
- 回答日時:
いやーおっしゃる状況ならうまくいかない原因はちょっと思いあたりません。
。。ちなみに私の環境ではうまく行きます。
あとは文字コードなんかが関係するんでしょうか?
うーん、ちょっとわかりません。すみません。
とりあえず、エラーログ
/var/log/httpd/error_log
の内容が原因究明の手がかりになるのでは?と思います。
ありがとうございます
#!/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";
ですから文字コードは多分関係ないとおもいます
参考サイトを参考にしていろいろやってみます
No.3
- 回答日時:
でできません?
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です
No.2
- 回答日時:
あ、すみません、あと、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
を実行できるのでしょうか?
No.1
- 回答日時:
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Quantifier follows nothing in...
-
よくある 『 第○(1・2・3・4・...
-
月の第一週とは
-
エクセルで毎月第2週日の水曜日...
-
エクセルで相対パスの書き方を...
-
6月の第2 第4火曜日は何日...
-
DBを10件毎に表示ページング...
-
燃えるゴミの日は何曜日ですか?
-
CGIで出力するhtmlの<!DOCTYPE ...
-
Excel VBA 第〇△曜日の場合休日...
-
[Excel] ある日の曜日が当月の"...
-
ヘッダのinclude順
-
apacheでPerl CGIが作動せず、5...
-
[C#]ListView一覧表示時の幅設...
-
指定曜日にMsgBox表示は可能で...
-
AccessVBAで「このフィールドに...
-
クライアントのIPとマシン名を...
-
入力した日は何曜日か
-
ユーザー定義の(aaa)
-
関数ヘッダ?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
cgiとplとpm
-
perlのrequireの動き方について...
-
jcode.plが読み込めない
-
Quantifier follows nothing in...
-
require文が実行できない
-
ファイル書込時にPermission de...
-
useとrequireでエラー
-
htmlからテキストを返すperlを...
-
Perlのデバッグ方法って。。。...
-
PDFJが動作しない
-
画像のURLの変数を別のCG...
-
perlのcgiで、変数の中身を表示...
-
perlをインストールしたのに使...
-
CGIの中にinclude
-
gifcat.pl:助言お願い致します
-
phone.plというモジュールを使...
-
Perlの作動不具合、missing bra...
-
プログラムを書き足すことについて
-
Not Found 404エラー時のCGI出力
-
バイナリファイルのアップロード
おすすめ情報