我刚刚将运行 Bugzilla 安装的服务器从 Ubuntu 14.04 升级到 16.04(同时将 Perl 5.18 升级到 5.22)。Bugzilla 在 Apache 中配置为虚拟主机。升级后,访问 Bugzilla 会返回“内部服务器错误”
内部服务器错误
服务器遇到内部错误或配置错误,无法完成您的请求。
请联系服务器管理员,告知他们此错误发生的时间,以及在发生此错误之前您执行的操作。
有关此错误的更多信息可能在服务器错误日志中提供。Apache/2.4.18 (Ubuntu) 服务器位于 Bugzilla-URL 端口 80
Apache 错误日志/var/log/apache2/error.log
只有一行与此错误相关:
[Tue Apr 30 08:34:21.227311 2019] [cgid:error] [pid 90210:tid 86753098675309] [client url:port] End of script output before headers: index.cgi
我还没能找到有关此错误的全部信息。它似乎与/var/www/bugzilla/index.cgi
系统中确实存在的文件有关:
$ sudo ls -Alh /var/www/bugzilla/index.cgi
-rwxr-x--- 1 root www-data 2.2K May 12 2016 /var/www/bugzilla/index.cgi
一个人这个帖子同样在升级到 Ubuntu 16.04 后,Gitweb 抛出了该错误行。在这种情况下,Perl 升级 5.18 -> 5.22 删除了CGI.pm
包提供的perl 模块libcgi-pm-perl
;安装libcgi-pm-perl
修复了它。但是,我没有收到有关缺少模块的任何错误消息,并且libcgi-pm-perl
已经安装在我的系统上(Ubuntu 主版本 v4.26-1)。
关于此的另一个答案StackOverflow 问题指出了 Bugzilla 的checksetup.pl
实用功能,听起来很有用。然而,当我尝试运行它时,出现了段错误:
# perl /var/www/bugzilla/checksetup.pl
Segmentation fault (core dumped)
那么,我现在该如何诊断问题呢?
请注意,我更感兴趣的是确定哪里出了问题,而不是让 Bugzilla 正常工作。我欢迎并感谢任何有关故障排除的想法,但如果您想提出解决方案,我不会尝试,除非您也能告诉我您认为哪里出了问题以及为什么您的建议会有所帮助。
先感谢您!
答案1
我在 openSUSE Leap 15.1 上找到的解决方案如下:Bugzilla checksetup.pl 因分段错误而停止:
- 重命名 Bugzilla 目录中的 lib 文件夹
- 运行./install-modules –all
- 再次运行 ./checksetup.pl
请注意,在步骤 2 中,我必须运行./install-module.pl -all