项目组去年年底配置了两台服务器,其中的一台安装了Ubuntu 9.10 Server。由于项目组采用Bugzilla作为bug生命周期的管理,需要把Bugzilla迁移了过来。以下记录迁移过程备忘。
原服务器 Ubuntu 8.04 Desktop , Bugzilla 3.2.2
新服务器 Ubuntu 9.10 Server , --
参考网上部分方案,打算采用比较稳妥的方式,形成如下思路
1 备份mysql数据库
将数据库bugs备份到文件bugsdata.sql
$mysqldump bugs > bugsdata.sql
再修改bugsdata.sql,在文件头加两行
create database if not exists bugs;
USE bugs;
2 在已安装mysql的9.10Server上恢复数据库
此步骤一定在第5步之前,因为Bugzilla的checksetup.pl会自动升级数据库脚本从3.2.2到3.4.4
3 打包Bugzilla 文件夹并恢复到Ubuntu 9.10上 (此步骤浏览时报错,忘了具体错误,比较难处理,转到步骤3)
4 下载最新Bugzilla 3.4.4, 重新编译。 至于为什么不用ubuntu自带的Bugzilla以及如何下载编译配置Bugzilla,请参见这篇博文Ubuntu 8.04 安装 Bugzilla 3.2.2
为了防止版本文件夹的变化而修改apache虚拟目录文件,可以创建symbolic link,比如解压后的文件夹为 Bugzilla_3.4.4 可以用 ln –s Bugzilla Bugzilla_3.4.4 创建名为Bugzilla的symbolic link,在apache虚拟目录的配置中可以使用该名称,将来出现新版本只更新Bugzilla的指向即可。
5 运行 ./checksetup.pl 的时候,按照提示下载缺少的部分模块,总是有3个模块安装不上
Checking perl modules...
Checking for DateTime (v0.28) not found
Checking for DateTime-TimeZone (v0.71) not found
Checking for Template-Toolkit (v2.22) not found
解决方法 sudo apt-get install libmysql++-dev (参考了ubuntuforums.org里一位老兄的帖子Installing bugzilla and DateTime problem)
6 接下来就是按照提示修改Bugzilla的localconfig
$webservergroup = ‘www-data’;
# The DNS name of the host that the database server runs on.
$db_host = ‘localhost’;
# The name of the database
$db_name = ‘bugs’;
# Who we connect to the database as.
# The DNS name of the host that the database server runs on.
$db_host = ‘localhost’;
# The name of the database
$db_name = ‘bugs’;
# Who we connect to the database as.
$db_user = ‘bugs’;
$db_pass = ‘admin’;
注意其中的webservergroup 我设置为了www-data,注意这个是ubuntu的运行apache的用户组(不同于其他linux发行版的apache用户组)
7 别忘了在apache下配置该虚拟目录,ubuntu自带的apache可以直接修改的/etc/apache2/sites-enabled下面的文件加入
Alias /bugzilla “/var/www/bugzilla″
<Directory “/var/www/bugzilla″>
Options +ExecCGI
AllowOverride Limit
DirectoryIndex index.cgi
AddHandler cgi-script .cgi
</Directory>
不过我们的服务器使用了自己下载编译的apache2,因为该服务器还做为svn的源代码管理服务器。我在ubuntu 9.10 server 下的apache在启用ssl的时候总是报undefined symbol apr_ldap_ssl_init错误,此处我怀疑可能是ubuntu9.10 server的问题,我在虚拟机ubuntu 8.04 desktop下没有出现此问题。
apache2的安装目录更改为/usr/local/apache2,在/usr/local/apache2/conf/httpd.conf中加入上述内容。
关于apache2的下载编译以及使用ssl的SVN请浏览Ubuntu 9.10 Server 配置基于SSL的Subversion
8 sudo /etc/init.d/apache2 restart (自带的apache2)
或者
cd /usr/local/apache2/bin (编译的apache2)
sudo ./httpd –k restart