项目组去年年底配置了两台服务器,其中的一台安装了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
这半年的项目一直在用jquery,感觉确实很方便,这几天有点时间,把wp的theme处理了一下,原来的theme调用的是自己的jquery,而没有使用wp后台管理界面的jquery,于是处理了一下,用fiddler抓了一下,现在清静了。
GET http://www.basilwang.net/wp-content/themes/redevo_newsblue/style.css
304 Not Modified
GET http://www.basilwang.net/wp-includes/js/jquery/jquery.js?ver=1.2.6
304 Not Modified
GET http://www.basilwang.net/wp-includes/js/jquery/ui.core.js?ver=2.7.1
304 Not Modified
GET http://www.basilwang.net/wp-includes/js/jquery/ui.tabs.js?ver=2.7.1
304 Not Modified
GET http://www.basilwang.net/wp-content/themes/redevo_newsblue/images/search.png
304 Not Modified
具体写法,参考了网上的一些内容,有些出入,可能是版本的问题,修改了一下,ok
在themes/*** 的header.php文件的<head>中<?php wp_head(); ?>前加上
<?php wp_enqueue_script(’jquery’,'/wp-includes/js/jquery/jquery.js’); ?>
<?php wp_enqueue_script(’uicore’,'/wp-includes/js/jquery/ui.core.js’); ?>
<?php wp_enqueue_script(’uitabs’,'/wp-includes/js/jquery/ui.tabs.js’); ?>
这样就能利用wp的js文件了。(用<?php wp_enqueue_script(’jquery’); ?>不行,不知为什么,估计是版本的问题)
另外在ubuntu+firefox下,可以使用httpfox来查看http信息。
最近一段时间发现垃圾评论非常多,清明节三天假,垃圾评论就有1千多条,My god, 删到我手疼,于是只得求助于反垃圾评论软件,以前安装过一个发表评论需要输入验证码的插件,有童鞋评论说不好用,这次尝试了Aksimet。通过这几天的观察,效果很是不错,已经帮我拦截了600多的Spam了,好像只有两三个漏网的,不过还没有机会测试一下正常评论的识别率,请童鞋们踊跃发言,帮俺测试一下。
今天有点空,看着老所博客上的评论很炫,问了一下,是用了mail to commenter插件,安装试用了一下,还真是不错。
不过说起安装的过程,还真是有点曲折。具体问题就是安装上以后无论怎么设置就是发不出邮件,而Mail to Commenter Options页的邮件发送可以发出测试邮件,另外我一直能收到网站评论的邮件通知,也应该不是空间托管商的问题。
于是在Ubuntu下用NetBean调试代码,跟了一晚上。其中花了2个多小时又看了一遍add_action,do_action,add_filter,apply_filter的工作原理,主要是对WordPress不熟,不过这次基本是看明白了,希望下次自己也能写一些简单的插件。不过好歹问题让我找到了,在该插件的源代码mailtocommenter.php中发现了一个$admin_email,这个变量取得是 常规设置中的 电子邮箱地址一项, 关于该地址的描述是“该地址只用于 Blog 管理,比如新用户通知等”,我原来用的是我的163邮箱,把它改成以我的域名结尾的邮箱地址,也就是wordpress@basilwang.net 这里写该域名下的其他的邮件名应该也可以,问题解决。
不知道这个算不算是该插件的bug,或者应该给出更醒目的提示才好。
最后我把该插件的邮件通知使用权限选项设置成允许任何人使用,赫赫,试试看吧,感觉真的不错!
P.S. 已经把网站的源代码在Ubuntu上用CVS管理了,以后也不怕乱改代码了,另外最近还想把网站上同时用的两个版本的JQuery和并成一个,顺便再学习一下JQuery.
现在是凌晨3点,弄了将近8个小时,才把新的主题应用上去,这个主题用的Red Evolution的模板,采用了jquery,不过原版在ie7.0下报一个脚本错误,看了很长时间的源代码,鼓捣了好一会,jquery最基本的原理是看明白了,更高兴的是脚本错误的问题也解决了。现在在ie7.0和firefox3.0下面都没有问题,手头没有ie6.0和firefox2.0改天测测。而且现在完全做到了在虚拟机的ubuntu下建lamp环境测试网站程序,有空再把源代码svn也整上去,爽!!
by the way,以后要好好学习jquery了,争取能用到以后的项目中。