最近因为项目需要,需要使用Bugzilla来管理代码缺陷,于是尝试在我的Ubuntu14.04系统上安装Bugzilla。
安装的过程一波三折,开始时跟着一些博客基本完成了全部操作,然而最后访问主页的时候报404错误,而apache服务器是启动的。这个问题困扰了很久。
后来找到bugzilla的官方教程,跟着一步步做下来终于成功了。相信很多朋友有同样的需求,就把我的一些经验写下来希望能对大家有一些帮助。
为了尊重原教程,我按照原教程的标题进行介绍。
1、硬件准备
准备好一台电脑,虽然像是废话,不过确实是教程里提到的……
2、安装操作系统
在这里自然就是Ubuntu14.04咯
3、转换成root用户
后续的很多命令都需要root权限,因此在这里转换成root身份比较方便:
sudo su
当然啦,如果不习惯这样的话,也可以在后面执行命令提示权限不足时在命令前面加上sudo
4、前提准备
Bugzilla是用Perl语言开发的,因此如果想安装Bugzilla必须要提前准备Perl环境:
apt-get install git nano
apt-get install apache2 mysql-server libappconfig-perl libdate-calc-perl libtemplate-perl libmime-perl build-essential libdatetime-timezone-perl libdatetime-perl
libemail-sender-perl libemail-mime-perl libemail-mime-modifier-perl libdbi-perl libdbd-mysql-perl libcgi-pm-perl libmath-random-isaac-perl libmath-random-isaac-xs-perl
apache2-mpm-prefork libapache2-mod-perl2 libapache2-mod-perl2-dev libchart-perl libxml-perl libxml-twig-perl perlmagick libgd-graph-perl libtemplate-plugin-gd-perl
libsoap-lite-perl libhtml-scrubber-perl libjson-rpc-perl libdaemon-generic-perl libtheschwartz-perl libtest-taint-perl libauthen-radius-perl libfile-slurp-perl
libencode-detect-perl libmodule-build-perl libnet-ldap-perl libauthen-sasl-perl libtemplate-perl-doc libfile-mimeinfo-perl libhtml-formattext-withlinks-perl
libfile-which-perl libgd-dev libmysqlclient-dev lynx-cur graphviz python-sphinx rst2pdf
注意,这是官网教程的原话,其中第一句是安装一个文本阅读器nano,这一步不重要,只要你的机器有文本阅读器就好,比如gedit和vim等都可以。
而后面的一句话是一个安装命令:apt-get install ,安装的前两项是apache2服务器和mysql数据库,因为Bugzilla需要使用数据库来保存bug信息,如果之前已经安装过这两项了就可以跳过直接安装后面的。
5、下载Bugzilla
官方给的方法是从github 中的Bugzilla项目下载压缩文件然后解压到 /var/www/html 目录
命令如下:
cd /var/www/html
git clone --branch release-X.X-stable https://github.com/bugzilla/bugzilla bugzilla
当然自己下载压缩包然后解压到指定目录也可以,下载链接: http://www.bugzilla.org/
需要注意的是解压目录必须是 /var/www/html 否则就会访问不到
6、配置MySQL
第一步:编辑配置文件:my.cnf
nano /etc/mysql/my.cnf
还是之前说的那样,使用什么文本阅读器都可以,当然我习惯使用gedit(使用windows留下的喜欢图形化的后遗症……),如果权限不足就加上sudo
然后执行两步操作:
1、在文件的第52行把配置改成 max_allowed_packet=100M
2、在第32行插入这句话:ft_min_word_len=2
我在自己配置的时候配置了第二步发现后面在启动mysql的时候会报错:未知的变量:ft_min_word_len,因此我没有执行第二步,目前还没有发现有什么影响。
接着执行如下命令:
mysql -u root -p -e "GRANT ALL PRIVILEGES ON bugs.* TO bugs@localhost IDENTIFIED BY '$db_pass'"
这里是创建一个新的用户叫做bugs,然后设置密码,把$db_pass这几个字符替换成你希望的密码,比如我设置成了bugs
这时候重启mysql:
service mysql restart
如果报错,提示需要修改一些配置信息,则执行第9步
7、配置Apache
执行:
nano /etc/apache2/sites-available/bugzilla.conf
还是之前的说法,使用任何文本编辑器都可以
这个文件应该是空的,然后将以下代码粘贴进去:
ServerName localhost
<Directory /var/www/html/bugzilla>
AddHandler cgi-script .cgi
Options +ExecCGI
DirectoryIndex index.cgi index.html
AllowOverride All
</Directory>
之后执行如下命令:
a2ensite bugzilla
a2enmod cgi headers expires
service apache2 restart
如果有报错就按照报错信息操作应该就可以了,实在忘了报错信息是什么,也忘了截图……
8、检查
因为Bugzilla的运行需要依赖许多Perl模块,如果没安装的话就无法运行,项目提供了检测哪些所需模块还未安装的工具,首先进入bugzilla目录下:
cd /var/www/html/bugzilla
然后执行 :
./checksetup.pl
如果提示某些模块没有安装的话,就用报错信息中提供的命令下载相关模块即可
9、编辑localconfig文件
nano localconfig
第29行
$webservergroup
的值设置为:
www-data
第67行$db_pass
的值设置为之前第6步创建bugs用户时设置的密码
10、再一次检查
执行如下命令:
./checksetup.pl
如果正确安装了的话应该会提示输入邮箱、用户名和密码,这里输入的用户名就被设置为administrator
11、测试是否安装成功
执行如下命令:
./testserver.pl http://localhost/bugzilla
如果成功的话提示信息是这样的:
12、通过网页来访问
使用如下路径进行访问:
http://localhost/bugzilla
如果成功的话应该会显示Bugzilla的主页:
注意:之前我一直用的是火狐浏览器,发现访问时总是显示这样的页面:
我也不知道为什么,可能是对火狐支持不好……
之后换用chrome,终于成功!
最后,附上官方教程地址:
http://bugzilla.readthedocs.io/en/latest/installing/quick-start.html