【问题标题】:Using perl on the web在网络上使用 perl
【发布时间】:2014-02-25 02:51:43
【问题描述】:

我的 .htaccess 文件是否不包含

"选项-索引+ExecCGI

AddHandler cgi-script .plx"

与我的 perl 脚本没有在我的朋友网络服务器上运行有关吗?他为我分配了一个子域?

这与不在根目录下有什么关系吗?显然我在某处像 \Public_html\plugins\jack\

我试图从中调用 perl 脚本的html:

<html> 
<!--#exec cgi="cgi-bin/print.pl"-->
<head>
</head>
<body>
<form action="/cgi-bin/print.pl" method="post">
<input type="submit" name="sub" value="Run this!">
</form>
</body>
</html>

perl 脚本:

#!/usr/bin/perl
BEGIN {
use CGI::Carp qw(fatalsToBrowser);
die ’Some disaster!’; # This will be printed to the browser
print "Content-type: text/plain\n\n";

}

注意:当我打开 shtml 文件时,我得到“[处理此指令时发生错误]”,当我点击“运行”时,我得到

内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求。

请联系服务器管理员 webmaster@whatever.com 并告知他们错误发生的时间,以及您所做的任何可能导致错误的事情。

服务器错误日志中可能会提供有关此错误的更多信息。

此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。

如果需要任何其他信息,请询问。我不确定向全世界展示我的 htaccess 文件的内容是否延迟。

【问题讨论】:

    标签: html perl .htaccess


    【解决方案1】:

    我强烈建议更换:

    #!/usr/bin/perl 
    

    #!/usr/bin/perl -w
    

    确保cgi-bin 文件夹和print.pl 脚本的文件权限设置为755 上传此脚本时,请确保它处于 ASCII 模式。

    至于404 Not Found error去,ErrorDocument在指定的地方不存在,所以会导致这个错误。

    您有权访问您的服务器日志吗?如果是,则将其记录在日志中。另外,谁创建了cgi-bin 文件夹?您或您的托管服务提供商?请注意,cgi-bin 文件夹在配置文件中设置为ScriptAlias。该目录中的每个文件都将被视为脚本并根据请求执行。

    【讨论】:

    • 好吧,我会使用警告;但它不是我正在阅读的书中的 sn-p 的一部分。我读到我应该以二进制而不是 ASCII 格式上传 perl 文件。我想我无法访问服务器日志,我的朋友刚刚做了手术,所以我暂时无法联系到他,但我会问他。我没有制作 cgi-bin,所以它要么是自动化的,要么是我朋友制作的。我会要求他更改文件和文件夹的权限,但他说777是世界可执行权限。谢谢你的回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多