在Ubuntu Server上安装ReviewBoard

回家之前在实验室的服务器上成功安装了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绑定):

到这里 下载最新版; 然后从源码安装.

由于服务器上原来的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建立的新的网址),所以需要修改一下配置文件:

原配置文件:

view plaincopy to clipboardprint?
<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 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>
 


    修改后的配置文件:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyffgz.html