本文将详细记录如何在一个全新的Ubuntu系统中安装及配置Gerrit服务器的相关详细步骤。
1.安装Ubuntu12.xx(本人使用的是12.10,其他版本未测试)
2.配置java环境
下载jdk-6u34-linux-x64.bin(百度google),终端中执行安装(如没有权限,则执行 chmod a+x jdk-6u34-linux-x64.bin)
$: ./jdk-6u34-linux-x64.bin
安装会自动执行。安装完后,配置相关环境变量
$: vim ~/.bashrc
添加如下环境变量:(username为您的用户名)
JAVA_HOME=/home/username/jdk1.6.0_34
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
$: source ~/.bashrc
验证是否配置成功:
$: java -version
$: javac
如果以上终端命令没有返回错误,且有正常的版本信息及help信息,则证明JAVA环境配置成功,可以继续。如有错误,请自行百度google。
3.配置Gerrit.xxx.war
打开终端,到达gerrit.xxx.war所在目录,执行:
$: java -jar gerrit.xxx.war init -d review_site
Create '/home/username/review_site' [Y/n]?
...
基本就是一路回车下去,默认的配置就好,需要说的一点就是验证方式OPENID,OPENID可以采用google及yahoo邮箱登录,但是某些时候由于GFW的原因,这些可能不好用,所以就可以选择http(推荐)。 管理的数据库类型也因人而异,喜欢什么就用什么,默认为H2.
配置完成后,会自动调用gerrit.sh脚本开始gerrit服务,且会自动打开浏览器,这个时候一定是失败的,因为还没有配置apache2.
在配置apache2之前需要对gerrit的配置文件进行小小的修改,该文件为review_site/etc/gerrit.config
将字段[gerrit]下的canonicalWebUrl改为https://127.0.0.1:8081/
将字段[httpd]下的listenUrl改为 proxy-https://127.0.0.1:8081/
保存即可。
4.配置apache2
终端执行:
$: sudo apt-get install apache2
会进行安装,少许等待即可。另,本人用的是163的镜像软件源,感觉速度还是很不错的。
apache2在Ubuntu上安装完后是没有httpd.conf这个配置文件的,去/etc/apache2/下看一看究竟
创建httpd.conf文件(当然,需要root权限的),录入以下内容:
<VirtualHost *>
ServerName localhost
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /login/>
AuthType Basic
AuthName "Gerrit Code Review"
AuthBasicProvider file
AuthUserFile /home/username/review_site/etc/passwords
Require valid-user
</Location>
ProxyPass / http://127.0.0.1:8081/
</VirtualHost>
这个配置文件的意思是,当访问任意(*)时,进行代理,代理到/login/目录,并根据AuthUserFile请求用户名及密码,最终代理为http://127.0.0.1:8081/
这里有两个重点需要说一下:
a.关于review_site/etc/passwords
打开终端,进入review_site/etc目录下,执行:
$: touch passwords
$: htpasswd passwords gerrit
会请求你输入此用户(gerrit)的密码,确认无误后将相关信息写入passwords文件中。这个用户名及密码就是你稍后访问本地搭建的gerrit服务器所需要的。
b.ProxyPass / http://127.0.0.1:8081/
自此应与gerrit.config中字段[httpd]的配置对应相同,必须。
配置完后,保存该文件。
别高兴的太早,还没有完,现在这个配置文件只是写玩了而已,并没有生效。打开apache2.conf一看究竟吧。
你会发现apache2.conf这个文件通过Include来引用其他配置文件,但是并没有httpd.conf,仿照其他Include将httpd.conf也引用进去。
Include httpd.conf
保存,退出。
no,还没有完。
如果现在就着急重启apache2服务的话会发现出现proxy相关错误。是因为apache2的proxy模块还没有开启,通过查看apache2.conf也能够发现,mods-enable文件夹下的被引用了,但是在这里并没有发现proxy相关模块,在mods-available中却有。通过ls -l发现enable下边的功能都是link过来的,ok,也link过来吧。
通过ln -s 命令将proxy.conf proxy.load proxy_http.load从available中link到enable中即可。
大功告成,执行:
$: sudo /etc/init.d/apache2 restart
重启apache2服务。
现在打开服务器,登录127.0.0.1出现gerrit界面。
---End---
PS:容易出现的错误
1.未修改apache2.conf引用,导致httpd.conf未生效
2.httpd.conf中VirtualHost字段后将*写成与127.0.0.1:8081相同,这里的意思是输入,后边的才是代理“到”的端口。