• ベストアンサー

自宅サーバでCGIが機能しないのです

素人の質問で恐縮です。自宅サーバを構築中ですが、アパッチをインストールし、DDNSによるドメインを取得し、HPを公開できました。FTP環境もできました。ただ、ActivePerlの最新版ををインストールし、コマンドプロンプトで起動確認もできたのですが、CGIファイルをcgi-binフォルダに入れても機能しません。一行目を#!c:/perl/bin/perlか、#!c:/perl/bin/perl.exeにしたのですが、パールをつかみにいかないのです。サーバはWindowsXPのホームエディションSP2ですが、WindowsはUNIXみたいにパーミッションの概念がないので設定は不要だと、あるサイトに書いてましたが不要ですか?確かに以前、プロバイダのWEBスペースでCGIの掲示板を使っていた時は、FTP上でパーミッションを設定していましたが、自宅サーバ(windows)ではFTP上で設定しようとしてもはねつけられてしまいました。どなたかアドバイスいただけましたら幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • monchix
  • ベストアンサー率54% (1460/2666)
回答No.1

Apacheのhttpd.confの記述が間違ってるんだと思いますが、どのように設定されていますか? 特に<Directory>~</Directory>あたり。 参考にしたサイトがあればそこをもういちど確認されたほうがいいと思います。 自分はANHTTPDを使ってるのですが、こっちのほうが簡単だと思うなぁ。もともとunix系でサーバを扱ってる人ならApacheのほうが使いやすいかとは思いますが。 >一行目を#!c:/perl/bin/perlか、#!:/perl/bin/perl.exeにしたのですが こんな記述の変更は不要です。

mikio_to_mikio
質問者

お礼

ありがとうございました。ANHTTPDでやったら一発でokでした。アパッチみたいにやいこしい設定もいらんかったし最高でした。こんごともよろしくお願い申し上げます。

mikio_to_mikio
質問者

補足

ありがとうございます。アパッチをかじれば何かと勉強になるかと思いましたが、素人には難し過ぎました。いろんな参考書を見ますとやはりお勧めのANHTTPDが入門しやすいし、日本語なので結局そちらへ移行しそうです。ちなみにアドバイスいただいた>こんな記述の変更は不要です。・・の箇所ですが、このパスは特に記入しなくてもよいということなのでしょうか?

その他の回答 (2)

  • Lean
  • ベストアンサー率72% (435/603)
回答No.3

>perlプログラムのテキストファイルが現れてしまいます 上記現象は、「AddHandler cgi-script .cgi」が利いていないない時のですね。 ちなみに、 1. CGIファイルの拡張子は.cgiですか? 2. httpd.conf内で「ScriptAlias」の設定にあるフォルダ(多分、No.2で書いたcgi-binディレクトリ(フォルダ)だと思います)にCGIファイルを置いて実行しても駄目ですか? 3.エラーログに何か出力されていませんか?

  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

Apache(2.x系)、ActivePerlが下記の通り、デフォルトの場所にインストールされた前提で書きます。 ○Apache  ・インストール先   C:\Program Files\Apache Group\Apache2  ・cgi-binディレクトリ(フォルダ)   C:\Program Files\Apache Group\Apache2\cgi-bin ○ActivePerl  ・インストール先   C:\Perl  ・perlコマンドパス   C:\Perl\bin\perl.exe ------8<------8<------8<------8<------ 1.設定ファイル(httpd.conf)で以下が有効になっていますか?  AddHandler cgi-script .cgi 2.設定ファイル(httpd.conf)の変更後、Apacheの再起動(restart)を行っていますか? 3.CGIファイル(.cgi)のperlコマンドのパスが以下の通りになっていますか?  #! /perl/bin/perl 以上の事を確認してみてください。

mikio_to_mikio
質問者

補足

ありがとうございます。アドバイスのとおり、c:\perlに入れていたのでパスを#!/perl/bin/perlにしましたがやはり同じでした。httpd.confについては1.および2.を確認・実施しましたがやはり動きませんでした。それらしいサイトでOptions FollowSymLinks の行の後ろにExecCGIを追加すれば良いと書いてあり、追加しましたが、再起動してアタックしても、perlプログラムのテキストファイルが現れてしまいます。ほかに何かお心当たりはございませんでしょうか?とほほほ

関連するQ&A