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 ~] mysql−hxxx.xxx.xxx.85−uroot−pEnterpassword:www.2cto.comERROR2003(HY000):Can′tconnecttoMySQLserveron‘xxx.xxx.xxx.85′(111)[mysql@vvmvcs0 ] perror 111
OS error code 111: Connection refused
查看errorCode
[mysql@vvmvcs0 ~] perror111OSerrorcode111:Connectionrefused问题分析:1,可能网络连接问,远程pingxxx.xxx.xxx.85,能ping通,排除此情况[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 ~] mysql−hxxx.xxx.xxx.85−uroot−p–port=3308Enterpassword:WelcometotheMySQLmonitor.Commandsendwith;or\g.为什么出现这么低级的错误呢?因为我一直在用85上的MySQL,而且每次都是直接用mysql−uroot就连接上了,没有指定–port,这样我就一直以为这MySQL的port一直是默认的3306的。其实根本原因是:1.MySQL本地连接,如果不指mysql–protocol=tcp,连接默认是socket方式连接的。这点大家都知道。www.2cto.com2,MySQLsocket连接是根据sokect文件来的,与–port不相关的,如果是一机多实例,则用−S(或者–socket=name)来指定连接哪个实例。就是这个socket连接对–port无识别效果,导致排查这个问题这么久。见下面:其实85上只有一个port为3308的MySQL实例,但是用3306仍然是连接上此实例,说明socket连接方式忽略–port参数。−bash−3.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) 问题。
错误提示:
Enter password:
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
总的解决办法就是修改密码。修改密码方法三种。
方法一:
mysql> UPDATE user SET Password=PASSWORD(‘newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
Enter password: <输入新设的密码newpassword>
mysql>
方法二:
直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:
Enter password: <输入[client]节的密码>
mysql> UPDATE user SET Password=PASSWORD(‘newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
Enter password: <输入新设的密码newpassword>
mysql>
方法三:
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比较好用