- 締切済み
perlパス
Windows2000機でWebServerを建てたのですが、CGIが認識しません。 WEBサーバーのクライアントソフトはApacheで 普通にHTMLは見れています。 perlをインストールした場所は C:\usr\local で VerはActivePerl 5.8.8.822 for Windows (x86)です。 場所は↑なのでCGIファイルのperlのパスはそのままいじらず、 perlのパスは#!/usr/local/bin/perl です。 一応#!C:/~以下 もやりましたがだめで、 CGIのテキストが表示されています。 色々調べてやったのですがどうもうまくいかず 教えていただけませんか
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- umasikajiro
- ベストアンサー率67% (545/803)
たぶん 次に403Forbidden でしょうから それも書いておきます ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/" で設定されたフォルダでしたら それこそperlのパスやスクリプトの内容だけ正しければ動きますが それ以外のフォルダではOptionsも必要です Apache2.2 で c:\home\tarou\public_htmlにtest.cgiを置いて http://localhost/~tarou/test.cgi として動かす場合の設定を書いておきます 1.httpd.confを開き LoadModule userdir_module modules/mod_userdir.so <=この行頭に#があれば消します Include conf/extra/httpd-userdir.conf <=この行頭に # が付いていたら消します 2. C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra にあるhttpd-userdir.conf を開きます UserDir "My Documents/My Website" この行を ↓ UserDir c:/home/*/public_html こう書き換えます <Directory "C:/Documents and Settings/*/My Documents/My Website"><=この3行を AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ↓ <Directory "C:/home/*/public_html"> AllowOverride FileInfo AuthConfig Limit Indexes Options ExecCGI MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec .htaccess で全部許可するなら AllowOverride行は AllowOverride All にします SSIのexeccmd なども許可するならOptions 行は Options All MultiViews 3.[スタート]>[全てのプログラム]>[Apache HTTPServer2.2]>[Configure Apache Server]>[TEST Configuration]をクリックします 設定に間違いが無ければ すぐに閉じられますが 文法ミスなどがあれば Syntax Error ****** <ESC>**** と出ます 4. 間違いなければ Apacheを restartします 5. いじりすぎて訳が判らなくなったら C:\Program Files\Apache Software Foundation\Apache2.2\conf\original に初期状態の .conf が有りますので それをコピーします
- umasikajiro
- ベストアンサー率67% (545/803)
テキストで表示されるのは .cgiが CGIアプリケーションとして認識されていないからです C:\Program Files\Apache Software Foundation\Apache2.2\conf (標準の場合) にある httpd.conf をメモ帳などで開いて #AddHandler cgi-script .cgi 行頭の# を消し ↓ AddHandler cgi-script .cgi として上書き保存してから Apacheをrestartします。