我在 Windows Server 2008 R2 上安装了全新的 Apache 2.2.15 服务器,并安装了 mod_perl(mod perl v2.0.4 / perl v5.10.1)。Mod_perl 和 Perl 5.10 已安装并加载,没有任何问题。但是,尽管我进行了配置,mod_perl 模块仍无法识别和执行我的 .pl 文件,而是选择打印出 perl 源代码。我做错了什么,如何让 perl 处理我的 pl 脚本而不是将其发送到客户端?
我的配置:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "C:\Program Files (x86)\AWStats\wwwroot"
ServerName analysis.example.com
ServerAlias analysis.example.com
ErrorLog "logs/analysis.example.com-error.log"
CustomLog "logs/analysis.example.com-access.log" common
DirectoryIndex index.php index.htm index.html
PerlSwitches -T
<Directory "C:\Program Files (x86)\AWStats\wwwroot">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "C:\Program Files (x86)\AWStats\wwwroot\cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
<FilesMatch "\.pl$">
SetHandler perl-script
# #PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
</FilesMatch>
</directory>
</VirtualHost>
非常感谢您的帮助!
答案1
我想你已经看过了这一页? 您确定正确加载了 mod_perl 吗?
我不确定这是否还重要,但你至少曾经需要在 Apache 中使用正斜杠作为路径,因此例如更改"C:\Program Files (x86)\AWStats\wwwroot\cgi-bin"
为"C:/Program Files (x86)/AWStats/wwwroot/cgi-bin"
。我还注意到你的</directory>
没有大写,不确定这是否重要。
您还可以尝试使用指令而不是指令,这样它们将分别更改为“”和“”。