CentOS下安装ReviewBoard

CentOS下安装ReviewBoard
!墙裂警告:请使用桥接模式的虚拟机系统。这样才能使别人也访问到,而不是只有宿主机和虚拟机可访问。
系统安装的时候应该是默认NAT的,更改为桥接模式有点麻烦,问我怎么弄,问度娘。。。。。。
安装完成了才发现是NAT的,那就映射到宿主机windows下吧,这样其他机台就能通过宿主机指定的端口号访问了。参考我的解决问题七、如何访问虚拟机中的架设的Web服务器(解决方法) (NAT模式映射)
若发现才安装了reviewboard,还没搭建网站,恭喜你不用映射那么麻烦,还是改为桥接模式吧,改了就直接搭建网站。

1 reviewboard系统的搭建

搭建平台:CentOS 6.6
1.1搭建前提

http://www.reviewboard.org/docs/manual/1.7/admin/installation/linux/

在安装reviewboard环境前,需要安装MySQL、apache、sendmail。(本文未加说明即为在centos6.3上进行)

系统环境:centos6.6

“need to have the EPEL packagerepository added”

https://fedoraproject.org/wiki/EPEL/zh-cn

安装EPEL软件包,更好的使用yum

# rpm -ivh epel-release-6-8.noarch.rpm

安装mysql

# yum -y install mysql mysql-server

安装apache

# yum -y install httpd

安装sendmail,reviewboard中要使用邮件功能

# yum -y install sendmail

再者,在开始安装之前,请做一次更新:

yum update

接下来,请依次执行以下命令:

yum install python-setuptools

yum install python-devel

yum install mod_wsgi

yum install memcached

easy_install python-memcached

yum install patch

easy_install ReviewBoard(多等会儿,比较慢)

easy_install mysql-python

如果一切没有问题,那么恭喜你,ReviewBoard就已经安装完毕了,接下来需要搭建你的ReviewBoard站点。

若以上方式安装ReviewBoard失败,也可采用官网推荐的方式:

添加源

yum install epel-release

安装memcached

yum install memcached

安装ReviewBoard

yum install ReviewBoard

至此,RevieBoard 安装结束。
1.2 开始搭建
1.2.1 安装reviewboard

# yum -y install ReviewBoard
1.2.2 搭建站点

开启mysql数据库服务,以便添加root用户密码。

# service mysqld start

# service httpd start

# service sendmail start

设置root用户密码为”toyou*”,(粗斜体为自定义字段,下同)

# mysqladmin -u root password “toyou*”

登录数据库

mysql -u root -h 127.0.0.1 -P3306 -p

创建支持中文的数据库

create database reviewboard defaultcharset utf8 collate utf8_general_ci;
GRANT ALL PRIVILEGES ON reviewboard.* TO ‘reviewboard’@’127.0.0.1’ identified by ‘reviewboard’;

创建站点

# rb-site install /var/www/reviewboard
需要注意的是,如果是ReviewBoard-1.7.* 系列的版本可能会安装失败,网上找了一下相应的解决办法,加上 –console 参数就可以了:

# rb-site install –console /var/www/reviewboard
根据他的提示,一步步进行设置,最好跟着默认的来:

  • Domain Name: 192.168.1.111(本机ip作为web站点)

  • Root Path [/]: (回车)

  • Media URL [media/]: (回车)

  • Database Type: mysql

  • Database Name [reviewboard]: reviewboard (就是上面建表时候的表名)

  • Database Server [localhost]: 127.0.0.1

  • Database Username: reviewboard(别变)

  • Database Password: reviewboard(别变)

  • Cache Type: memcached

  • Memcache Server [localhost:11211/]: localhost:11211/

  • Web Server: apache

  • Python Loader: wsgi

  • Username [admin]: admin(就用admin好了)

  • Password: *(此密码为reviewboard的管理员登陆密码)

  • Confirm Password [*]: (回车)

  • E-Mail Address: [email protected]

如果一切顺利的话,rb-site工具会对数据库进行初始化,包括建表,插入初始数据。

有几点需要注意:

1)这里将本机ip作为web站点地址,这样局域网内别的主机通过ip就能访问reviewboard站点,但本机要访问需要将/var/www/reviewboard/conf/settings_local.py 中设置为ALLOWED_HOSTS=['*'],这样,本机浏览器才能通过 localhost 访问web站点
2)上面配置中的Email 得是真实有效的地址

最后,需要对CentOS系统进行一些配置:

更改文件拥有者为apache(web服务器)
1.chown -R apache:apache /var/www/reviewboard/

将reviewboard的配置文件拷贝到apache配置文件下
2.cp /var/www/reviewboard/conf/apache-wsgi.conf /etc/httpd/conf.d/

修改apache配置文件,使的我们有权限访问reviewboard

#vim /etc/httpd/conf/httpd.conf

Options FollowSymLinks

AllowOverride None

Allow from all(添加部分)

设置SELinux成为permissive模式(使我们有权限访问)

# setenforce 0

开启80端口,以便其他主机能够访问reviewboard

# /sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT

# service httpd restart
1.2.3 设置开机自启动

# chkconfig httpd on

# chkconfig mysqld on

# chkconfig sendmail on

# vim /etc/rc.d/rc.local(加入以下部分)

setenforce 0

/sbin/iptables -I INPUT -p tcp –dport 80-j ACCEPT

1.3 登录reviewboard
配置成功后,浏览器输入 localhost ,就可以看见相应的站点了。
输入在创建rb-site时设置的用户名(默认为admin),密码,即可登录reviewboard

碰到的问题:
一.连接Mysql提示Can’t connect to local MySQL server through socket的解决方法
mysql,Mysqldump,Mysqladmin,php连接mysql服务常会提示下面错误:

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

    这是由于修改mysql服务的了socket文件mysql.sock位置,而导致无法通过mysql socket文件连接到mysql服务引起的,具体解决办法如下:

1、查看mysql服务的socket文件位置:
mysql socket文件的位置是在/etc/my.cnf中设置的,cat /etc/my.cnf内容如下:

[mysqld]
datadir=/storage/db/mysql
socket=/storage/db/mysql/mysql.sock
user=mysql

其中socket等于的路径就是socket文件的位置,我们只要修改my.cnf文件,告诉mysql,mysqldump,mysqladmin mysql服务的socket位置在哪里就可以。

2、修改my.cnf文件:
在/etc/my.cnf文件中添加如下内容,并重启mysqls服务,即可解决mysql,mysqldump,mysqladmin的“Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’”问题:

[mysqld]
datadir=/storage/db/mysql
socket=/storage/db/mysql/mysql.sock

[mysql]
socket=/storage/db/mysql/mysql.sock

[mysqldump]
socket=/storage/db/mysql/mysql.sock

[mysqladmin]
socket=/storage/db/mysql/mysql.sock

二、CentOS安装pillow报错的解决方法
在centos下为Python安装pillow的时候报错的解决方法,希望对大家能够有所帮助。

安装pillow出现以下问题:
ValueError: jpeg is required unless explicitly disabled using –disable-jpeg, aborting

解决:
sudo yum install python-devel
sudo yum install zlib-devel
sudo yum install libjpeg-turbo-devel

三、MySQL远程连接ERROR 2003 (HY000):Can’t connect to MySQL server on’XXXXX’(111) 的问题
原文引用:

问题描述:
从一台linux远程连接另一台linux上的MySQL, 出现ERROR 2003 (HY000): Can’t connect to MySQL server on ‘xxx.xxx.xxx.85’(111)错误。
[mysql@vvmvcs0 ~] mysqlhxxx.xxx.xxx.85urootpEnterpassword:www.2cto.comERROR2003(HY000):CantconnecttoMySQLserveronxxx.xxx.xxx.85(111)[mysql@vvmvcs0 ] perror 111
OS error code 111: Connection refused
查看errorCode
[mysql@vvmvcs0 ~] perror111OSerrorcode111:Connectionrefused1pingxxx.xxx.xxx.85ping[mysql@vvmvcs0 ] ping xxx.xxx.xxx.85
PING xxx.xxx.xxx.85 (xxx.xxx.xxx.85) 56(84) bytes of data.
64 bytes from xxx.xxx.xxx.85: icmp_seq=1 ttl=63 time=0.230 ms
2,排查可能由于85上my.cnf里配置了skip_networking或者bind_address,只允许本地socket连接
2.1 在[mysqld]下设置skip_networking,
知识说明: 这使用MySQL只能通过本机Socket连接(socket连接也是本地连接的默认方式),放弃对TCP/IP的监听 www.2cto.com
当然也不让本地java程序连接MySQL(Connector/J只能通过TCP/IP来连接)。
2.2 可能使用了bind_address=127.0.0.1(当然也可以是其他ip)
[mysqld]
bind_address=127.0.0.1
知识说明:这种情况可以TCP/IP连接
通过查看了my.cnf文件,以上两个都是没设置的,排除掉这两种情况
3,排查DNS解析问题,检查是否设置了: skip_name_resolve。 这个情况肯定不可能,因为我用的是ip,不是主机名。
[mysqld]
skip_name_resolve
知识说明:这个参数加上后,不支持主机名的连接方式。
4, 排查用户和密码问题, 其实用户和密码的错误,不会出现111的,所以排除用户密码问题
ERROR 1045 (28000): Access denied for user ‘root’@’XXXX’ (using password: YES)
5,排查–port问题,有可能85的MySQL port不是默认3306, 这样我远程连接时,没有指定–port,用的是3306, 而85上没有对3306进行监听。
ps -ef | grep mysqld
果然是: 85上的MySQL使用的是3308 port.
最终连接方式:加上–port=3308
[mysql@vvmvcs0 ~] mysqlhxxx.xxx.xxx.85urootpport=3308Enterpassword:WelcometotheMySQLmonitor.Commandsendwith;or\g.85MySQL,mysqlurootportMySQLport33061.MySQLmysqlprotocol=tcp,socketwww.2cto.com2,MySQLsocketsokectportS(socket=namesocketport85port3308MySQL3306socketportbash3.2 mysql -uroot –port=3308
Welcome to the MySQL monitor. Commands end with ; or \g.
mysql -uroot –port=3306
Welcome to the MySQL monitor. Commands end with ; or \g.
再次说明基础细节很重要啊。

四:解决 ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES/NO) 问题。
错误提示:

mysql -uroot -p

Enter password:
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

总的解决办法就是修改密码。修改密码方法三种。
方法一:

/etc/init.d/mysql stop

mysqld_safe –user=mysql –skip-grant-tables –skip-networking &

mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD(‘newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit

/etc/init.d/mysqld restart

mysql -uroot -p

Enter password: <输入新设的密码newpassword>

mysql>

   方法二:

直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:

mysql -udebian-sys-maint -p

Enter password: <输入[client]节的密码>
mysql> UPDATE user SET Password=PASSWORD(‘newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit

mysql -uroot -p

Enter password: <输入新设的密码newpassword>

mysql>

   方法三:

mysql -uroot -p

Enter password: <输入/etc/mysql/debian.cnf文件中[client]节提供的密码>

MySQL——修改root密码的4种方法(以windows为例)
http://www.jb51.net/article/39454.htm

五、访问网站时400(Bad Request)
settings.py里的配置要做相应的修改

一下几项需更改

DEBUG = False # 由True到False,这个我也做对了

下面这个,忘记了,高了半天,废了老大劲才知道是这的问题

ALLOWED_HOSTS = [
‘.example.com’, # Allow domain and subdomains
‘localhost’, # Also allow FQDN and subdomains]

六、如何访问虚拟机中的架设的Web服务器(解决方法) (NAT模式映射)

环境:

1、虚拟机中安装了CentOS,虚拟机使用NAT的方式

2、在CentOS中安装了APACHE 并且使用 http://127.0.0.1可以正常访问,通过ifconfig查到IP地址是 192.168.43.128,能在WINDOWS中PING通192.168.43.128 并且使用SSH Secure Shell Client也能连上虚拟机中的CentOS

3、外部系统是win8.1

问题:

1、在主机上不能通过 http://192.168.43.128 来访问虚拟机中的Web服务器

原因:

Linux的问题、VMware的问题、windows的问题(可能不允许80端口,防火墙不允许)

解决办法:

1:linux的问题解决方法:
linux的问题:可能不允许访问80端口,防火墙不允许
1.1、在终端内输入以下两条命令
iptables -F
iptables -P INPUT ACCEPT(设置默认允许规则)
1.2、设置linux防火墙
1.2.1 在 /etc/sysconfig/iptables 添加
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
这样就允许了80端口的访问
1.2.2 在linux中将web服务添加进入信任的服务中
系统->管理->安全级别和防火墙->防火墙选项->将www(http)打钩

2:VMware的问题:是否在端口映射上出问题
2.1、设置VMware,端口映射
对,要把80端口打开,还要在VMware的Edit->Virtual Network Editor->NAT(选择VMnet8)->Edit->Port Forwarding中添加映射
host port:80,virtual machine IP address:192.168.43.128,Port:80

3、windows问题:是否windows防火墙问题
4.1、windows主机上设置防火墙

window下进入控制面板->windows防火墙->高级->设置VMware Network Adapter VMnet8->Web 服务器(HTTP)->将虚拟机的ip加入:192.168.43.128(win8.1系统一般情况下可以不用设置防火墙)

虚拟机NAT的系统的话,反正我用了4套系统也没能使外部访问我搭建的viewboard,最后狠下心用桥接模式的虚拟机成功搭建。

七、[CentOS]安装MySQL-python,error: Setup script exited with error: command ‘gcc’ failed with exit status

问题:
使用easy_install 安装 MySQL-python
出现错误如下:
error: Setup script exited with error: command ‘gcc’ failed with exit status 1

尝试解决:
yum -y install rpm-build gcc-c++
yum install mysql mysql-devel
仍然不可以
同样的错误

有尝试一个办法:
yum install python-devel

搞定了,还是google比较好用

你可能感兴趣的:(reviewboar)