重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

こんにちは。
現在Redhat8を使用して、サーバーを作っています。apacheを起動してサイトが表示できるまではOKだったのですが、CGIを使う段階でつまづいています。

httpd.confは様々なサイトを見てそのとおりに編集したのですが、いざCGIを起動するとServerError!となります。Error_logを見ると↓のような妙な文章でした。Permissionなら分かるのですが、、これは何でしょう。

Premature end of script headers: XXX.cgi

CGIの先頭のPerl指定は #!/usr/bin/perl にしてあります。何が悪いのか分からず途方にくれています。何かチェックする部分があればどうかご指摘ください。お願いします。パーミッションの設定は完了しており、CGIスクリプト自体も先頭以外はいじっていません。

RedHat8.0
Apache2.0

/home/www/html にHTMLファイル
/home/www/cgi-bin にCGIスクリプト

----------------以下関係のありそうなhttpd.confの抜粋

ScriptAlias /cgi-bin/ "/home/www/cgi-bin/"
<Directory /home/www/cgi-bin>
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

AddHandler cgi-script .cgi

A 回答 (4件)

> 「英語のCGI」だと全く問題ないということが判明しました。



では,改行コードの問題じゃないですね.
変なところに2バイト文字が紛れ込んだりしてませんか?
特に,空白など,見落としがちだと思います.

perl -c で,文法チェックするとどうなりますか?
サーバーでの直接実行の結果は?
    • good
    • 0

ScriptAlias /cgi-bin/ "/home/www/cgi-bin/"


となっていますが、、、

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
に戻して、同じエラーがでるかです。

ユーザーディレクトリの場合でも
/home/*/public_html を
/home/*/abc/public_html の様に
デフォルトから動かすと エラーになる場合があ
ります。

suExecが絡んでいるようです。

外しているかもしれませんが。。
    • good
    • 0
この回答へのお礼

こんにちは。おっしゃるようにオリジナル?に戻して試してみましたが、同じでした。

その後、ネットではいずりまわって情報を集め、いろいろやったところ「英語のCGI」だと全く問題ないということが判明しました。ということは、改行コードか何かの問題だと思うのです。

ASCIIモード、EUC関連、FTPソフトでいろいろ試してみたのですが、ダメでした。

\n とかそのあたりがくさいのかな・・・

お礼日時:2003/05/29 14:10

そのスクリプトをサーバー上で実行してみて,



bad interpreter

というエラーが出るようなら,スクリプトの改行コードがおかしいのだと思います.
Dos/Windows から ftp 転送する場合は,ASCII モードで転送しましょう.
サーバー上で dos2unix コマンドで変換しても良いです.
    • good
    • 0
この回答へのお礼

とりあえずffftpのASCIIモードで上げてみましたが、今だ変化が見えずです・・・うーむ 一体何が・・・でも原因はastronautさんが言うように各行の改行コードがくさい気がしてきました。 

情報ありがとうございます

お礼日時:2003/05/29 11:54

Perlへのパスが間違っているのかもしれません。


/usr/local/bin/perl
で試してみてください。
    • good
    • 0
この回答へのお礼

whereis perl で検索したところ /usr/bin/perl でしたので、これはOKのようでした・・・

お礼日時:2003/05/29 11:50

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