<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.mywiki.cn/Hovercool/index.php?action=history&amp;feed=atom&amp;title=Gerrit%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BA</id>
	<title>Gerrit服务器搭建 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://www.mywiki.cn/Hovercool/index.php?action=history&amp;feed=atom&amp;title=Gerrit%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BA"/>
	<link rel="alternate" type="text/html" href="https://www.mywiki.cn/Hovercool/index.php?title=Gerrit%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BA&amp;action=history"/>
	<updated>2026-09-01T03:05:59Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.mywiki.cn/Hovercool/index.php?title=Gerrit%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BA&amp;diff=861&amp;oldid=prev</id>
		<title>2015年5月6日 (三) 12:14 Hovercool</title>
		<link rel="alternate" type="text/html" href="https://www.mywiki.cn/Hovercool/index.php?title=Gerrit%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BA&amp;diff=861&amp;oldid=prev"/>
		<updated>2015-05-06T12:14:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== －、安装jdk ==&lt;br /&gt;
&lt;br /&gt;
===1、下载===&lt;br /&gt;
&lt;br /&gt;
===2、将下载的tar.gz解压===&lt;br /&gt;
&lt;br /&gt;
===3、更改 /etc/profile文件，在末处加入以下内容===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export JAVA_HOME=/usr/java/jdk1.8.0_25&lt;br /&gt;
export PATH=$PATH:$JAVA_HOME/bin&lt;br /&gt;
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar:$JAVA_HOME/lib/rt.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===4、新打开一个shell，输入java -version，能看到版本号就代表安装成功了===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
zmk@zmk-G41M-ES2L:~$ java -version&lt;br /&gt;
java version &amp;quot;1.8.0_25&amp;quot;&lt;br /&gt;
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)&lt;br /&gt;
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 二、安装gerrit ==&lt;br /&gt;
&lt;br /&gt;
===1、下载gerrit===&lt;br /&gt;
&lt;br /&gt;
===2、进入tomcat下面的webapps目录，安装war===&lt;br /&gt;
&lt;br /&gt;
 java -jar gerrit.war init -d gerrit&lt;br /&gt;
&lt;br /&gt;
一路回车下去（后面再更改配置文件）&lt;br /&gt;
&lt;br /&gt;
打开 http://192.168.199.110:8080/ ，这个网址可以通过下面这条命令获取：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
admin@zmk-G41M-ES2L:~$ git config -f ~/gerrit/etc/gerrit.config gerrit.canonicalWebUrl&lt;br /&gt;
http://zmk-G41M-ES2L:8080/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
考虑到局域网跨机访问，建议把机器名域名（可以让局域网所有机器改host文件），编辑 ~/gerrit/etc/gerrit.config：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[gerrit]&lt;br /&gt;
        basePath = git&lt;br /&gt;
        canonicalWebUrl = http://gerrit.myserver.org:8080/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*尤其注意，虽然生成的文件在目录 gerrit下面，但URL并非 http://xxxx:8080/gerrit/&lt;br /&gt;
&lt;br /&gt;
浏览器一直显示：&lt;br /&gt;
&lt;br /&gt;
 Loading Gerrit Code Review ...&lt;br /&gt;
&lt;br /&gt;
这是因为默认的认证方式是用于和github之类关联的 OPENID，如果不配置是会出错的，我们把认证方式改一下&lt;br /&gt;
&lt;br /&gt;
 vim gerrit/etc/gerrit.config&lt;br /&gt;
&lt;br /&gt;
把认证项改成：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[auth]&lt;br /&gt;
        type = HTTP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
重启 gerrit服务：&lt;br /&gt;
 $ gerrit/bin/gerrit.sh restart&lt;br /&gt;
&lt;br /&gt;
* gerrit-2.10需要再运行以下命令，否则 restart时会失败:&lt;br /&gt;
 $ java -jar gerrit-2.10.war reindex&lt;br /&gt;
&lt;br /&gt;
再访问：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Configuration Error&lt;br /&gt;
Check the HTTP server&amp;#039;s authentication settings.&lt;br /&gt;
&lt;br /&gt;
The HTTP server did not provide the username in the Authorization header when it forwarded the request to Gerrit Code Review. &lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
出现上面这个错误，是因为使用HTTP方式必须配置反向代理，如果仅仅是为了尝试一下，可以将auth type配置成 development_become_any_account（言下之意任意访问者都能注册）&lt;br /&gt;
&lt;br /&gt;
*这里可能会奇怪，到目前为止，服务器没有安装任何网页服务啊，这是怎么show出来的？——这是因为 gerrit自带了 jetty服务器&lt;br /&gt;
&lt;br /&gt;
===3、安装apache、配置反向代理===&lt;br /&gt;
&lt;br /&gt;
*首先更改gerrit配置，使能代理；另外使用代理后就直接使用apache的80端口访问了，需要把8080去掉&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[gerrit]&lt;br /&gt;
        basePath = git&lt;br /&gt;
        canonicalWebUrl = http://gerrit.myserver.org/&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
[httpd]  &lt;br /&gt;
        listenUrl = proxy-http://127.0.0.1:8080/  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*安装apache2&lt;br /&gt;
 apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
*配置apache&lt;br /&gt;
:在ubuntu 12.04上，apache配置路径为 /etc/apache2/apache2.conf，不过使能模块不用直接更改这个文件，只要进入/etc/apache2/mods-enabled，创建软链接即可：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@zmk-G41M-ES2L:/etc/apache2/mods-enabled# ln -s ../mods-available/proxy.conf proxy.conf&lt;br /&gt;
root@zmk-G41M-ES2L:/etc/apache2/mods-enabled# ln -s ../mods-available/proxy.load proxy.load&lt;br /&gt;
root@zmk-G41M-ES2L:/etc/apache2/mods-enabled# ln -s ../mods-available/proxy_http.load proxy_http.load&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*配置虚拟主机，在这个主机中使能代理，修改 /etc/apache2/httpd.conf，末尾加入以下内容：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *&amp;gt;&lt;br /&gt;
  ServerName gerrit.myserver.org&lt;br /&gt;
  ProxyRequests Off&lt;br /&gt;
  ProxyVia Off&lt;br /&gt;
  ProxyPreserveHost On&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Proxy *&amp;gt;&lt;br /&gt;
        Order deny,allow&lt;br /&gt;
        Allow from all&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Location /login/&amp;gt;&lt;br /&gt;
     AuthType Basic&lt;br /&gt;
     AuthName &amp;quot;Gerrit Code Review&amp;quot;&lt;br /&gt;
     AuthBasicProvider file&lt;br /&gt;
     AuthUserFile /home/admin/gerrit/etc/passwords&lt;br /&gt;
     Require valid-user&lt;br /&gt;
  &amp;lt;/Location&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  AllowEncodedSlashes On&lt;br /&gt;
  ProxyPass / http://127.0.0.1:8080/ nocanon&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*[http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-reverseproxy.html The two options AllowEncodedSlashes On and ProxyPass .. nocanon are required since Gerrit 2.6.]，这两个必须设置，否则在 gerrit/git/下创建子目录时将会出现访问出错&lt;br /&gt;
&lt;br /&gt;
*ServerName配置的是主机的域名或者ip，如果用localhost那就相当于只能本机访问&lt;br /&gt;
&lt;br /&gt;
=== 4、生成第一个gerrit帐户===&lt;br /&gt;
第一个帐户会默认为管理员&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
admin@zmk-G41M-ES2L:~$ touch /home/admin/gerrit/etc/passwords&lt;br /&gt;
admin@zmk-G41M-ES2L:~$ htpasswd /home/admin/gerrit/etc/passwords &amp;quot;root&amp;quot;&lt;br /&gt;
New password:&lt;br /&gt;
Re-type new password:&lt;br /&gt;
Adding password for user root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
重启 apache:&lt;br /&gt;
 /etc/init.d/apache2 restart&lt;br /&gt;
&lt;br /&gt;
再用浏览器打开看一下，注意现在是通过apache代理访问，所以只要输入 http://192.168.199.110 使用apache默认的80端口就可以了，不是 http://192.168.199.110:8080&lt;br /&gt;
&lt;br /&gt;
这时提示要用户密码，输入刚刚创建的 root——久违的界面终于出来了！&lt;br /&gt;
&lt;br /&gt;
=== 5、配置gerrit服务官方邮箱 ===&lt;br /&gt;
&lt;br /&gt;
编辑 gerrit/etc/gerrit.config&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[sendemail]&lt;br /&gt;
        smtpServer = smtp.exmail.qq.com&lt;br /&gt;
        smtpServerPort = 465&lt;br /&gt;
        smtpEncryption = SSL&lt;br /&gt;
        smtpUser = xxx@exmail.qq.com&lt;br /&gt;
        smtpPass = your_passwad&lt;br /&gt;
        from = xxx@exmail.qq.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
如此，在gerrit用户设置/修改自己邮箱时就会通过这个邮箱发出验证链接&lt;br /&gt;
&lt;br /&gt;
== 三、使用 gerrit简单示例 ==&lt;br /&gt;
&lt;br /&gt;
在.ssh目录下创建config文件，加入以下内容：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host gerrit&lt;br /&gt;
        User root&lt;br /&gt;
        Port 29418&lt;br /&gt;
        Hostname 192.168.199.110&lt;br /&gt;
        IdentityFile ~/.ssh/id_rsa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这样就不用每次都输入 &amp;quot;ssh -p 29418 root@192.168.199.110 xxx&amp;quot;了，可以简化，直接输：&lt;br /&gt;
&lt;br /&gt;
 ssh gerrit xxx&lt;br /&gt;
&lt;br /&gt;
*注意，windows下使用 Git Bash也直接用这个文件即可，无需更改 IdentityFile地址&lt;br /&gt;
&lt;br /&gt;
*如果提示 &amp;quot;Bad owner or permissions on /home/xxx/.ssh/config&amp;quot;，则更改一下文件权限 &amp;quot;chmod 600 ~/.ssh/config&amp;quot;&lt;br /&gt;
&lt;br /&gt;
如创建一个git库：&lt;br /&gt;
&lt;br /&gt;
 ssh gerrit gerrit create-project -n test_project&lt;br /&gt;
&lt;br /&gt;
再列出当前所有git库：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
admin@zmk-G41M-ES2L:~$ ssh gerrit gerrit ls-projects&lt;br /&gt;
test_project&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
此时，再通过浏览器查看，也可以找到这个git库&lt;br /&gt;
&lt;br /&gt;
== 四、配置gitweb ==&lt;br /&gt;
&lt;br /&gt;
安装gitweb，再配置下gitconfig就ok了:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
admin@zmk-G41M-ES2L:~/WD/python$ sudo apt-get install gitweb&lt;br /&gt;
admin@zmk-G41M-ES2L:~/WD/python$ git config --file  ~/gerrit/etc/gerrit.config gitweb.cgi /usr/share/gitweb/gitweb.cgi&lt;br /&gt;
admin@zmk-G41M-ES2L:~/WD/python$ vim /home/admin/gerrit/etc/gerrit.config&lt;br /&gt;
admin@zmk-G41M-ES2L:~/WD/python$ vim /home/admin/gerrit/etc/gerrit.config&lt;br /&gt;
admin@zmk-G41M-ES2L:~/WD/python$ git config --file ~/gerrit/etc/gerrit.config  --unset gitweb.url&lt;br /&gt;
admin@zmk-G41M-ES2L:~/WD/python$ ~/gerrit/bin/gerrit.sh restart&lt;br /&gt;
Stopping Gerrit Code Review: OK&lt;br /&gt;
Starting Gerrit Code Review: OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
刷新一下，是project -&amp;gt; list的右侧是不是多了 gitweb的链接?&lt;br /&gt;
&lt;br /&gt;
这时，我们以管理员身份登陆 gerrit发现一切OK，但使用其他用户则发现点击 gitweb会打不开项目，提示 &amp;quot;not found&amp;quot;，这时还需要配置一下 All-Project的权限：&lt;br /&gt;
&lt;br /&gt;
为 refs/meta/config添加 Registered Users的read access权限。&lt;/div&gt;</summary>
		<author><name>Hovercool</name></author>
	</entry>
</feed>