1、安装需要的软件及软件包
#更新apt软件列表
apt-get update
#安装mysql
apt-get install mysql-server
#安装apache2
apt-get install apache2
#安装mod_wsgi
apt-get install libapache2-mod-wsgi
#安装memcached
apt-get install memcached
#安装patch
apt-get install patch
#安排subversion
apt-get install subversion
2、配置MySQL
#修改配置文件
vi /etc/mysql/my.cnf
#添加下面内容
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
#重启mysql
/etc/init.d/mysql restart
#新建数据库、用户并授权
mysql -u root -p
mysql> CREATE DATABASE reviewboard CHARACTER SET utf8;
mysql> CREATE USER 'reviewboard'@'localhost' IDENTIFIED BY 'reviewboard';
mysql> GRANT ALL PRIVILEGES ON reviewboard.* to 'reviewboard'@'localhost';
3、配置svn(我的svn和reviewboard不是在一台机器上的,不需要重新配置)
4、配置Python2.7环境
#安装python-setuptools
apt-get install python-setuptools
#安装python-dev
apt-get install python-dev
#安装python-mysqldb
apt-get install python-mysqldb
#替代方案
#easy_install mysql-python
#安装python-svn
apt-get install python-svn
#安装 libffi-dev
apt-get install libffi-dev
#安装ReviewBoard
easy_install ReviewBoard
#你可以用pip安装
#eays_install pip
#pip install pipdeptree
#pip install ReviewBoard
5、安装网站
#这句话会报错,因为依赖的Django版本冲突所导致的
rb-site install /var/www/reviewboard
#查看插件依赖
pipdeptree
#可以看到
#ReviewBoard依赖Django [required: <1.7,>=1.6.11, installed: 1.8]
#django-haystack依赖Django [required: >=1.8, installed: 1.8]
argparse==1.2.1
chardet==2.3.0
lxml==3.4.0
MySQL-python==1.2.3
numpy==1.8.2
pycups==1.9.63
pycurl==7.19.5
pygobject==3.14.0
pysmbc==1.0.15.3
python-apt==0.9.3.11
python-debian==0.1.27
- six [required: None, installed: 1.8.0]
python-debianbts==1.11
pyxdg==0.25
reportbug==6.6.3
ReviewBoard==2.5.1
- Django [required: <1.7,>=1.6.11, installed: 1.8]
- django-evolution [required: <=0.7.999,>=0.7.5, installed: 0.7.6]
- Django [required: <1.7.0,>=1.4.10, installed: 1.8]
- django-haystack [required: >=2.3.1, installed: 2.5.0]
- Django [required: >=1.8, installed: 1.8]
- Django [required: <1.10, installed: 1.8]
- django-multiselectfield [required: None, installed: 0.1.4]
- django [required: >=1.4, installed: 1.8]
- Djblets [required: <=0.9.999,>=0.9, installed: 0.9.3]
- Django [required: >=1.6.11,<1.8.999, installed: 1.8]
- django-pipeline [required: <1.3.9999,>=1.3.23, installed: 1.3.27]
- futures [required: >=2.1.3, installed: 3.0.5]
- feedparser [required: >=5.1.2, installed: 5.2.1]
- pillowfight [required: None, installed: 0.2]
- Pillow [required: None, installed: 2.6.1]
- pytz [required: None, installed: 2016.7]
- docutils [required: None, installed: 0.12]
- markdown [required: <2.4.999,>=2.4.0, installed: 2.4.1]
- mimeparse [required: >=0.1.3, installed: 0.1.3]
- paramiko [required: >=1.12, installed: 2.0.2]
- cryptography [required: >=1.1, installed: 1.5.2]
- cffi [required: >=1.4.1, installed: 1.8.3]
- pycparser [required: None, installed: 2.14]
- enum34 [required: None, installed: 1.1.6]
- idna [required: >=2.0, installed: 2.1]
- ipaddress [required: None, installed: 1.0.17]
- pyasn1 [required: >=0.1.8, installed: 0.1.9]
- setuptools [required: >=11.3, installed: 28.6.0]
- six [required: >=1.4.1, installed: 1.8.0]
- pyasn1 [required: >=0.1.7, installed: 0.1.9]
- pycrypto [required: >=2.6, installed: 2.6.1]
- Pygments [required: >=1.6, installed: 2.0.1]
- python-dateutil [required: ==1.5, installed: 1.5]
- python-memcached [required: None, installed: 1.58]
- six [required: >=1.4.0, installed: 1.8.0]
- pytz [required: None, installed: 2016.7]
- recaptcha-client [required: None, installed: 1.0.6]
- Whoosh [required: >=2.6, installed: 2.7.4]
roman==2.0.0
SOAPpy==0.12.22
- defusedxml [required: None, installed: 0.4.1]
- wstools [required: None, installed: 0.4.3]
- docutils [required: None, installed: 0.12]
wsgiref==0.1.2
#所以降级django-haystack就好了
easy_install -m django
easy_install -m django-haystack
easy_install django-haystack==2.3.1
easy_install reviewboard
6、安装网站,并修改网站权限
#安装网站,按提示输入
rb-site install /var/www/reviewboard
chown -R www-data /var/www/reviewboard/htdocs/media/uploaded
chown -R www-data /var/www/reviewboard/data
chown -R www-data /var/www/reviewboard/logs
chown -R www-data /var/www/reviewboard/htdocs/media/ext
chown -R www-data /var/www/reviewboard/htdocs/static/ext
7、配置访问权限
#配置访问权限
vi /var/www/reviewboard/conf/settings_local.py
#修改下面一行,这是不限制任何访问
ALLOW_HOSTS=['*']
8、配置apache2虚拟目录
cp /var/www/reviewboard/conf/apache-wsgi.conf /etc/apache2/sites-available/reviewboard.conf
#按实际需要的部署情况,编辑reviewboard.conf
cd /etc/apache2/sites-enabled
ln -s ../sites-avaiable/reviewboard.conf
9、重启apache2
/etc/init.d/apache2 restart
10、打开浏览器就可以登录啦
11、另外,我是在虚拟机中部署的reviewboard,我尝试了用nginx反向代理reviewboard,但没有成功。
用firebug看到,json中的ip地址没有改写,最后发现是因为django没有正确的处理absolute_path。
好像增加一些django的配置就好了,但实在是没时间处理了。
最后用bridege方式将虚拟机映射出来,完成部署。