投稿日:2005年07月05日 作成鷹の巣

No.19350 Windows,apache1.3.33にてcgiが実行できない。



Windows,apache1.3.33にてcgiが実行できない。

No.19350 投稿時間:2005年07月05日(Tue) 10:13 投稿者名:ぺら URL:

よろしくお願いします。
Windows2000pro,apache1.3.33,perl5.8.6です。
公式サイトからインストーラをダウンロードしてきて、インストールしました。
「このページが見えているでしょうか?」のページはきちんと表示されました。
ブラウザのURLでlocalhost/cgi-bin/printenv.pl
として標準であるprintenvスクリプトを実行しようとしたのですが500エラーになってしまいます。
httpd.confを見てみるとcgi-binディレクトリでExecCGIされていなかったので追加しました。
再起動後上記URLへアクセスすると同じエラーでした。
apache -l として組み込まれているモジュールを確認するとmod_cgiはきちんと組み込まれているようです。
httpd.confにAddModule mod_cgi.cの記述もきちんとありました。しかしLoadModule cgi_moduleの記述がありません。
そこでLoadModule cgi_module modules/mod_cgi.soと記述し再起動すると、今度はエラーで起動しなくなりました。
調べてみるとmodulesディレクトリ以下にmod_cgi.soがありません。

これからどうすればよいでしょうか?


追記:AddHandlerで.plをcgi-scriptとして認識させています。

No.19351 投稿時間:2005年07月05日(Tue) 10:17 投稿者名:ぺら URL:

追記です。デフォルトではAddHandlerでcgi-scriptとして認識できるのは.cgiだけに設定されていたので
.plを追加しました。
よろしくお願いします。


追記:apahce2.xでは問題なしでした。

No.19355 投稿時間:2005年07月05日(Tue) 20:56 投稿者名:ぺら URL:

apache2.0.54で試してみると、modulesディレクトリにはmod_cgi.soが存在し、cgiの実行もきちんとやれました。
ただAddHandlerに.plを追加してもprintenv.plはcgiとして実行されませんでした。拡張子を.cgiとするとうまくいきます。
どうして1.3.33にはmod_cgi.soが存在しないのでしょうか?


解決:単純な勘違いでした。

No.19356 投稿時間:2005年07月05日(Tue) 21:16 投稿者名:ぺら URL:

Windows用のapacheだからテストcgiも当然それ用にカスタマイズされているものだと思っていました。
printenv.plのインタプリタ指定を見てみると
#!/usr/local/bin/perl
とUnix用の指定のままでした。きちんとperlのパスを設定してやるとうまくいきました。
勘違いからくる単純な見落としでした。
ちなみにapache2.0.54に含まれていた同じprintenv.plはきちんとWindows用にインタプリタ指定がされていました。
つまらない投稿をしてしまい、失礼しました。


目次掲示板過去ログ目次▲頁先頭