您的位置:首页 > 其它

在Ubuntu Server上安装ReviewBoard

2009-02-23 11:19 309 查看
回家之前在实验室的服务器上成功安装了ReviewBoard,为项目组今后的代码审查提供了很好的一个平台。一个多月过去了,现在终于有时间把安装过程做个记录,以备忘。

1. 背景介绍和安装目标

关于ReviewBoard的介绍,详见我的前一篇日志,这里不再赘述。我们服务器的操作系统是Ubuntu Server,已经安装了mysql和apache,此次安装的目的是在实验室局域网内安装ReviewBoard,要求支持Git格式的代码审查。

2. 准备工作

ReviewBoard是用Django开发的,所以要首先安装Django.Django其实就是一系列的python软件包,安装命令如下:

$ sudo apt-get install build-essential subversion python-imaging python-flup python-dev memcached libmemcache-dev

然后手动安装cmemcache(Python的memcached绑定):

到这里 http://gijsbert.org/downloads/cmemcache/ 下载最新版; 然后从源码安装.

由于服务器上原来的mysql没有python模块,所以要安装之:

$ sudo apt-get install python-mysqldb

此外,还要安装Git:

$ sudo apt-get install git-core

到现在,准备工作已经完成了.

3. 安装ReviewBoard

使用python-setuptools这个工具,安装ReviewBoard变得非常容易:

$ sudo apt-get install python-setuptools

$ sudo easy_install ReviewBoard

这里需要提到一个时区问题.第一次安装ReviewBoard的时候,安装过程很顺利,但是最后创建出来的站点的时区是默认的美国太平洋时间,而不是北京时间.当我尝试在站点配置页面修改时区的时候,整个站点就挂了.后来重装了几次,仍然如此.最后找到一个临时的解决办法,就是在创建站点之前,先手动修改这个文件:/usr/lib/python2.5/site-packages/ReviewBoard-0.9.dev_20090115-py2.5.egg/reviewboard/settings.py(注意该目录中的ReviewBoard_xxx.egg部分因你的ReviewBoard版本和安装时间而异),将其中的

TIME_ZONE = 'US/Pacific'

改为

TIME_ZONE = 'Asia/Shanghai'

注意,这里填Asia/Beijing会出错,因为似乎现有的时区名称列表是49年之前制订的,而北京时区则是在伟大祖国成立之后才有的.所以这里你可以填Asia/Shanghai, Asia/Chongqing, 甚至Asia/Urumqi, 但就是不能填Asia/Beijing.修改之后,你就可以继续下面的工作了.

4. 创建ReviewBoard站点

创建你的ReviewBoard站点很容易,只需要一条命令:

$ sudo rb-site install /var/www/reviews.cgcad.com

其中,最后的目录名是你要存放网站相关文件的目录,可以自行选择.该命令会弹出一系列的提示框,指导你一步一步的填写网站信息,如网站名,网站网址,使用何种数据库,数据库名,使用何种缓存机制,等等.其中,重要的一条是数据库,要确保你在运行这条命令之前已经为你的ReviewBoard站点创建了一个数据库实例,而且你所填的用户名和密码对该数据库实例有写权限.

5. 配置ReviewBoard站点

站点创建好了,接下来是相关的配置工作.首先,要保证你的web服务器对网站有关目录有写权限:

$ chown -R www-data:www-data /var/www/reviews.cgcad.com/htdocs/media/uploaded

其中,www-data分别是apache默认的用户名和用户组名,/xx/media/uploaded目录则是存放网站上传文件的目录名.

接下来,将ReviewBoard为你生成的配置文件拷贝到apache目录下:

$ sudo cp /var/www/reviews.cgcad.com/conf/apache_modpython.conf /etc/apache2/conf.d/reviews.conf

这里为了方便,把配置文件的名字改为了reviews.conf,你完全可以保留原来的配置文件名字.

一般情况下,默认的配置文件已经能使一个网站正常工作了.具体到我的情况,由于我想把ReviewBoard站点作为我们实验室一个主站点的分目录的形式(在rb-site install的时候我填的网址也是主站点的网址,而不是一个专门为ReviewBoard建立的新的网址),所以需要修改一下配置文件:

原配置文件:

<VirtualHost *:80>
ServerName reviews.cgcad.com
DocumentRoot /var/www/reviews.cgcad.com/htdocs
# Error handlers
ErrorDocument 500 /errordocs/500.html
# Serve django pages
<Location "/">
PythonPath "['/var/www/reviews.cgcad.com/conf'] + sys.path"
SetEnv DJANGO_SETTINGS_MODULE reviewboard.settings
SetHandler mod_python
PythonHandler django.core.handlers.modpython
PythonAutoReload Off
PythonDebug Off
# Used to run multiple mod_python sites in the same apache
PythonInterpreter reviewboard_reviews_cgcad_com
</Location>
# Serve static media without running it through mod_python
# (overrides the above)
<Location "/media">
SetHandler None
</Location>
<Location "/errordocs">
SetHandler None
</Location>
# Alias static media requests to filesystem
Alias /media /var/www/reviews.cgcad.com/htdocs/media
Alias /errordocs /var/www/reviews.cgcad.com/htdocs/errordocs
</VirtualHost>


修改后的配置文件:

#<VirtualHost *:80>
#       ServerName dev.cgcad.com
#       DocumentRoot /var/www/reviews/htdocs
#
#       # Error handlers
#       ErrorDocument 500 /errordocs/500.html
# Serve django pages
<Location "/reviews">
PythonPath "['/var/www/reviews/conf'] + sys.path"
SetEnv DJANGO_SETTINGS_MODULE reviewboard.settings
SetHandler mod_python
PythonHandler django.core.handlers.modpython
PythonAutoReload Off
PythonDebug Off
# Used to run multiple mod_python sites in the same apache
PythonInterpreter reviewboard_reviews
</Location>
# Serve static media without running it through mod_python
# (overrides the above)
<Location "/media">
SetHandler None
</Location>
<Location "/errordocs">
SetHandler None
</Location>
# Alias static media requests to filesystem
Alias /media /var/www/reviews.cgcad.com/htdocs/media
Alias /errordocs /var/www/reviews.cgcad.com/htdocs/errordocs
#</VirtualHost>


重启apache,然后在浏览器中输入你设定的网址,ReviewBoard站点应该就能正常工作了:)



----------------------------------------恼怒的分割线----------------------------------------------

由于是一个多月之前安装的,所以在写的时候一边回忆一边写,有时候还上网搜一下资料,结果写了两个小时终于完成的时候,一按"发表文章",所有的文字都没了,没有丝毫提示,包括错误信息或者发表成功的信息.这也太发指了吧!忍耐着挣扎着重新写了一遍,恼怒的心情还是难以平复.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: