我希望你能帮助,我只是一个初学者! 我列出了一些可能不相关的额外细节。
我使用ASCII码FTP95Pro将cgi脚本上传到Apache / 2.2.10服务器上的本地/个人目录。 脚本在terminal会话中使用perl在我的web服务器上正确执行。 因此,我的代码没有致命的语法错误。
在/ cgi-bin /中的每个cgi脚本都会有网页的“操作”。 有系统目录文件链接到我的本地目录文件的符号链接。 FollowSymLinks已启用(不确定如何)。 权限是正确的(755)。 这个设置显然没有改变。
这些脚本已经完成了多年,直到2010年。但现在,在2010年,我已经用新的脚本/文件replace了工作脚本,现在具有完全相同的文本,文件名和权限。 只有date(上次修改)已更改。 但现在我收到一个500内部服务器错误,并不能确定为什么。 我的服务器pipe理员假设我有代码错误。 但是自去年以来,代码并没有改变,并且它在web服务器控制台上使用perl myscript.cgi运行正常(尽pipe没有参数)
有什么你可以想到的可能已经改变? 我怀疑新的十年。 我认为服务器去年从Linux交换到Windows操作系统,但我的服务器pipe理员得到它一切正常。 有没有什么不寻常的,他可能错过了,与2010年有关?
Spamassassin中有一个与正则expression式有关的2010年的bug。 也许你是相似的。 我build议你重新检查一下与date有关的假设。 我正在投票将此问题移到Stackoverflow。
除非CGI脚本截至2010年1月1日,否则我坚信这与2010年有关。
请参阅Perl和CGI FAQ的 Q3.4 问题 ,并仔细检查此Perl CGI脚本debugging列表中的项目。
使用diff工具来比较旧版本和新版本,以validation源代码中没有其他东西是不同的。
添加Perl Cgi:Carp支持来帮助debugging安装的脚本。
使用use warnings并在Perl脚本中use strict
使用perl -c script.cgitesting(请参阅: perldoc perlrun )