目标java
配置Gerrit使用mysql数据库(缘由:本人比较熟悉mysql)mysql
使用http受权模式,使用apache反向代理。git
SMTP使用163的我的邮箱sql
软件版本数据库
Ubuntu 12.04apache
Gerrit 2.4.1ssh
Apache 2.2.22ide
Mysql 5.5.24ui
下面好戏开始了spa
相信各位安装mysql和apache,都能搞定,sudo apt-get,完了。
配置数据库:
CREATE USER ' gerrit2 ' @ ' localhost ' IDENTIFIED BY ' secret ' ; CREATE DATABASE reviewdb; ALTER DATABASE reviewdb charset = latin1; GRANT ALL ON reviewdb. * TO ' gerrit2 ' @ ' localhost ' ; FLUSH PRIVILEGES ;
这是从官方文档获得的代码,其中我没有使用alter database reviewdb charset=latin1;这条语句。网上有资料说utf8会没法安装,但俺没遇到。
但gerrit对中文的支持确实很差,因此你们尽可能用英文吧。
安装Gerrit
java -jar gerrit-$version-rc1.war init -d review_site
而后一路回车就行,本人比较喜欢本身修改配置文件。
vi review_sit/etc/gerrit.config
[gerrit] basePath = git canonicalWebUrl = 192.168 . 1.254 : 8081 [database] type = MYSQL hostname = localhost database = reviewdb username = gerrit2 [auth] type = HTTP [sendemail] smtpServer = smtp. 163 .com smtpUser = wangconglin87@ 163 .com from = wangconglin87@ 163 .com [container] user = gerrit2 javaHome = / opt / jdk1. 7 .0_05 / jre [sshd] listenAddress = 192.168 . 1.254 : 29418 [httpd] listenUrl = proxy - http: // 192.168.1.254:8081 [cache] directory = cache
而后vi review_sit/etc/gerrit.config,下面的mima表明你的密码
[database]
password = mima //数据库用户gerrit2的密码
[sendemail]
smtpPass = mima //你邮箱的密码
而后配置apche
将/etc/apache2/sites-enabled目录下的文件都删除,(我是全新安装的)。
为何删除,由于当我安装资料配置好之后,出现有时候能正常运行,有时候不能运行。让我郁闷了很长时间。这里面有一个默认的虚拟主机。
而后再/etc/apache2/sites-enabled目录下,vi proxy-gerrit,而后输入:
< VirtualHost * : 80 > ServerName a.wangconglin.cn ProxyRequests Off ProxyVia Off ProxyPreserveHost On < Proxy *> Order deny,allow Allow from all </ Proxy > < Location / login /> AuthType Basic AuthName " Gerrit Code Review " Require valid - user AuthBasicProvider file AuthUserFile / home / gerrit2 / passwords </ Location > ProxyPass / http: // 192.168.1.254:8081/ ProxyPassReverse / http: // 192.168.1.254:8081/ </ VirtualHost >
上面的AuthUserFile /home/gerrit2/passwords,生成示例命令以下:
htpassword /home/gerrit2/passwords [username]
运行Gerrit:
/home/gerrit2/review_site/bin/gerrit.sh start -d /home/gerrit2/review_site
使用git push前,gerrit不容许直接覆盖git代码库中的任何分支,而是将变动推送到另外一个refspce中。
git config remote.origin.push refs/heads/*:refs/for/* git push origin
不过,还有一个问题没有解决:登录后会陷入一个重定向的死循环,再次输入地址后就能登录成功。我对apache的反向代理有些头痛。但愿高手指点迷津。
本人第二次写博客,写的很差,见谅。