• 締切済み

Mac OS X 10.5 LeopardのApache2でCGIを動かせない

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と出るだけです。 お心当たりのございます方、どうかご教授ください。

みんなの回答

  • teapots08
  • ベストアンサー率52% (32/61)
回答No.4

apache2/logs/error.log に何かヒントとなるようなものがありませんか?

maverickA
質問者

お礼

ご回答ありがとうございます。  Premature end of script headers と出るだけで、一向に解決できず終いです…。

  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.3

> 改行コードはLFです。 改行コードはCRのままでないといけないのではありませんか。

maverickA
質問者

お礼

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

  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.2

> perlコマンドのパスがターミナルのwhich perlで/usr/bin/perlだったので、!# /usr/bin/perlを指定した  !# /usr/bin/perl はこの質問投稿での typo ですか。

maverickA
質問者

お礼

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

回答No.1

> internal server error > Premature end of script headers CGIの処理は動いているようですが、perlスクリプトはコンパイルエラー無く動く物ですか? たとえばContent-typeヘッダを出力していないなどの不具合はありませんか? >% perl -c スクリプトファイル名 としたり、 use CGI::Carp qw/fatalsToBrowser/; を使うことで、どんなエラーが出ているか、確認することが出来ます。 (Content-Typeヘッダが出力されていないだけの場合は、エラーメッセージが表示されません)

maverickA
質問者

お礼

回答ありがとうございます! 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が発生し、エラーが確認できません。

関連するQ&A

専門家に質問してみよう