Apache WebサーバでCGIを実行すると Premature end of script headers というエラーになります。原因が判りません。何方かご教示をお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

Windowsで書いたCGIをUNIXサーバにFTP転送した時、binaryモードで転送していると改行コードがCRLF(0x0D0x0A)のままになり、上記エラーが生じることがあります。



emacs等で開いたときに左下に(DOS)などと出ていたら、asciiモードで転送しなおすか、
dos2unixコマンドを使って、改行コードをLFに変更してみてください。
    • good
    • 0

参考URLに出ているようなことは、なさったでしようか?



参考URL:http://tohoho.wakusei.ne.jp/wwwcgi2.htm#CgiHtacc …
    • good
    • 0
この回答へのお礼

回答有難うございました。

お礼日時:2001/11/11 21:35

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

このQ&Aと関連する良く見られている質問

Q:Webサーバソフトを実行しているPCのHPが、外部からIPで見えない

PC(a)はADSLのモデムに直接つながっています、
  WinXPです。
  IPCONFIGでIPを調べたら、219.164.31.175でした
  AN HTTPを実行させます
PC(b)はやはりWinXPでダイヤルアップ接続にし
  IEを実行して
  アドレスに先の
  IP(219.164.31.175)を入れても
  (a)に置いたページがみえません
--------------------------------------
1.NeoTraceで見ると、あたかも(a)にたどり着いて
  いるみたいですが
www.hot2.net/0731←結果表示

2.上記はLANを切り離して実験したのですが
  LANの上では(b)から、
  AN HTTPを実行しいる(a)を見ると
  ページが見えます
  この時は(a)のLocalアドレスは
  192.168.1.200をいれたのですが
どなたか、よろしくお願いします。

Aベストアンサー

まず、(a)の問題化か、(b)の問題化を調べるために、他の場所から(a)にアクセスしてみるのが良いと思います。

例えば、WEBサーバソフトの種類をチェックしてくれる下のサービスなどを利用すると、問題の切り分けができると思います。
http://www.ascend-tech.net/checksvr.phtml

参考URL:http://www.ascend-tech.net/checksvr.phtml

Qcgi-binでしかcgiを実行できない環境で…

現在稼働しているコンテンツを
独自ドメインにしようと思い、
WebARENAを借りたのですが、
今時(?)cgi-binでしかcgiを実行できない設定でした。
現在のコンテンツは、
(ドメイン名)/example.php?id=123
のように、idをgetで渡す、
レンタル型のコンテンツなのですが、
これを
(ドメイン名)/cgi-bin/example.cgi?id=123
のように、長いアドレスにしたくありません。
そもそもアドレスを短く、分かりやすくするために
独自ドメインを取ったものですから…。
Redirectでcgi-binに飛ばしてみたりしたのですが、
その場合引数はカットされるようです。
なんとかして、cgi-binを入れないアドレスが
使えるようにできないでしょうか?

Aベストアンサー

PHPがつかえるみたいですね。
PHPに一度はいってLocationでとばすとかしたらどうです?

QCGIの中にJAVA Script

CGIプログラムはまったくの初心者です。
perlでCGIプログラムを組んで、HTMLを書き出すときに
Java Scriptもいっしょに書き出すことはできますか?

print "Content-type: text/html\n\n";
print "<html><head><title>$title</title>\n";
---この間に入れたいのですが・・・---
print "</head>\n";
print "<body topmargin=0 leftmargin=0 marginheight=0 marginwidth=0 bgcolor=$bg_color text=$text_color link=$link_color vlink=$vlink_color background=$bg_gif>\n";

Java Scriptの menu_0.addMenuItem("ショップ案内","location='shop.html'"); 等を入れるときに
「"」や「;」はどういう風に表現すればうまくいくのでしょうか。

Java Script以外のタグの中の<font size="2">などは「"」をとれば
大丈夫なのは知っていますが、Java Scriptで「"」や「;」をとってしまうと
動作しなくなりました。

CGIプログラムはまったくの初心者です。
perlでCGIプログラムを組んで、HTMLを書き出すときに
Java Scriptもいっしょに書き出すことはできますか?

print "Content-type: text/html\n\n";
print "<html><head><title>$title</title>\n";
---この間に入れたいのですが・・・---
print "</head>\n";
print "<body topmargin=0 leftmargin=0 marginheight=0 marginwidth=0 bgcolor=$bg_color text=$text_color link=$link_color vlink=$vlink_color background=$bg_gif>\n";

Java Scriptの menu_0.addMe...続きを読む

Aベストアンサー

大体ながながとHTMLやJavaScriptを記述するときには、『ヒアドキュメント』という機能を使うと話しが簡単だと思います。

print << "THE_JAVASCRIPT" ← ここは適当に名前をつけます。
<script language="javascript"><!--
ここは、かきたいようにjavascript書けば良いです。
$titleなどの変数はちゃんと展開されます。
//--></script>
THE_JAVASCRIPT ← ここはコロンをつけてちゃダメ♪

Perlの書籍やインターネットなどで、『ヒアドキュメント』を調べましょう!

QCGIのパス(Apache winで)

初歩的な質問ですみません。

環境
windows2000 サーバー
Apache/1.3.20
ActivePerl-5.6.1.626
をインストールが完了して、CGIを動作させようとしています。
ApacheでのHTML動作はできています。

CGIプログラムの一行目に
#!/usr/local/bin/perl
と記載されています。
その文字列を
#!c:/bin/perl.exe
に変更して現在動作させています。

しかし、ISPのHPスペースのperlへのパスは
#!/usr/local/bin/perl
なので、転送前に一行目を変更しています。

変更しなくても良いように
ApacheでのCGIのパスを
#!/usr/local/bin/perl
で動作する方法を
どなたか教えていただけないでしょうか?

ちなみに
Perlは[c:\bin]にインストールしてあります。
Apacheは[g:\apache]にインストールしてあります。

Aベストアンサー

apachaで設定しているrootから見て
[root]/usr/local/bin/の位置に
c:\binの中のファイルを 全部コピーすればいいと思います

Qapache でバイナリのCGIを動かすには

apache でバイナリのCGIを動かすにはどうすればよいのでしょうか?
(なお、プログラム自体に問題は決してありません。『HTTPD』を使うと問題なく動作します)

OS:WIN98

C++バイナリのCGIを呼び出すと下記エラーとなります。

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please .... the error.
More ... log.
-
Apache/1.3.12 Server at http://127.0.0.2/ Port 80


最終アクセスログ
127.0.0.1 - - [12/Mar/2001:23:20:27 +0900] "GET /ab.cgi HTTP/1.1" 500 610

最終エラーログ
[Mon Mar 12 23:20:25 2001] [error] [client 127.0.0.1] Premature end of script headers: e:/www.homepage/kokucho81/ab.cgi

apache の httpd.conf と httpd.conf.default との比較

** httpd.conf
ServerName http://127.0.0.2/

** httpd.conf.default
#ServerName new.host.name

** httpd.conf
DocumentRoot "E:/WWW.HOMEPAGE/KOKUCHO81"

** httpd.conf.default
DocumentRoot "C:/Apache/htdocs"

** httpd.conf
<Directory />
Options FollowSymLinks ExecCGI
AllowOverride None

** httpd.conf.default
<Directory />
Options FollowSymLinks
AllowOverride None

** httpd.conf
<Directory "E:/WWW.HOMEPAGE/KOKUCHO81">
** httpd.conf.default
<Directory "C:/Apache/htdocs">

** httpd.conf
Options Indexes FollowSymLinks ExecCGI

** httpd.conf.default
Options Indexes FollowSymLinks MultiViews

** httpd.conf
AddHandler cgi-script .cgi

** httpd.conf.default
#AddHandler cgi-script .cgi


そもそも、設定が足りてないんでしょうか?
apacheを良く使う方、よろしくお願いします。m(_ _)m

apache でバイナリのCGIを動かすにはどうすればよいのでしょうか?
(なお、プログラム自体に問題は決してありません。『HTTPD』を使うと問題なく動作します)

OS:WIN98

C++バイナリのCGIを呼び出すと下記エラーとなります。

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please .... the error.
More ... log.
-
Apache/1.3.12 Server at http://127.0.0.2/ Port 80


最終アクセスログ
127.0.0.1 - - [1...続きを読む

Aベストアンサー

見たところおかしいところはなさそうなのですが。

Apache1.3.12をWin98上で使っていますが、同じようなことをしてもまるで問題なく動作しています。
試しに同じことをやってみましたが問題ありませんでした。コンパイラはVC6を使用しました。
参考にならなくてスミマセン。


人気Q&Aランキング

おすすめ情報