我已经在我的手臂上安装了一个boa服务器。现在我正在编写一个cgi脚本,我可以从用户那里获取一些数据(在其他一些PC上但在同一网络上)并将其保存在我手臂的文本文件中。
这是我的CGI文件,将数据存储在文本文件中我需要使用“USE CGI”来获取输入的数据但是当我在此代码上取消注释时我得到错误502错误的网关CGI不是CGI符合/1.1。需要帮助!
#!/usr/bin/perl
use strict;
use warnings;
#use CGI;
print "Content-type: text/html\n\n";
#open (MYFILE, '>>guestbook.txt');
# print MYFILE "1111111\n";
# close (MYFILE);
print <<"EOF";
<HTML>
<HEAD>
<TITLE>Hello, world!</TITLE>
<p id="demo"></p>
<script type="text/javascript">
function copyText()
{
document.getElementById("field2").value=document.getElementById("field1").value;
document.getElementById("demo").innerHTML = Date();
}
</script>
</HEAD>
<BODY>
<H1>Hello,</H1>
Enter Email Address: <input type="text" id="field1" value="Hello1 World!"><br>
Field2: <input type="text" id="field2">
<br><br>
<button onclick="copyText()">Copy Text</button>
</BODY>
</HTML>
EOF
答案 0 :(得分:0)
502 Bad gateway CGI不符合CGI / 1.1
通常此错误是由权限引起的。尝试向其他人添加读取和执行访问权限。
chmod o+rx yourscript.cgi
答案 1 :(得分:0)
检查cgi脚本的文本,看它是否使用unix行结尾&#34; \ n&#34;或dos / windows行结尾&#34; \ r \ n&#34;。
您可以从shell执行此操作:
$ od -c mycgiscript.pl
如果你发现你的文件充斥着windows line endings,那么就这样:
$ tr -d '\r' mycgiscript.pl > /tmp/mycgiscript.pl
$ cp /tmp/mycgiscript.pl mycgiscript.pl
$ rm /tmp/mycgiscript.pl
确保读取/执行位不会重置,并且尝试再次运行脚本。
答案 2 :(得分:0)
非常感谢AKHolland,实际上我检查了错误日志,并发现我的一些perl模块丢失了。现在它正在工作!