希望您能帮到我,我只是个初学者!我列出了一些可能不相关的额外细节。
我使用 ASCII 格式的 FTP95Pro 将 cgi 脚本上传到 Apache/2.2.10 服务器上的本地/个人目录。在终端会话中,使用 perl 在我的 Web 服务器上正确执行了脚本。因此我的代码没有致命的语法错误。
网页“操作”/cgi-bin/ 中的每个 cgi 脚本。有符号链接将系统目录文件链接到我的本地目录文件。已启用 FollowSymLinks(不确定如何启用)。权限正确(755)。显然,此设置没有改变。
多年来,这些脚本一直完美执行,直到 2010 年。但现在,在 2010 年,我用新的脚本/文件替换了工作脚本,现在具有完全相同的文本、文件名和权限。只有日期(上次修改)发生了变化。但现在我收到了 500 内部服务器错误,无法确定原因。我的服务器管理员认为我有代码错误。但代码自去年以来没有改变,并且它在使用 perl myscript.cgi 的 Web 服务器控制台上运行良好(尽管没有参数)
您能想到哪些东西可能已经发生了变化?我对新的十年心存疑虑。我认为服务器去年从 Linux 换成了 Windows 操作系统,但我的服务器管理员让一切运行正常。他是否可能错过了与 2010 年相关的一些不寻常的事情?
答案1
Spamassassin 中有一个与正则表达式相关的著名 2010 年错误。也许你的也有类似的问题。我建议你重新检查代码中与日期相关的假设。我投票将此问题移至 Stackoverflow。
答案2
除非 CGI 脚本在 2010 年 1 月 1 日损坏,否则我强烈怀疑它与 2010 年有关。
请参阅Perl 和 CGI 常见问题解答,并仔细检查此Perl CGI 脚本调试列表。
使用
diff
工具比较新旧版本,以验证源代码中没有其他差异。添加 Perl电脑端:鲤鱼支持帮助调试已安装的脚本。
use warnings
在use strict
Perl 脚本中使用测试使用
perl -c script.cgi
(参见:perldoc perlrun
)