我刚刚入手UNIX系统学习,学着安装配置Bugzilla。被不少的问题折腾着浪费不少时间,查了不少资料,最终还是圆满成功了。在这作个总结,希望这篇博文能帮助初学者。欢迎各位朋友共同探讨学习。
emial:zongguo.zhang@gmail.com
欢迎转载,请注明出处。
bugzilla安装工具 apache2+mysql5.1+perl+bugzilla3.2.2
Step by step
安装篇
1.安装apache2
Ubuntu就可以直接用命令行可以安装 #sudo apt-get install apache2 系统自动安好,打开浏览器在地址栏输入http://ip (你的ip地址或者127.0.0.1)就会在 页面上出现 “ It works”则表明apache安装成功。
出了问题的话,进入/etc/apache2 目录下 用#vi httpd.conf打开文件添加ServerName 127.0.0.1:80即可.
2.安装mysql
用命令#sudo apt-get install mysql-server 系统自动安装,我装的是mysql5.1.
安装时要输入密码这是进入root的密码(建议用你ubuntu系统密码),(mysql -uroot -p密码),然后用上述命令行来登录,登录成功显示版本信息和 mysql> ,OK!
mysql 服务启动/停止/重启命令#service mysql start/stop/restart.
3.安装Bugzilla
bugzilla到官网去下载(一般为tar.gz包),这个不用我说了吧!不懂google一下,然后cd到下载目录解压包#tar -xzf bugzilla.xx.xx.tar.gz ,再改名#mv bugzilla.xx.xx bugzilla ,再移动到/var/www下面#mv bugzilla /var/www 完毕~~~~ok!
4.安装perl
先进入到bugzilla目录#cd /var/www/bugzilla,在命令行输入#./checksetup.pl命令检查一下还有哪些perl模块没有安装,因为在系统自动安转apache和mysql时就已安装一部分,
Checking perl modules...
Checking for CGI.pm (v3.33) ok: found v3.49
Checking for TimeDate (v2.21) ok: found v2.24
Checking for PathTools (v0.84) ok: found v3.31
Checking for DBI (v1.41) ok: found v1.611
Checking for Template-Toolkit (v2.15) ok: found v2.22
Checking for Email-Send (v2.00) ok: found v2.198
Checking for Email-MIME (v1.861) ok: found v1.903
Checking for Email-MIME-Modifier (v1.442) ok: found v1.903
Checking available perl DBD modules...
Checking for DBD-Pg (v1.45) not found
Checking for DBD-mysql (v4.00) ok: found v4.012
Checking for DBD-Oracle (v1.19) not found
第一组要全装,第二组就看你装的什么数据库了,这里装的是mysql就选DBD-mysql,not found表示没有安装,用下面提的COMMANDS TO INSTALL:需要什么就复制粘贴就可安装好。
到这里Buglilla所需要的组件全安装完毕,第一篇OK!
配置篇
1.apache2配置
A.修改 apache的配置文件apache2.conf:进入/etc/www/apache2目录下面 vi /apache2.conf 找到ServerRoot,修改ServerRoot 为bugzilla所在的目录“/var/www”,即如下:(注释原来的添加修改)
#ServerRoot "/etc/apache2"
ServerRoot "/var/www"
B.修改apache的配置文件apache2.conf: 设置 apache访问bugzilla的用户及用户组,本安装中将用户及用户组都设置为www-data:如下:
#User ${APACHE_RUN_USER}
#Group ${APACHE_RUN_GROUP}
User www-data
Group www-data
C.修改apache的配置文件apache2.conf:添加bugzilla所在目录:即在apache.conf文件末添加如下
Alias /bug/ "/var/www/bugzilla"
<Directory "/var/www/bugzilla">
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI +FollowSymLinks
DirectoryIndex index.cgi
AllowOverride None
Order allow,deny
Allow from all
</Directory>
D: 修改 www-data对bugzilla的访问权限
chown -R www-data:www-data /var/www/bugzilla
最后,重启apache2服务 #/etc/init.d/apache2 restart ~~~~~OK!
2.mysql配置
用#mysql -uroot -p密码 登录mysql 。
首先,创建数据库bugs mysql> create database bugs;
其次,创建用户bugs mysql> use mysql;
再次,授权 mysql> GRANT SELECT, INSERT,UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.*TO bugs@localhost IDENTIFIED BY '前面root密码';
最后,mysql> FLUSH PRIVILEGES;
退出mysql:mysql>exit或quit
注:mysql命令以(;)结束,不区分大小写。
3.Bugzilla配置
先#cd /var/www/bugzilla 运行bugzilla目录下的checksetup.pl (#.checksetup.pl)自动生成loacalconfig文件(原本bugzilla目录里没有),打开文件localconfig(#vi localconfig),配置如下:
$webservergroup = 'www-data';
$db_driver = 'mysql';
$db_host = 'localhost';
$db_name = 'bugs';
$db_user = 'bugs';
$db_pass = '密码'; 注意:为了防止出错,建议所有密码都设置为ubuntu系统密码。
其它不变。
现的配置文件都设置完成,重启apache2 #/etc/init.d/apache2 restart
重启mysql #service mysql restart
重新运行checksetuo.pl #./checksetup.pl
结果会出现如下错误:
SESSION variable 'max_allowed_packet' is read only. Use SET GLOBAL to assign
the value
上面错误的原因是bugzilla3.3.2对mysql5.1及以上新版本的兼容性不好。需要修改几处源码文件Bugzilla/Config/Attachment.pm和Bugzilla/Config/Common.pm等,地址:https://bug480001.bugzilla.mozilla.org/attachment.cgi?id=364818其中(-)表示删除(+)表示添加。
bugzilla的预编译和生成相应的配置信息等,如下提示:
Precompiling templates...done.
Fixing file permissions...
Initializing "Dependency Tree Changes" email_setting ...
Marking closed bug statuses as such...
Now filling the 'status_workflow' table with valid bug status transitions...
Adding foreign key: attachments.submitter_id -> profiles.userid...
Adding foreign key: bugs_activity.who -> profiles.userid...
Adding foreign key: bugs_fulltext.bug_id -> bugs.bug_id...
·
·
·
并且会提示输入以下信息:
Enter the e-mail address of the administrator: test@uestc.edu.cn
Enter the real name of the administrator: 用户名
Enter a password for the administrator account: password
Please retype the password to verify: password
根据以上提示输入bugzilla管理员的相关信息
成功后,在浏览器输入:http://127.0.0.1/bugzilla会出现bugzilla的管理主页面
应用篇
Bugzilla网上有很多使用文档,我就不再细述。主要想说一下bugzilla发不出去邮件的问题。
配置smtp。
登录后点击administrator进行参数设置,点击parameter进入,再点击email设置。
mail_delivery_method : smtp
mailfrom : 设置成我的真实邮箱 例 me@163.com 可能有的mail server会验证邮箱的真实性以及是否属于该mail server
sendmailnow : on
smtpserver : 设置成smtp authentication服务器 例smtp.163.com
smtp_username : 我的邮箱 例 me@163.com
smtp_password : 密码
注意后两个parameters(选项)是2.22.1 debian所没有的。
但是接下来我在测试发送邮件的时候总是报
“The new value for smtp_username is invalid: Error requiring
Authen::SASL: ‘Can’t locate Authen/SASL.pm in @INC (@INC contains: .
lib c:/perl/site/lib c:/perl/lib) at (eval 84) line 3. ‘.”
这个错误要求我们安装Authen::SASL 可以回到checksetup.pl处按照提示安装,但是我在这里却出现了问题。
由于之前已经将bugzilla3.2.2文件夹的访问权限设置给了www-data组,现在无法进入到bugzilla3.2.2文件夹内执行任何操作,总报permissions access
采用 sudo –s –H 并输入密码,可以以root权限进入该文件夹操作,安装好Authen::SASL后,发送邮件功能ok。