WEBサーバでCGIが動作出来る方法を教えて下さい。

Internal Server Error
とのエラーが出ます。

<環境>
 OS:Linux debian Sarge 2.4.27-2-386
 WEB Server:Apache/2.0.54

debian Sarge 2.4.27-2-386をインストールする際に、WEBサーバ有りで
インストールしました。その後は下記に記す変更以外は設定は変更していません。
(デフォルトのままです。)


現在、/etc/apache2/apache2.confに以下の修正・追加を加えました。

AddHandler cgi-script .cgi .pl

<Directory "/var/www/apache2-default/web_data/">
Options Includes FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>



/var/www/apache2-default/web_data/は、Webページの置いてある
ディレクトリで、この中にcgiスクリプトが入っています。

/var/www/apache2-default/web_data/に配置したHTMLファイルに、

<A HREF="CGGI.cgi">CGI</A>

と記述しています。CGGI.cgiのパーミッション設定は、755としています。


WEBで情報を探していますが、OS,Apacheのバージョンが異なるためか、
複数の解決策があり、どれが適当かわかりません。(幾つか試したのですが。)
これだけに3日間ぐらいはまっています。

以上、
よろしくお願いします。

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:
  • 終了:2007/06/14 21:06:51
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Yota No.3

回答回数453ベストアンサー獲得回数28

ポイント49pt

cgi-binというディレクトリに最初から入っているtest.cgiとかは動かしてみましたか。デフォルト設定では多分http://domain/cgi-bin/test.cgiで動くと思います。

それとseinuxが効いているとだめな場合がありますのでもし動いていたらいったんenabledにしたほうがいいです。

http://httpd.apache.org/docs/2.0/howto/cgi.html

id:futurista

>>cgi-binというディレクトリに最初から入っているtest.cgiとかは動かしてみましたか。

これは見当たりませんでしたが???

>>デフォルト設定では多分http://domain/cgi-bin/test.cgiで動くと思います。


http://domain/cgi-bin/test.cgiでパスを切ったうえで、

エラーログを確認したところ、どこにcgiスクリプトを配置すればよいかがわかりました。

/var/www/apache2-default/にcgi-binというディレクトリを作ったうえで、

/var/www/apache2-default/cgi-binにcgiスクリプトを配置したら、

実行出来ました。

ありがとうございました。

2007/06/14 21:05:03

その他の回答2件)

id:wnagata No.1

回答回数170ベストアンサー獲得回数18

ポイント35pt

CGIでInternal Server Errorがでたときは、Apacheのエラーログを確認してください。

エラーログの場所は、apache2.confでErrorLogディレクティブで指定されています。ServerRootからの相対パスで記述されています。

CGIがPerlで書かれているときは、DOS(CR+LF)からUnix(LF)に改行コードを変換したり、先頭の#!で指定されているperlコマンドの場所を変更したりする必要があります。

http://www.aconus.com/~oyaji/faq/apache_cgi3.htm

id:futurista

ログ確認は基本ですね。すいません。

肝心のCGIスクリプトは、

CGIは他のサーバで動作しているものを、持ってきていたので、疑っていませんでした。

2007/06/14 21:02:32
id:peppon No.2

回答回数73ベストアンサー獲得回数0

ポイント35pt

http://q.hatena.ne.jp/answer

Apacheが生成するエラーログに原因が書いてあります。

SUEXECを利用している場合には、ファイル、ディレクトリのパーミッション、権限を確認する。 またperl -wc ファイル名でエラーが無いか確認してみてください。

id:futurista

ログ確認は基本ですね。すいません。

肝心のCGIスクリプトは、

CGIは他のサーバで動作しているものを、持ってきていたので、疑っていませんでした。

2007/06/14 21:02:45
id:Yota No.3

回答回数453ベストアンサー獲得回数28ここでベストアンサー

ポイント49pt

cgi-binというディレクトリに最初から入っているtest.cgiとかは動かしてみましたか。デフォルト設定では多分http://domain/cgi-bin/test.cgiで動くと思います。

それとseinuxが効いているとだめな場合がありますのでもし動いていたらいったんenabledにしたほうがいいです。

http://httpd.apache.org/docs/2.0/howto/cgi.html

id:futurista

>>cgi-binというディレクトリに最初から入っているtest.cgiとかは動かしてみましたか。

これは見当たりませんでしたが???

>>デフォルト設定では多分http://domain/cgi-bin/test.cgiで動くと思います。


http://domain/cgi-bin/test.cgiでパスを切ったうえで、

エラーログを確認したところ、どこにcgiスクリプトを配置すればよいかがわかりました。

/var/www/apache2-default/にcgi-binというディレクトリを作ったうえで、

/var/www/apache2-default/cgi-binにcgiスクリプトを配置したら、

実行出来ました。

ありがとうございました。

2007/06/14 21:05:03

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません