[英]Perl cgi scripts ran as plain text
在开始之前,我想说的是我已经读过这篇文章: Perl Apache:以纯文本形式显示的Perl脚本
我读过,尝试了一下,但没有解决(可悲)
我在Ubuntu上
我想运行cgi脚本,它们可以很好地编译,我对该文件夹具有适当的权限(至少当我尝试通过浏览器输入它时,没有出现我没有的错误),并且文件以纯文本格式运行。
首先,我要运行的文件:
#!/usr/bin/perl
use CGI qw/:standard/;
print header,
h1('CGI.pm is simple.'),
end_html;
我得到了源代码的输出。
文件夹的路径是/var/www/a2/
apache .config文件中的配置为:
ScriptAlias /a2/ /var/www/a2/
<Directory "/var/www/a2">
AddHandler cgi-script .cgi .pl
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
该文件可以正常编译并在终端中打印html。
我唯一的猜测是我没有授予该文件适当的权利。
编辑:我检查了错误日志。 它不会为此提供任何错误。
编辑:与马克·谢彻尔(Mark Setchell)进行了很长时间的讨论后,发现了错误。 我将其发布在错误的.config文件中,并且一直使用错误的(未配置的文件夹)。
这里有一些尝试:
确保您的脚本以扩展名“ .pl”命名
确保脚本是可执行的。 通过键入以下内容:
chmod + x yourscript.pl
如Mark所说,确保将shebang作为脚本的第一行:
#!的/ usr / bin中/ perl的
删除“ 1;” 最后,您只需要软件包/模块。
我没看到
#!/usr/bin/perl
在脚本的顶部。 没有它,CGI处理程序将不知道如何执行它。
确保启用了apache cgi模式
sudo a2enmod cgi //will enable the cgi mode
sudo service apache2 restart
确保对.cgi文件的文件许可权正确
sudo chmod 755 yourFile.cgi
尝试通过终端执行
perl /Path_To_The_File/fileName.cgi
确保您的fileName.cgi在文件顶部包含以下代码
#!/usr/bin/perl -w
print "Content-type: text/html\n\n";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.