プロが教えるわが家の防犯対策術!

お世話になります。

コマンドプロンプトで実施すると
C:\>perl d:\wwwroot\test.cgi
hello world
と返ってきますが、
URLにhttp://localhost/test.cgiとすると
Forbidden
You don't have permission to access /test.cgi on this server.
と返ってきます。
windowsですので、permissionと言われても何を設定するのか・・・

何の設定を実施すれば、CGIが動くのか教えて下さい。
まったく検討がつきません。よろしくお願いします。

環境は以下のとおりになります。
Apache/2.0.49 (Win32) [C:\Program Files\Apache Group\Apache2]にインストール
PHP/4.3.4 [c:\php]にインストール
This is perl, v5.6.0 built for MSWin32-x86-multi-thread [C:\usr]にインストール
Windows XP pro SP2

test.cgiの中身
#!/usr/bin/perl
# test
print "hello world";

A 回答 (2件)

LinuxのApacheしか扱ったことがないのですが、ひょっとしたら、Apacheの設定漏れじゃないでしょうか?



Linuxでの例だと以下のように、「ExecCGI」の表記をしなければなりません。
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews SymLinksIfOwnerMatch ExecCGI
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

あと、Forbiddenが出てくるのは、suEXECみたいなのが入ってるケースしか思いつかないですね・・・
的はずれだったらすみません。

これは余談ですが、WindowsでのPerlはActivePerlが楽です。
    • good
    • 0
この回答へのお礼

おはようございます。

まさにそのとおりでした。
下記サイトを参考に、httpd.confの最終行に追加しました。
http://www.tohoho-web.com/wwwxx048.htm
<Directory "D:/wwwroot">
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>

これにより、無事動きました。
本当にありがとうございました!

お礼日時:2007/05/04 10:03

test.cgiを下記の様に書き換えてみてください。



test.cgi
#!c:\user\bin\perl.exe
# test
print "hello world";

パスが通っていないのが原因だと思います。

この回答への補足

追記です。(関係ないかも知れませんが。)
環境変数 path には、c:\usr\bin; と追加しております。

補足日時:2007/05/04 02:40
    • good
    • 0
この回答へのお礼

夜分大変遅く返信ありがとうございます。
test.cgi
#!c:\usr\bin\perl.exe
# test
print "hello world";
と致しましたが、結果は同じでした。

お礼日時:2007/05/04 02:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!