Ubuntu下部署gerrit+报错分析(超详细)

server/2024/11/29 22:40:04/

gerrit_0">Ubuntu下部署gerrit代码平台

之前安装过几次 最后都在Apache代理这里失败了,如下图,总是gerrit.config与Apache2.config配置有问题,后面换了使用ngnix代理,简单多了
在这里插入图片描述

  1. 安装Mysql、gerrit、jdk、git
    这一步也是非必须得,也可以使用默认H2数据库,大型公司还是建议使用Mysql这种统一。使用apt直接安装mysql
    apt-get install gitapt-get install mysql-servermysql_secure_installationsystemctl status mysql.servicemysqladmin -p -u root version #登录mysql 创建用户与密码  刷新mysql -pCREATE USER 'gerrit'@'localhost' IDENTIFIED BY 'gerrit123';create database reviewdb;GRANT ALL ON reviewdb.* TO 'gerrit'@'localhost';FLUSH PRIVILEGES;#创建存储数据表CREATE TABLE account_group_by_id_aud(added_by INT DEFAULT 0 NOT NULL,removed_by INT,removed_on TIMESTAMP NULL DEFAULT NULL,group_id INT DEFAULT 0 NOT NULL,include_uuid VARCHAR(255) BINARY DEFAULT '' NOT NULL,added_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY(group_id,include_uuid,added_on));CREATE TABLE account_group_members_audit (added_by INT DEFAULT 0 NOT NULL, removed_by INT,removed_on TIMESTAMP NULL DEFAULT NULL, account_id INT DEFAULT 0 NOT NULL, group_id INT DEFAULT 0 NOT NULL,added_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY(account_id,group_id,added_on));CREATE TABLE changes(change_key VARCHAR(60) BINARY DEFAULT '' NOT NULL,created_on TIMESTAMP NOT NULL,last_updated_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,owner_account_id INT DEFAULT 0 NOT NULL,dest_project_name VARCHAR(255) BINARY DEFAULT '' NOT NULL, dest_branch_name VARCHAR(255) BINARY DEFAULT '' NOT NULL,status CHAR(1) DEFAULT '' NOT NULL,current_patch_set_id INT DEFAULT 0 NOT NULL,subject VARCHAR(255) BINARY
DEFAULT '' NOT NULL,topic VARCHAR(255) BINARY, original_subject VARCHAR(255) BINARY, submission_id VARCHAR(255) BINARY, note_db_state TEXT,row_version INT DEFAULT 0 NOT NULL,change_id INT DEFAULT 0 NOT NULL,PRIMARY KEY(change_id));#安装gerritwebsudo apt-get install gitwebsudo apt-get install git-review#下载gerrit#之前下载了gerrit-3.9.3.war 在java -jar部署的时候提示我的jdk版本不兼容。我的Ubuntu安装的jdk是jdk 11,后面换了一个更低的版本gerrit-3.4.1.war才ok。这里提供两个低版本下载地址wget https://gerrit-releases.storage.googleapis.com/gerrit-3.1.3.warwget https://gerrit-releases.storage.googleapis.com/gerrit-3.4.1.war#运行gerrit war包sudo java -jar gerrit*.war init#安装的选项  注意这个type = HTTP[gerrit]basePath = gitcanonicalWebUrl = http://192.168.1.100serverId = c2681fe1-2f8f-4da4-b074-8e23f6dfe942
[container]javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"user = rootjavaHome = /usr/lib/jvm/java-11-openjdk-amd64
[database]type = mysqlhostname = localhostdatabase = reviewdbusername = gerrit
[index]type = lucene
[auth]type = HTTP
[receive]enableSignedPush = false
[sendemail]smtpServer = localhost
[sshd]listenAddress = *:29418
[httpd]listenUrl = proxy-http://*:8081/
[cache]
directory = cache#利用lucene创建索引sudo java -jar gerrit-3.4.1.war reindex#启动gerrit   #进入到bin目录  执行启动脚本cd /opt/gerrit/bin./gerrit.sh start  #启动脚本./gerrit.sh stop   #停止./gerrit.sh restart  #重启#root@ubuntu20:~# cd /opt/gerrit/bin/#root@ubuntu20:/opt/gerrit/bin# ./gerrit.sh restart#Stopping Gerrit Code Review: OK#Starting Gerrit Code Review: OK#ok 证明gerrit已经启动成功,但是当我们使用ip访问 页面报错 如开头web报错,这种是因为没有配置代理或者gerrit.config配置问题

在这里插入图片描述
在这里插入描述
二、安装代理
Apache代理坑有点多,搞了好久,还是有问题。我哩个豆
配置如下 启动apache服务报错

<VirtualHost *:80>ServerName 192.168.1.100ProxyRequests OffProxyVia OffProxyPreserveHost On<Proxy *>Order deny,allowAllow from all</Proxy><Location '/login/'>AuthType BasicAuthName "Gerrit Code Review"Require adminAuthBasicProvider file# gerrit.assword就是你创建的登录用户、密码存储的地方 创建命令如下# htpasswd -c /opt/gerrit/etc/gerrit.password admin # htpasswd -m /opt/gerrit/etc/gerrit.password zypAuthUserFile  /opt/gerrit/etc/gerrit.password </Location>AllowEncodedSlashes OnProxyPass / http://192.168.1.100:8081/</VirtualHost>

gerrit.config配置文件:

[gerrit]basePath = gitcanonicalWebUrl = http://192.168.1.100:8081serverId = c2681fe1-2f8f-4da4-b074-8e23f6dfe942
[container]javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"user = rootjavaHome = /usr/lib/jvm/java-11-openjdk-amd64
[database]type = mysqlhostname = localhostdatabase = reviewdbusername = gerrit
[index]type = lucene
[auth]type = HTTP
[receive]enableSignedPush = false
[sendemail]smtpServer = localhost
[sshd]listenAddress = *:29418
[httpd]listenUrl = proxy-http://192.168.1.100:8081/
[cache]directory = cache

报错截图如下 百度了下 说需要 在配置文件加下面三行 加了之后不报Invalid command ‘ProxyRequests’, perhaps misspelled or defined by a module not includ>这个错误,报另一个load加载下面这三行错误。草,哥放弃 用nginx代理

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_http2_module modules/mod_proxy_http2.so

在这里插入图片描述

Nginx代理

nginx安装看这里:https://www.cnblogs.com/taiyonghai/p/6728707.html

cd /etc/nginx/
vim nginx.config
#http标签添加下面的配置
server {listen 80;server_name 192.168.1.100;allow all;deny all;auth_basic "Welcome to Gerrit Code Review Site!";# **gerrit.assword就是你创建的登录用户、密码存储的地方**htpasswd -c /opt/gerrit/etc/gerrit.password admin htpasswd -m /opt/gerrit/etc/gerrit.password zyp# gerrit.assword内容如下# admin:$apr1$yfDrZyx7$oLljjjMhseobpsGm5PiDU1# zyp:$apr1$QmHYzxYL$k5vUEyn02ZFyDyKaWz.or/auth_basic_user_file /opt/gerrit/etc/gerrit.password;location / {proxy_pass http://192.168.1.100:8081;proxy_set_header X-Forwarded-For $remote_addr;proxy_set_header Host $host;}}

启动nginx

启动
[root@localhost ~]# /usr/local/nginx/sbin/nginx
停止/重启
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s stop(quit、reload)
命令帮助
[root@localhost ~]# /usr/local/nginx/sbin/nginx -h
验证配置文件
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

确认gerrit.config与nginx.config文件无误,启动nginx与gerrit

/usr/local/nginx/sbin/nginx -s reload
cd /opt/gerrit/bin/
./gerrit.sh restart

浏览器 http://192.168.1.100:80或者8081端口 访问成功
在这里插入图片描述


http://www.ppmy.cn/server/15053.html

相关文章

Linux 底软开发——对CAN的详细操作(周期发送,异常检测,过滤报文)

Linux底软开发—对CAN发送接收详细操作 文章目录 Linux底软开发—对CAN发送接收详细操作1.保证多条CAN数据发送的周期性2.解析CAN报文数据3.CAN总线异常机制应对4.对CAN报文进行过滤操作5.完整的接收报文代码&#xff08;过滤&#xff0c;心跳检测&#xff0c;解析&#xff09;…

Nvidia BF3 DPU安装

参考链接&#xff1a;https://docs.nvidia.com/doca/archive/doca-v2-5-0/nvidiadocadeveloperquickstartguide/index.html 安装DPU硬件 参考链接&#xff1a;https://docs.nvidia.com/networking/display/bluefield2dpuenug/hardwareinstallation 断电、插网卡 卸载之前的…

记一次etcd数据恢复

使用官方示例 etcd:image: bitnami/etcd:3.4.15restart: alwaysvolumes:- ./etcd_data:/bitnami/etcdenvironment:ALLOW_NONE_AUTHENTICATION: "yes"ETCD_ADVERTISE_CLIENT_URLS: "http://etcd:2379"ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379…

go热更新配置文件

使用go开发的时候是不是大家都遇到过&#xff0c;更改完配置之后需要重新启动自己的服务&#xff0c;会导致短暂的访问不到的效果&#xff0c;今天就给大家分享一个go热更新配置文件的小例子&#xff0c;让你不用停服务的情况也能加最新的配置文件&#xff0c;请看下面代码 fu…

Python 全栈安全(一)

原文&#xff1a;annas-archive.org/md5/712ab41a4ed6036d0e8214d788514d6b 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 前言 序言 多年前&#xff0c;我在亚马逊搜索了一本基于 Python 的应用程序安全书。我以为会有多本书可供选择。已经有了很多其他主题的 Pyt…

yolov8缺陷检测改进步骤

yolov8改进步骤 1.看视频:parse 2.修改fitness()函数 位置&#xff1a;ultralytics/utils/metrics.py 检索fitness(self) def fitness(self):"""Model fitness as a weighted combination of metrics."""w [0.0, 1.0, 0.0, 0.0] # weights f…

同一工程中不同RS的问题结论

目录 MeshDevice/deviceAll && /wvp/device ​编辑 故意改成mesh下的RS,结果包裹了&#xff1a; sys2/redishealth ​编辑 ​编辑 原因解析 MeshDevice/deviceAll && /wvp/device 测试结果&#xff1a;都使用 import com.gbcom.wvp.domain.vo.RS; 返…

UE5 GAS开发P34 游戏效果理论

GameplayEffects Attributes&#xff08;属性&#xff09;和Gameplay Tags&#xff08;游戏标签&#xff09;分别代表游戏中实体的特性和标识。 Attributes&#xff08;属性&#xff09;&#xff1a;Attributes是用来表示游戏中实体的特性或属性的值&#xff0c;例如生命值、…