除了基于文本的依赖关系图,Bugzilla 还支持使用名为 'dot' 的软件包生成依赖关系图。具体工作方式由 'webdotbase' 参数控制,该参数可以有三个值
指向 'dot' 命令的完整文件路径(GraphViz 的一部分)将在本地生成图形
指向 webdot 软件包安装的 URL 前缀将在远程生成图形
空值将禁用依赖关系图功能。
因此,要使其工作,请安装 GraphViz。 如果这样做,您需要在 Apache 中启用服务器端图像地图。 或者,您可以设置 webdot 服务器,或使用 AT&T 公共 webdot 服务器(webdotbase 参数的默认值)。 请注意,如果 Bugzilla 只能通过 HTTPS 访问,则 AT&T 的服务器将无法工作。
只要您安装了 GD 和 Graph::Base Perl 模块,您不妨启用 Bugzilla 出色的错误报告图表。
添加如下 cron 条目来运行collectstats.pl每天凌晨 0 点 5 分
bash# crontab -e |
5 0 * * * cd <your-bugzilla-directory> ; ./collectstats.pl |
两天后,您将能够从“缺陷报告”页面查看缺陷图表。
现在您已经有了一个功能齐全的 Bugzilla,但是如果缺陷不烦人,那有什么用呢? 为了让这些缺陷更烦人,您可以设置 Bugzilla 的自动抱怨系统,以向那些将缺陷留在 NEW 状态而未对其进行分类的工程师抱怨。
这可以通过添加以下命令作为每日 cron 条目来完成(有关帮助,请参阅 crontab 手册页)
cd <your-bugzilla-directory> ; ./whineatnews.pl |
![]() | 根据您的系统,crontab 可能有多个手册页。 以下命令应引导您找到最适合此目的的页面
|
![]() | 关于在 Bugzilla 中使用 LDAP 身份验证选项的信息已过时,作者不知道有任何人对其进行过测试。 请谨慎对待。 |
Bugzilla 现有的身份验证方案使用电子邮件地址作为主要用户 ID,并使用密码来验证该用户。 Bugzilla 中所有需要处理用户 ID 的地方(例如,分配缺陷)都使用电子邮件地址。 LDAP 身份验证建立在此方案之上,而不是替换它。 初始登录使用 LDAP 目录的用户名和密码完成。 然后,它从 LDAP 获取电子邮件地址,并使用此电子邮件地址在标准 Bugzilla 身份验证方案中无缝验证。 如果您的 Bugzilla 系统中已存在此地址的帐户,它将登录到该帐户。 如果不存在该电子邮件地址的帐户,则会在登录时创建一个帐户。 (在这种情况下,Bugzilla 将尝试使用“displayName”或“cn”属性来确定用户的全名。) 身份验证后,所有其他与用户相关的任务仍由电子邮件地址处理,而不是 LDAP 用户名。 您仍然通过电子邮件地址分配缺陷,通过电子邮件地址查询用户等。
将 LDAP 用于 Bugzilla 身份验证需要 Mozilla::LDAP(又名 PerLDAP)Perl 模块。 Mozilla::LDAP 模块反过来需要 Netscape 的 Directory SDK for C。 安装 SDK 后,然后安装 PerLDAP 模块。 Mozilla::LDAP 和 Directory SDK for C 均可从 mozilla.org 下载。
仅当您将使用 LDAP 目录进行身份验证时,才将参数 'useLDAP' 设置为 "On"。 设置此参数时要非常小心; 如果您设置了 LDAP 身份验证,但没有设置有效的 LDAP 目录,则一旦您注销,您将无法重新登录 Bugzilla。 (如果发生这种情况,您可以手动编辑 data/params 文件,并将 useLDAP 设置回 0 来重新登录。)
如果使用 LDAP,您必须设置三个附加参数: 将 LDAPserver 设置为您的 LDAP 服务器的名称(和可选端口)。 如果未指定端口,则默认为默认端口 389。 (例如“ldap.mycompany.com”或“ldap.mycompany.com:1234”)将 LDAPBaseDN 设置为用于在 LDAP 目录中搜索用户的基本 DN。 (例如“ou=People,o=MyCompany”)uid 必须在此处指定的 DN 下是唯一的。 将 LDAPmailattribute 设置为 LDAP 目录中包含主要电子邮件地址的属性的名称。 在大多数可用的目录服务器上,这是“mail”,但您可能需要更改它。
Bugzilla 有可能执行恶意 Javascript 代码。 由于国际化方面的考虑,我们无法合并必要的代码更改以满足 http://www.cet.org/tech_tips/malicious_code_mitigation.html/#3 中提到的 CERT 咨询要求。 如果您的 Bugzilla 安装是为英语使用者准备的,则从 UNIX 命令 shell 执行以下代码片段将纠正此问题。 与往常一样,在进行更改之前,请确保您的 Bugzilla 安装具有良好的备份,并且我建议您在执行脚本之前了解脚本的作用。
bash# perl -pi -e "s/Content-Type\: text\/html/Content-Type\: text\/html\; charset=ISO-8859-1/i" *.cgi *.pl |
此单行命令所做的只是搜索所有 "Content-type: text/html" 实例,并将其替换为 "Content-Type: text/html; charset=ISO-8859-1"。 此规范可防止浏览器上可能发生的 Javascript 攻击,并建议所有英语网站使用。 对于非英语 Bugzilla 网站,我建议将上面的 "ISO-8859-1" 更改为 "UTF-8"。
注意:不建议使用 <meta> 标签设置字符集,因为 Netscape 4.x 中存在一个错误,该错误会导致以这种方式标记的页面加载两次。
为了增强您的 Bugzilla 安装的安全性,Bugzilla 的checksetup.pl脚本将生成 .htaccess 文件,Apache 网络服务器可以使用这些文件来限制对 bugzilla 数据文件的访问。 这些 .htaccess 文件不适用于 Apache 1.2.x - 但这存在安全漏洞,因此无论如何您都不应使用它。
![]() | 如果您正在使用 webdot 服务的备用提供商进行图形处理(如查看时所述editparams.cgi在您的网络浏览器中),您将需要更改以下位置的 IP 地址data/webdot/.htaccess到您正在使用的 webdot 服务器的 IP 地址。 |
默认的 .htaccess 文件可能无法提供足够的访问限制,具体取决于您的 Web 服务器配置。 务必检查您的 Bugzilla 目录的 <Directory> 条目,以便.htaccess文件被允许覆盖 Web 服务器默认值。 例如,假设您的 Bugzilla 安装安装到/usr/local/bugzilla。 您应该在您的httpd.conf文件中包含以下 <Directory> 条目
<Directory /usr/local/bugzilla/> Options +FollowSymLinks +Indexes +Includes +ExecCGI AllowOverride All </Directory> |
上面重要的部分是 "AllowOverride All"。 如果没有它,则.htaccess由以下文件创建的checksetup.pl文件将没有足够的权限来保护您的 Bugzilla 安装。
如果您正在使用 Internet Information Server (IIS) 或另一个不遵守.htaccess约定的 Web 服务器,则可以通过编辑localconfig并设置$create_htaccess变量为0.
用户可能因错误或故意连续多次访问数据库,这可能会导致其他用户的访问速度非常慢。 如果您的 Bugzilla 安装遇到此问题,您可以安装 Apache 模块mod_throttle,该模块可以按 IP 地址限制连接。 您可以从 http://www.snert.com/Software/Throttle/ 下载此模块。 按照说明将其安装到您的 Apache 安装中。 此模块仅适用于 Apache Web 服务器! 您可以使用此模块提供的 ThrottleClientIP 命令来实现此目标。 有关更多信息,请参阅模块说明。