经过长达一个半月的研究探索,终于在Ubuntu下搭建ReviewBoard完成一个可以跑完一个流程的系统,感觉超有成就感!
参考:
在CentOS系统上搭建Reviewboard
1 开始搭建之前必须要安装easy_install的软件:
sudo apt-get install python-setuptools python-dev;
2 安装apache2和mod_python
sudo apt-get install apache2 libapache2-mod-python
sudo a2enmod python /* 修改apache2的配置,让python mod处于enable状态 */
3 安装mysql
sudo apt-get install mysql-server python-mysqldb libmemcache-dev
sudo easy_install
创建数据库、数据库用户for ReviewBoard(这块要注意数据库的字符集设置,默认不是UTF-8)
前几次的安装都没有之一字符集的问题,导致网页上中文显示乱码。按照默认的步骤安装和配置后,输入和保存英文均没有问题,但是一旦输入中文,保存后页面显示的都是乱 码,甚至某些时候在保存中文数据时Review Board还提示错误。我的Ubuntu的locale是"zh_CN.UTF-8",输入法输 入后的中文内码应该是UTF-8。Review Board本身按理来说其 内核也应该是内置支持的UTF-8编码的,问题出在哪呢?答案是MySQL
在命令行模式进入MySQL,敲入status命令:Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
修改MySQL默认字符集的方法很简单,先停止MySQL Server(sudo /etc/init.d/mysqlstop),之后打开/etc/mysql/my.cnf,分别在[client]和[mysqld]两个section下, 增加一个key- value(这个方法会导致mysql不能重启)
正确的做法是:
找到[client] 添加:
default-character-set=utf8 //默认字符集为utf8
找到[mysqld] 添加:
//默认字符集为utf8
default-character-set=utf8
//设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行
init_connect='SET NAMES utf8'
可是我根据这样修改后启动mysql服务报错,启动不了
在网上试了多种解决办法,都没有解决,
最后找到一个方法,可以解决,如下:
其他的还跟上面一样,只有在[mysqld]下面添加的
default-character-set=utf8
改为
character-set-server = utf8
重新启动mysql,启动成功
查看下结果是:Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8,代表测试成功。
接下来配置是数据库用户:mysql -u root -p /* 用root用户登录 */
mysql> create database reviewboard;
Query OK, 1 row affected (0.00 sec)
mysql> create user 'reviewboard'@'localhost' identified by 'reviewboard'; /* 前一个reviewboard是访问数据库的用户名,后一个reviewboard是密码 */
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on reviewboard.* to 'reviewboard'@'localhost'; /* 前一个reviewboard是数据库的名字,而后一个reviewboard则是访问数据库的用户名 */
Query OK, 0 rows affected (0.00 sec)
mysql> exit