一、安装Apache
#yum install httpd
-
#service httpd start
(开机自启动httpd)
(CentOS7以下版本使用:chkconfig httpd on
) -
#yum install mod_wsgi
(python网关接口模块)
如果安装好的mod_wsgi后,有/etc/httpd/conf.d/wsgi.conf文件,就不需要做额外配置;
否则需要在/etc/httpd/conf/httpd.conf中插入LoadModule wsgi_module modules/mod_wsgi.so
-
如果使用虚拟主机多端口映射,则
(1)新建/etc/httpd/conf.d/vhost.conf文件,以添加81端口为例,其内容示例如下:
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/test80/ #/var/www/html为httpd.conf配置的根目录,站点目录只能在这个目录下面
</VirtualHost>
<Directory /var/www/test80/>
Require all granted
</Directory>
<VirtualHost *:81>
ServerName localhost
DocumentRoot /var/www/test81/
</VirtualHost>
<Directory /var/www/test81/>
Require all granted
</Directory>
(2)因为增加了81端口,所以需要在/etc/httpd/conf/httpd.conf文件中,找到Listen 80(默认监听80)代码,增加一行 Listen 81
(3)在某些CentOS版本中,添加监听端口,还需要让Selinux放行,所以需要执行 #semanage port -l|grep http #查看SELinux下http相关端口
#semanage port -a -t http_port_t -p tcp 81 #增加这个非标准端口即可
(4)#service httpd restart
(重启,访问localhost、localhost:81验证结果)
二、安装MySQL
-
#yum install mysql mysql-devel mysql-server
(mysql:mysql客户端,mysql-devel:mysql开发库,mysql-server:mysql服务端)或#yum install mariadb mariadb-devel mariadb-server
(mariadb是mysql增强替换品,目前mysql-server已不能正常yum install,可以使用mariadb-server代替) -
#systemctl enable mysqld.service(或mariadb.service)
(开机自启动mysql或mariadb) -
#service mysqld(mariadb) start
(启动服务)#/usr/bin/mysql -uroot -p
( 验证安装结果,初始root密码为空)
三、安装Python
#yum install python-setuptools
(easy_install简易Python安装工具)#yum install python-devel
(Python开发库)
四、安装Reviewboard所需依赖
#yum install memcached
#yum install python-memcached
#yum install patch
#yum install zlib-devel
yum install libjpeg-turbo-devel
#easy_install mysql-python
#easy_install pip
(如果没有pip命令,则需要执行此步)#pip install --upgrade six
(升级python的six模块,后面部署Reviewbaord站点的时候需要)#easy_install MySQL-python
五、安装Reviewboard
#easy_install ReviewBoard
六、安装SVN及拓展
1. yum install subversion subversion-devel
2. 安装pysvn:
方案A:如果python版本为2.6(CentOS6.x),可以采用其他EPEL yum源进行下载
(1)rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
(安装yum源EPEL红帽企业库,centos默认yum源库中没有pysvn)
(2) yum --enablerepo=epel install pysvn
(指定在EPEL yum源中,下载pysvn)
方案B:如果python版本为2.6以上(CentOS7.x),要单独下载pysvn包进行编译安装
(1)安装gcc-g++编译器 yum install gcc-c++
(2)编译pysvn #cd /home
#wget http://tigris.org/files/documents/1233/49424/pysvn-1.7.10.tar.gz
(选择自身svn和python版本的包) #wget http://iweb.dl.sourceforge.net/project/cxx/CXX/PyCXX%20V6.2.6/pycxx-6.2.6.tar.gz
(pysvn依赖包) #tar -xvf pysvn-1.7.10.tar.gz
#cd /pysvn-1.7.10/Source
#tar -xvf pycxx-6.2.6.tar.gz
#python setup.py configure
#make
#cd /Tests
#make
(3)拷贝pysvn的编译结果到python库中 #mkdir /usr/lib/python2.7/site-packages/pysvn
#cp /home/pysvn-1.7.10/Source/pysvn/__init__.py python-libdir/site-packages/pysvn
#cp /home/pysvn-1.7.10/Source/pysvn/_pysvn2.7.so python-libdir/site-packages/pysvn
七、部署Reviewboard
1. 绑定数据库
mysql> CREATE DATABASE reviewboard CHARACTER SET utf8;
mysql> CREATE USER 'reviewboard'@'localhost' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON reviewboard.* to 'reviewboard'@'localhost';
2. 部署reviewboard
(1)#rb-site intall /var/www/html/reviews (reviews是自定义的)
(2)#cp /var/www/html/reviews/conf/apache-wsgi.conf /etc/httpd/conf.d/reviews.conf
(reviews.conf是自定义的)
(3)#chmod -R 777 /var/www/ (直接全开权限,懒)
3. 部署后调试访问
访问localhost,可能会出现Reviewboard is taking a nap的页面,此时就需要修改/var/www/html/reviews/conf/setting_locale.py 里面的Debug 为 True。再进行访问,就可以把根据error信息查出问题在哪里,本人部署过程中,出现过以下问题:
-
依赖失效
Target WSGI script '/var/www/html/reviews/htdocs/reviewboard.wsgi' cannot be loaded as Python module
....
DistributionNotFound: Whoosh>=2.6
原因:Whoosh版本过高,类似依赖问题都是这样,提示DistributionNotFound:xxx,解决方案都一样
解决方法:#pip uninstall Whoosh
#pip install Whoosh==2.6.0
-
权限控制
如果系统中有selinux或防火墙开启,则需要#setenforce 0
(调整selinux为permissitive模式放行站点权限)#service firewalled stop
(关闭防火墙)