Linux搭建Gerrit(Nginx+Apache+Gerrit)

一、安装JDK

1、下载解压Jdk(官网下载)

mkdir -p /usr/local/software
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/software

2、配置环境变量

vim /etc/profile
# 加入以下内容
#export JAVA_HOME=/usr/local/software/jdk1.8.0_171 
#export JRE_HOME=$JAVA_HOME/jre
#export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
#export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

# 刷新配置使配置生效
source /etc/profile

3、查看Java版本

java -version
#java version "1.8.0_171"
#Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
#Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

二、安装Git

1、安装zlib

① 源码安装zlib(下载地址:http://zlib.net/,本文使用版本:zlib-1.2.11.tar.gz

② 解压安装

# 解压
tar -xzvf zlib-1.2.11.tar.gz -C /usr/local/software
# 进入解压目录
cd /usr/local/software/zlib-1.2.11
# 配置+编译检查
./configure --prefix=/usr/local/zlib
# 编译+安装
make && make install

2、安装openssl(一般系统都有,可以不安装)

① 源码安装openssl(下载地址:https://www.openssl.org/source/,本文使用版本:openssl-fips-2.0.16.tar.gz

② 解压安装

# 解压
tar -xzvf openssl-fips-2.0.16.tar.gz -C /usr/local/software
# 进入解压目录
cd /usr/local/software/openssl-fips-2.0.16
# 配置+编译检查
./config --prefix=/usr/local/openssl
# 编译+安装
make && make install

3、安装其他依赖玩意

没有深究是啥玩意,使用yum安装就好

yum -y install tcl build-essential tk gettext

4、安装git

① 源码安装git(下载地址:https://mirrors.edge.kernel.org/pub/software/scm/git/,本文使用版本:git-2.17.0.tar.gz

② 解压安装

# 解压
tar -xzvf git-2.17.0.tar.gz -C /usr/local/software
# 进入解压目录
cd /usr/local/software/git-2.17.0
# 配置+编译检查
./configure --prefix=/usr/local/git --with-zlib=/usr/local/zlib
# 编译+安装
make && make install

③ 配置环境变量并刷新配置

vim /etc/profile
# 加入以下内容
#export GIT_HOME=/usr/local/git 
#export PATH=$GIT_HOME/bin:$PATH

# 刷新配置使配置生效
source /etc/profile

三、安装Gerrit和Gerrit插件

1、下载Gerrit(下载地址:https://gerrit-releases.storage.googleapis.com/gerrit-2.13.11.war)

2、安装Gerrit和插件

mkdir -p /usr/local/gerrit
java -jar gerrit-2.13.11.war init -d /usr/local/gerrit
# 安装download-commands插件,也可以在安装过程根据提示y(插件安装默认是n)
java -jar gerrit-2.13.11.war init -d /usr/local/gerrit --batch --install-plugin download-commands

执行命令然后就开始安装过程了,安装的过程会询问很多问题,有一些判断性的问题会用 [y/N] 这样的形式,大写的字母表示默认,我们直接敲回车就表示采用默认的安装选项。我们安装的时候,可以只在Authentication method时输入http,其他全部回车用默认值,因为其他配置我们待会可以通过etc/gerrit.config文件进行修改。

如果使用Mysql数据库,可能会出现数据库错误错误“Default值啥啥啥的,没记录忘记了”,这时需要使用root用户去数据库里面设置下参数,语句如下:

set global explicit_defaults_for_timestamp=1;

四、安装Nginx

1、安装openssl(一般系统都有,可以不安装)

① 源码安装openssl(下载地址:https://www.openssl.org/source/,本文使用版本:openssl-fips-2.0.16.tar.gz

② 解压安装

# 解压
tar -xzvf openssl-fips-2.0.16.tar.gz -C /usr/local/software
# 进入解压目录
cd /usr/local/software/openssl-fips-2.0.16
# 配置+编译检查
./config --prefix=/usr/local/openssl
# 编译+安装
make && make install

2、获取zlib源码

① zlib源码下载(下载地址:http://zlib.net/,本文使用版本:zlib-1.2.11.tar.gz

② 解压

# 解压
tar -xzvf zlib-1.2.11.tar.gz -C /usr/local/software

3、获取pcre源码

① pcre源码下载(下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/,本文使用版本:pcre-8.42.tar.gz

② 解压

# 解压
tar -xzvf pcre-8.42.tar.gz -C /usr/local/software

4、安装Nginx

① 源码安装Nginx(下载地址:http://nginx.org/download/,本文使用版本:nginx-1.14.0.tar.gz

② 解压安装

# 解压
tar -xzvf nginx-1.14.0.tar.gz -C /usr/local/software
# 进入解压目录
cd /usr/local/software/nginx-1.14.0
# 配置+编译检查(这里注意"--with-pcre"和"--with-zlib"是指向源码目录,不是安装目录)
./configure --prefix=/usr/local/nginx --with-openssl=/usr/local/openssl --with-zlib=/usr/local/software/zlib-1.2.11 --with-pcre=/usr/local/software/pcre-8.42
# 编译+安装
make && make install

安装过程,可能会出现编译问题(gcc啥的),需要安装gcc,命令如下

yum -y install gcc gcc-c++

③ 可能出现错误信息
错误信息:路径下找不到nginx.pid

#nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

解决方法:执行一下nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

五、Nginx配置

1、增加gerrit转发配置文件

# 配置gerrit转发
vim /usr/local/nginx/conf/gerrit.conf
# 配置内容如下:
server {
    listen *:80;
    server_name gerrit.microwu.com;
    allow   all;
    deny    all;

    auth_basic "Welcomme to Gerrit Code Review Site!";
    auth_basic_user_file /usr/local/gerrit/conf/gerrit.password;

    location / {
        proxy_pass  http://127.0.0.1:8080;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
    }
}

2、将gerrit转发配置include到nginx.cnf

vim /usr/local/nginx/conf/nginx.conf
# 在http{}中增加一行,
include gerrit.conf;

3、重启Nginx

/usr/local/nginx/sbin/nginx -s reload

六、Apache安装

在上述配置中已经指向gerrit认证用户保存文件为/usr/local/gerrit/conf/gerrit.password,这里我们需要用apach的htpasswd工具来编辑该文件,所以需要安装Apache。

1、安装APR

① 源码安装APR(下载地址:http://apr.apache.org/download.cgi,本文使用版本:apr-1.6.3.tar.gz

② 解压安装

# 解压
tar -xzvf apr-1.6.3.tar.gz -C /usr/local/software
# 进入解压目录
cd /usr/local/software/apr-1.6.3
# 配置+编译检查
./configure --prefix=/usr/local/apr
# 编译+安装
make && make install

这时可能报错:rm: cannot remove `libtoolT': No such file or directory
这时我们修改configure文件中的$RM "$cfgfile"为$RM -f "$cfgfile"
再次运行./configure --prefix=/usr/local/apr即可

2、安装APR-Util

① 源码安装APR-Util(下载地址:http://apr.apache.org/download.cgi,本文使用版本:apr-util-1.6.1.tar.gz

② 解压安装

# 解压
tar -xzvf apr-util-1.6.1.tar.gz -C /usr/local/software
# 进入解压目录
cd /usr/local/software/apr-util-1.6.1
# 配置+编译检查
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# 编译+安装
make && make install

这时可能报错:error: expat.h: No such file or directory
这时我们安装"yum -y install expat-devel",再次运行make即可(make之前做下make clean清除之前的编译)

3、安装pcre

① 源码安装pcre(下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/,本文使用版本:pcre-8.42.tar.gz

② 解压安装

# 解压
tar -xzvf pcre-8.42.tar.gz -C /usr/local/software
# 进入解压目录
cd /usr/local/software/pcre-8.42
# 配置+编译检查
./configure --prefix=/usr/local/pcre
# 编译+安装
make && make install

安装过程,可能会出现编译问题(gcc啥的),需要安装gcc,命令如下

yum -y install gcc gcc-c++

4、安装apache

① 源码安装apache(下载地址:http://httpd.apache.org/download.cgi,本文使用版本:httpd-2.4.33.tar.gz

② 解压安装

# 解压
tar -xzvf httpd-2.4.33.tar.gz -C /usr/local/software
# 进入解压目录
cd /usr/local/software/httpd-2.4.33
# 配置+编译检查
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
# 编译+安装
make && make install

5、验证安装结果

默认是80端口,Nginx已经启动占用80端口,所以先关闭Nginx再启动apace验证。

# 停止Nginx
/usr/local/nginx/sbin/nginx -s stop
# 启动Apache
/usr/local/apache/bin/apachectl start

# 记得验证完成之后关闭Apache,启动Nginx
# 停止Apache
/usr/local/apache/bin/apachectl stop
# 启动Nginx
/usr/local/nginx/sbin/nginx

Linux搭建Gerrit(Nginx+Apache+Gerrit)_第1张图片

七、Gerrit最终配置

1、Gerrit用户配置

# 创建(覆盖原有)gerrit.password并添加admin用户
/usr/local/apache/bin/htpasswd -c /usr/local/gerrit/conf/gerrit.password admin
#New password:
#Re-type new password:
#Adding password for user admin

# 记住要授权,否则可能会出现500错误
chmod 755 /usr/local/gerrit/conf/gerrit.password

# 添加用户 user为用户名,123456为密码
/usr/local/apache/bin/htpasswd -b /usr/local/gerrit/conf/gerrit.password user 123456

2、Gerrit配置(/usr/local/gerrit/etc/gerrit.config)

① 配置访问地址:

canonicalWebUrl 参数值修改为将要在浏览器访问的地址(Nginx代理地址),比如当前访问Gerrit地址为http://192.168.33.10/,那么修改为http://192.168.33.10/

[gerrit]
        basePath = git # 默认值就好
        serverId = 073f4b5f-94a5-4f08-907a-bb1039c14bec # 默认值就好
        canonicalWebUrl = http://192.168.0.96:81/ # 对外的访问地址

② 邮箱配置

[sendemail]
	smtpServer = smtp.exmail.qq.com # 邮件发送服务器地址
	smtpServerPort = 465 # 邮件发送服务器端口
	smtpEncryption = ssl # 加密方式
	smtpUser = ******@pyhtech.cn # 发件人邮箱
	smtpPass = ****** # 发件人邮箱地址
	sslVerify = false # SSL验证
	from = ******@pyhtech.cn # 发件人

③ 服务端口配置

[httpd]
        listenUrl = http://*:8089/ # gerrit服务的端口号配置,默认是8080,如果有冲突可更换

八、Gerrit访问

注意:第一个登录Gerrit的用户默认为超级管理员用户!

Nginx有代理80端口,我这里的代理是81端口。访问地址:http://192.168.0.96:81/,结果如下:

Linux搭建Gerrit(Nginx+Apache+Gerrit)_第2张图片

录入刚刚使用Apache创建的认证用户名和密码,登录进入

Linux搭建Gerrit(Nginx+Apache+Gerrit)_第3张图片

如上图,安装完毕!

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Gerrit,Git)