BBS 過去ログ No.0005に戻る
タイトル:
httpdでCGIが動きません
記事No:
1548
投稿日: 2004/02/12(Thu) 18:20
投稿者:
初心者
先日httpdを設定して「ecount」と言うカウンターを動かそうと試みたのですが以下のエラーが出て動きません。
Server error!
The server encountered an internal error and was unable to complete your request.
Error message:
Premature end of script headers: ecount.cgi
If you think this is a server error, please contact the webmaster
Error 500
CGIプログラムに誤りはないと思います。(perlのパスも間違っていません)
■httpd.confの設定は以下の通りです。
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
エラーログ(/var/log/httpd/error_log)は以下のようになっています。
[Thu Feb 12 18:13:29 2004] [error] [client 128.1.0.110] Premature end of script
headers: ecount.cgi
再インストールした方がいいのでしょうか?教えてください。
タイトル:
スクリプトのエラーですね
記事No:
1549
投稿日: 2004/02/12(Thu) 18:52
投稿者:
pipi
こんばんわ
エラーコード500番はスクリプトのエラーです。
恐らく、perlで書いているのだと思いますが、以下の点を確認してみてください。
1.perlまでのpathが合っているか
#! /usr/bin/perl ←こんなやつです。自分の環境に合わせてください。
それでもだめだった場合
#! /usr/bin/perl -- などとハイフンを2つつけるとうまくいく場合があります。
タイトル:
同じperlパスの別サーバでは動くのですが・・・
記事No:
1553
投稿日: 2004/02/13(Fri) 09:24
投稿者:
初心者
お返事ありがとうございます。
スクリプトのエラーなのですか?
perlのパスは「#!/usr/bin/perl」と書いてあります。
--を付けて試しましたが文字を「print」するだけの簡単なプログラムはなぜかこの方法で動きましたが、もう1つのカウンタープログラムは動きませんでした。
このカウンタープログラムとは「KENT WEB」さんの「e-Counter(シンプルカウンタ)」と言うやつです。
これは他にサーバ側に設定がいるのでしょうか・・・?
ちなみに同じパスの別のhttpdWebサーバへ設置した場合動きました。
なぜなんでしょう・・・。
タイトル:
「--」を付けるパスの指定はバージョンのせい?
記事No:
1554
投稿日: 2004/02/13(Fri) 15:30
投稿者:
初心者
perlのパス指定で「--」と付けないと動かないのはバージョンのせいでしょうか?
タイトル:
改行コードはどうでしょう?
記事No:
1555
投稿日: 2004/02/13(Fri) 17:13
投稿者:
pipi
あと考えられるのは、
1.改行コードが「LF」になってない。
2.プログラムから読み込むファイルのパーミッションが違う。
この辺以外の原因だとわたしではわからないかもしれないです。
ちなみに、perlパスの--はおまじないとかよく言われてます。
なぜつけるとうまくいくときがあるのかわからないのですが、
うちで動かしているCGIのうち1つが、これをつけないと動かないです。。。
タイトル:
うちのサーバでテストしてみました
記事No:
1556
投稿日: 2004/02/13(Fri) 17:45
投稿者:
pipi
簡単なPerlだったので、ちょっとうちのサーバで試してみたところ、
おまじないはとくに気にせず、KENTさんところの設置方法通りでうまくいきました。
http://www.little-witch.org/~pipi/ ←何日かしたら消します。。
ちなみに、うちのサーバはCGIのディレクトリを外出しにしているのでこんな感じの設定です。
ScriptAlias /cgi-bin/ /xxxxx/yyyyy/cgi-bin/
<Directory /xxxxx/yyyyy/cgi-bin>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
Copyright© Home Server Technical. All Right Reserved.