msi*_*nfo 16 apache perl configuration cgi windows-7
使用apache
和配置时perl cgi scripts
,不知道为什么index.cgi
/ index.pl
显示为纯文本而不是执行它们.当我放入http://localhost
浏览器时,它显示在代码下面,而不是执行它.
List item
#!C:/Dwimperl/perl/bin/perl.exe -w
print "Content-type: text/html\n\n";
print <<HTML;
<html>
<head>
<title>A perl web page</title>
</head>
<body>
<h3>A hello world form perl</h3>
</body>
HTML
exit;
Run Code Online (Sandbox Code Playgroud)
这是httpd.conf
我大部分时间编辑的文件的一部分(阅读各种在线参考,教程后)
# This should be changed to whatever you set DocumentRoot to.
<Directory "D:\webserver">
Listen 80
ServerName localhost:80
LoadModule cgi_module modules/mod_cgi.so
# First, we configure the "default" to be a very restrictive set of
# features.
<Directory />
Options FollowSymLinks +ExecCGI
AllowOverride None
</Directory>
DirectoryIndex index.html index.html.var index.cgi index.pl
AccessFileName .htaccess
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
#AddHandler cgi-script .cgi .pl
ScriptAlias /cgi-bin/ "C:/Apache/Apache2/cgi-bin/"
Run Code Online (Sandbox Code Playgroud)
小智 29
当浏览器打印脚本代码时,意味着它无法找到运行脚本的应用程序.下面两行应该是解决这个问题的第一步.AddHandler将确保文件以cgi脚本结尾.cgi
并被.pl
视为cgi脚本.而+ExecCGI
选项将允许执行脚本.还要确保您的脚本指向正确的perl二进制位置.
Run Code Online (Sandbox Code Playgroud)AddHandler cgi-script .cgi .pl Options FollowSymLinks +ExecCGI
httpd.conf中也存在一些错误/错误配置点
ScriptAlias/cgi-bin /"D:\ webserver\cgi-bin"
httpd.conf
.你应该<Directory "D:\webserver">
用下面的部分替换你的部分.Run Code Online (Sandbox Code Playgroud)<Directory "D:\webserver\cgi-bin" /> AddHandler cgi-script .cgi .pl Options FollowSymLinks +ExecCGI AllowOverride None </Directory>
perl test.cgi
cgi-bin
目录和cgi脚本具有读写递归权限.您还可以使用写权限创建目录或文件.如果没有cgi-bin
在其他可以拥有写权限的地方创建一个目录,而是提供其路径alias
和directory
属性httpd.conf
.另外这个链接应该帮助你.
(额外的评论,不是原来的回答者:你可能还需要启用该cgi
模块.对我来说,让cgi在全新安装的Apache 2上工作的最后一步是sudo a2enmod cgi
.在我这样做之前,网站只是向我展示了脚本的内容.)
sudo a2enmod cgi
归档时间: |
|
查看次数: |
46732 次 |
最近记录: |