bugzilla迁移过程的详细介绍

bugzilla迁移过程的详细介绍

本文简要介绍了将已经在正常运行的bugzilla迁移到另外机器的过程,通过备份修改过的文件和数据库,可以保持数据,并能比全新安装bugzilla节省一些时间。

之前组里因为项目需要,我配置了一个bugzilla,也遇到一些小小的麻烦,于是对过程作了一些记录, 运行几个月后,又从外网迁移到内网,也作了一些记录,于是形成了这两篇短文《bugzilla安装配置过程小记》和《bugzilla迁移过程小记》。

本文尝试着将原来建立在YourIP:8080/bugzilla迁移到NewIP/bugzilla,希望保证原有数据不丢失,另外原有的bugzilla的一些脚本也做过修改,希望能重用原有的修改。
因此思路是拷贝源机器的bugzilla安装后的文件夹和数据库,迁移到新机器,再改少量参数。

预先准备:
1。将YourIP上的/var/www/html/bugzilla*文件夹备份到bugzilla-2.18.4-installed.tar.gz
$tar -zcf bugzilla-bak.tar.gz /var/www/html/bugzilla
2。将数据库bugs备份到文件bugsdata.sql
$mysqldump bugs > bugsdata.sql
再修改bugsdata.sql,在文件头加两行
create database if not exists bugs;
USE bugs;


现在要在NewIP/bugzilla上恢复bugzilla,则应该:

预先准备:确保目标系统已经安装apache2, mysql, perl 5.6以上

1. 解压bugzilla-2.18.4-installed.tar.gz到/var/www/html下
$tar -zxf bugzilla-bak.tar.gz /var/www/html/bugzilla
2. 修改属主为apache:apache
3. 修改/etc/httpd/conf/httpd.conf,这步参考了《bugzilla安装配置过程小记》中的修改
注意:现在用80端口
修改端口:Listen 80
允许执行cgi:AddHandler cgi-script.cgi

增加目录:
Alias /bugzilla/ "/var/www/html/bugzilla-2.18.4"
<Directory "/var/www/html/bugzilla-2.18.4">
Options ExecCGI
AllowOverride Limit
</Directory>

配置DirectoryIndex,在那一行的最后加上index.cgi,以便在进入Bugzilla目录时可以查找 index.cgi 文件:
DirectoryIndex index.html index.html.var index.cgi

修改默认字符集以支持中文:
AddDefaultCharset 把 ISO-8859-1 改成 GB2312

可执行文件是 /usr/sbin/httpd

4. 更新perl
perl -MCPAN -e install 'Bundle::Bugzilla'
完成后用bugzilla下的checksetup.pl检查是否还需要安装其他模块。

另外安装SASL,以支持邮件发送
/usr/bin/perl -MCPAN -e 'install "Authen::SASL"'

5. 恢复数据库
执行mysql -uroot -p,进入mysql运行环境

建数据库bugs:create database if not exists bugs;

授权:
GRANT SELECT,INSERT,UPDATE,DELETE,INDEX, ALTER,CREATE,DROP,
REFERENCES ON bugs.* TO
bugs@localhost IDENTIFIED BY 'VSPwd4Bugs';
FLUSH PRIVILEGES;

导入数据: 退出mysql后,从命令行执行
$ mysql -uroot -p < bugsdata.sql

6. 修改邮件等的信息
修改文件bugzilla-2.18.4/data/params
尤其是其中的urlbase字段,从
'urlbase' => 'http://YourIP:8080/bugzilla/',
改为
'urlbase' => 'http://NewIP/bugzilla/',

7. 重启apache
/sbin/service httpd restart