最新apache+svn+reviewboard實(shí)現(xiàn)在線代碼評審
本文重點(diǎn)說reviewboard的安裝
作用,在線代碼評審工具。
---------------------------------------------------------------------------
mysql安裝
- yum -y install gcc gcc-c++ make cmake autoconf automake ncurses* bison* zlib* expat*
- openssl* apr* neon*
- yum -y install mysql-server
可以選擇yum安裝mysql 或者編譯安裝mysql
注,編譯安裝的mysql,90%運(yùn)維會裝在/usr/local/mysql 下 如果默認(rèn)安裝在/usr/local/mysql下,等裝好ReviewBoard生成站點(diǎn)的時(shí)候會選擇支持使用的數(shù)據(jù)庫的時(shí)候沒有識別mysql只有sqlite3,此時(shí),如果你數(shù)據(jù)庫不是sqlite3,繼續(xù)往下執(zhí)行自動生成的站點(diǎn)訪問將會出現(xiàn)bad reqest 400錯誤。對于編譯安裝的mysql,解決辦法如下 yum安裝的mysql命令將在/usr/local/bin/下,不需要軟連。
對于編譯安裝的mysql,解決辦法如下 做相應(yīng)的軟連接
- ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
- ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18
- ln -s /usr/local/mysql/bin/* /usr/local/bin/
mysql安裝此處不再介紹 編譯也好,yum也好,看需求及使用mysql的級別。
----------------------------------------------------------------------------
Apache和SVN
- yum -y install httpd httpd-devel mod_dav_svn subversion subversion-devel
apache 安裝好之后可直接啟動
svn 的安裝于配置,倉庫的創(chuàng)建,用戶的管理,權(quán)限的配置,網(wǎng)上文檔一大堆。
----------------------------------------------------------------------------
安裝reviewboard
reviewboard是由python開發(fā),
1、使用python-setuptools安裝
- yum -y install python-setuptools
- easy_install -U setuptools,
2、安裝python組件
- yum -y install python python-devel python版本要2.6以上才可以支持reviewboard
3、 安裝patch
- yum -y install patch
4、 安裝pysvn
- wget http://pysvn.barrys-emacs.org/source_kits/pysvn-1.7.6.tar.gz
- tar zxvf pysvn-1.7.6.tar.gz
- cd pysvn-1.7.6/Source
- python setup.py backport 驗(yàn)證與python的兼容
- python setup.py configure
make pysvn的編譯安裝需要subversion-devel的支持,沒有裝devel報(bào)此處報(bào)錯,yum安裝之后將解決。
- mkdir /usr/lib64/python2.6/site-packages/pysvn
- cp pysvn/__init__.py /usr/lib64/python2.6/site-packages/pysvn
- cp pysvn/_pysvn*.so /usr/lib64/python2.6/site-packages/pysvn
5、 安裝mod_wsgi
- yum -y install mod_wsgi
mod_wsgi 是支持webpy的一個(gè)模塊
6、 安裝mencache
- yum -y install memcached
- easy_install python-memcached
reviewboard需要memcxched的支持,之前沒打開11211端口,訪問很慢。
7、 安裝Review Board
- easy_install ReviewBoard
# 如果安裝過程中 Django 1.6.5一直因?yàn)榫W(wǎng)絡(luò)問題安裝失敗的話,可以手動下載安裝 偉大的天朝已經(jīng)屏蔽的google,此處提供一個(gè)openerdns 42.120.21.30 添加到/etc/resolv.cof 里。成功的幾率大大提高,以為此dns可以代理到google,https://code.google.com/p/openerdns/
- wget https://pypi.python.org/packages/source/D/Django/Django-1.6.5.tar.gz#md5=e4c5b2d35ecb3807317713afa70a0c77
- cd Django-1.6.5
- python setup.py build
- python setup.py install
# 或者使用pip在線安裝
- pip --default-timeout=2000 install Django==1.6.5
8、 安裝mysql組件
- easy_install mysql-python
創(chuàng)建reviewboard站點(diǎn)
創(chuàng)建reviewboard存放數(shù)據(jù)的數(shù)據(jù)庫reviewboard并賦予權(quán)限和密碼
- mysql> create database reviewboard default charset utf8 collate utf8_general_ci;
- mysql> grant all on reviewboard.* to 'reviewboard'@'localhost' identified by 'reviewboard';
- mysql> FLUSH PRIVILEGES;
創(chuàng)建reviewboard站點(diǎn)
- rb-site install /reviewboard
rb-site命令是裝reviewboard自動生成的
之后會有一系列類似安裝向?qū)У牟襟E,需要你做出選擇,盡量選擇默認(rèn)值吧
- Domain = rb.XXX.com 自己隨意,本地做個(gè)hosts綁定就行
- Root Path = 回車
- Database Type = mysql
- Database Name = reviewboard
- Database server = 回車
- Database username = 'reviewboard'
- Database password = 'reviewboard'
- Memcache Server = 回車
- Username [admin]: admin
- E-Mail Address = 郵箱自己填
ok之后需要修改下列文件的屬主屬組
- [root@localhost bin]# chown -R apache /reviewboard/htdocs/media/uploaded
- [root@localhost bin]# chown -R apache /reviewboard/htdocs/media/ext
- [root@localhost bin]# chown -R apache /reviewboard/htdocs/static/ext
- [root@localhost bin]# chown -R apache /reviewboard/data/
- cp /reviewboard/conf/apache-wsgi.conf 到/etc/httpd/conf.d/
apache為yum安裝,編譯安裝
自己定位目錄。80端口被占用,我使用了8081 修改了下端口,使用80端口將不用任何修改。
重啟apache,http://http://rb.xxx.com/ 就可以訪問。
如果出現(xiàn)400錯誤,就是在創(chuàng)建reviewboard站點(diǎn)出現(xiàn)錯誤,站點(diǎn)沒有生成好,之前就是沒有顯示mysql選擇了sqlite3,也ok了,訪問就是顯示400錯誤,以為是apache-wsgi.conf中
- WSGIPassAuthorization On
- WSGIScriptAlias "/" "/reviewboard/htdocs/reviewboard.wsgi/"
這兩行的問題,寫了個(gè)html,試驗(yàn)了虛擬主機(jī),注釋這兩行就ok,打開就400, 查了半天的mode_wsgi,還是400,最終又重新檢查一遍,支持了mysql,終于解決。
500錯誤解決有可能是數(shù)據(jù)庫的問題,重啟數(shù)據(jù)庫(慎重)或者drop reviewboard庫重新創(chuàng)建,并重新生成reviewboard站點(diǎn)。