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日間ぐらいはまっています。
以上、
よろしくお願いします。
cgi-binというディレクトリに最初から入っているtest.cgiとかは動かしてみましたか。デフォルト設定では多分http://domain/cgi-bin/test.cgiで動くと思います。
それとseinuxが効いているとだめな場合がありますのでもし動いていたらいったんenabledにしたほうがいいです。
CGIでInternal Server Errorがでたときは、Apacheのエラーログを確認してください。
エラーログの場所は、apache2.confでErrorLogディレクティブで指定されています。ServerRootからの相対パスで記述されています。
CGIがPerlで書かれているときは、DOS(CR+LF)からUnix(LF)に改行コードを変換したり、先頭の#!で指定されているperlコマンドの場所を変更したりする必要があります。
ログ確認は基本ですね。すいません。
肝心のCGIスクリプトは、
CGIは他のサーバで動作しているものを、持ってきていたので、疑っていませんでした。
Apacheが生成するエラーログに原因が書いてあります。
SUEXECを利用している場合には、ファイル、ディレクトリのパーミッション、権限を確認する。 またperl -wc ファイル名でエラーが無いか確認してみてください。
ログ確認は基本ですね。すいません。
肝心のCGIスクリプトは、
CGIは他のサーバで動作しているものを、持ってきていたので、疑っていませんでした。
cgi-binというディレクトリに最初から入っているtest.cgiとかは動かしてみましたか。デフォルト設定では多分http://domain/cgi-bin/test.cgiで動くと思います。
それとseinuxが効いているとだめな場合がありますのでもし動いていたらいったんenabledにしたほうがいいです。
>>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スクリプトを配置したら、
実行出来ました。
ありがとうございました。
>>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スクリプトを配置したら、
実行出来ました。
ありがとうございました。