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

MacPro Mac OS X 10.5にてローカルでCGIの動作確認をしようと試み、Apache2を起動し、http://localhost/~ユーザー名/xxx.cgiで確認しようとしたところ、Internal Service Errorが発生します。定石通り以下を設定したのですが、改善しません。どなたか同じ症状の方で解決された方、もしくは解決法をご存じの方、お知恵を拝借させてください。

Leopardは10.4以前と違い、CGIを動かすのに、httpd.confの設定ではなく、etc/apache2下のユーザー名.confを直すということだったので、以下のようにユーザー名.confを設定しました。改行コードはLFです。

//----------------
<Directory "/Users/ユーザー名/Sites/">
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
AddType text/html .shtml
AddHandler server-parsed .shtml
Options Indexes MultiViews ExecCGI Includes
AllowOverride None
Order allow,deny
Allow from all
</Directory>

ターミナルでapachectl configtestを行い、Syntax OKと出た後、apachectl restartを実行し、apache2を再起動させ、

perlコマンドのパスがターミナルのwhich perlで/usr/bin/perlだったので、!# /usr/bin/perlを指定したcgiファイルをつくり、ユーザーのホームディレクトリ下のサイト下に置き、パーミッションを755に設定。これでブラウザで確認すると、internal server errorが出ます。もちろんlocalhostやlocalhost/~ユーザー名はブラウザ上で表示されます。Error_logを確認しても、Premature end of script headersと出るだけです。

お心当たりのございます方、どうかご教授ください。

A 回答 (4件)

apache2/logs/error.log


に何かヒントとなるようなものがありませんか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

 Premature end of script headers

と出るだけで、一向に解決できず終いです…。

お礼日時:2008/08/19 00:27

> 改行コードはLFです。



改行コードはCRのままでないといけないのではありませんか。
    • good
    • 0
この回答へのお礼

CRにしても駄目なようです。ちなみに文字コードもASCIIもUNICODEもためしましたが駄目でした…

お礼日時:2008/08/18 21:56

> perlコマンドのパスがターミナルのwhich perlで/usr/bin/perlだったので、!# /usr/bin/perlを指定した



 !# /usr/bin/perl はこの質問投稿での typo ですか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。質問欄でのtypoです。失礼しました。実際は#!と書いてあります。

お礼日時:2008/08/18 13:02

> internal server error


> Premature end of script headers
CGIの処理は動いているようですが、perlスクリプトはコンパイルエラー無く動く物ですか?
たとえばContent-typeヘッダを出力していないなどの不具合はありませんか?

>% perl -c スクリプトファイル名
としたり、
use CGI::Carp qw/fatalsToBrowser/;
を使うことで、どんなエラーが出ているか、確認することが出来ます。
(Content-Typeヘッダが出力されていないだけの場合は、エラーメッセージが表示されません)
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

cgiテストファイルの内容は、お決まりの
#! /usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello Perl!";

です。ヘッダも出力しました。perl -cで確認してもsyntax OK!と出ます。

use CGI::Carp qw/fatalsToBrowser/;を、cgiファイルの#! /usr/bin/perlの次の行に書いて出力してみたところ、残念ながらまたもinternal server errorが発生し、エラーが確認できません。

お礼日時:2008/08/18 13:20

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