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

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.mzph.cn/pingmian/2600.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【c++】list类接口函数介绍与深度剖析模拟实现

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章来到list有关部分&#xff0c;这一部分函数与前面的类似&#xff0c;我们简单讲解&#xff0c;重难点在模拟实现时的迭代器有关实现 目录 1.List介绍2.接…

转向敏捷财务规划,实现更快更自信的决策

随着数字化的到来&#xff0c;原本基于电子表格的时代正逐渐拉下帷幕&#xff0c;大部分企业开始摆脱依赖于电子表格进行计划、预算和预测的传统规划系统&#xff0c;寻求更符合当今市场要求的敏捷财务规划。但不得不承认&#xff0c;当下电子表格仍然是多数企业使用最广泛的工…

Wireshark数据包分析入门

Wireshark数据包分析 1. 网络协议基础1.1. 应传网数物&#xff08;应表会传网数物&#xff09; 2. 三次握手2.1. 第一次握手2.2. 第二次握手2.3. 第三次握手2.4. 三次握手后流量特征 3. 第一层---物理层&#xff08;以太网&#xff09;4. 第二层---数据链路层&#xff08;PPP L…

ele pls 表格行内样式超出隐藏

使用 模板实现方案&#xff1a; 实现效果&#xff1a; 相关样式&#xff1a;

【网络技术】【Kali Linux】Wireshark嗅探(十)IPv4和IPv6

往期 Kali Linux 上的 Wireshark 嗅探实验见博客&#xff1a; 【网络技术】【Kali Linux】Wireshark嗅探&#xff08;一&#xff09;ping 和 ICMP 【网络技术】【Kali Linux】Wireshark嗅探&#xff08;二&#xff09;TCP 协议 【网络技术】【Kali Linux】Wireshark嗅探&…

Jenkins CI/CD 持续集成专题四 Jenkins服务器IP更换

一、查看brew 的 services brew services list 二、编辑 homebrew.mxcl.jenkins-lts.plist 将下面的httpListenAddress值修改为自己的ip 服务器&#xff0c;这里我是用的本机的ip 三 、重新启动 jenkins-lts brew services restart jenkins-lts 四 浏览器访问 http://10.85…

redis7安装与配置

一、下载 通过 redis官网 或者 redis中文网 下载。 以下是 redis 相关文档资料链接&#xff1a; redis源码地址 redis在线测试 redis命令参考 redis中文文档 历史发布版本的源码地址 二、版本命名规则 Redis从发布到现在&#xff0c;已经有十余年的时光了&#xff0c;…

云原生Service Mesh服务网格简单介绍

serviceMesh是什么 Service Mesh是一个用于处理服务间通信的基础设施层&#xff0c;旨在实现云原生应用复杂服务拓扑中的可靠请求传递。其基本构成是一组与应用一起部署的轻量级网络代理&#xff0c;这些代理对应用来说是透明的。Service Mesh通过统一的方式来控制和处理服务间…

双筒水封式防爆器使用方法要记好

双筒水封式防爆器使用方法要记好 型号&#xff08;YC-STFB型&#xff09; 双筒水封式防爆器属于双罐结构的水封式防爆器&#xff0c;安装在抽放瓦斯泵吸气侧和排气端的 管路上靠防爆器底部的水封保护井上井下、抽放泵站设备及用户按全&#xff1b;当瓦斯抽放时气体经由 进气…

【深度学习实战(24)】如何实现“断点续训”?

一、什么是断点续训&#xff1a; 中断的地方&#xff0c;继续训练。与加载预训练权重有什么区别呢&#xff1f;区别在于优化器参数和学习率变了。 二、如何实现“断点续训” 我们需要使用checkpoint方法保存&#xff0c;模型权重&#xff0c;优化器权重&#xff0c;训练轮数…

韩国机器人公司Rainbow Robotics推出RB-Y1轮式双臂机器人

文 | BFT机器人 近日&#xff0c;韩国机器人领域的佼佼者Rainbow Robotics揭开了RB-Y1移动机器人的神秘面纱&#xff0c;这款机器人以其创新的设计和卓越的功能引起了业界的广泛关注。与此同时&#xff0c;Rainbow Robotics还携手舍弗勒集团&#xff08;提供汽车、工业技术服务…

SpringCloud整合Ribbon负载均衡器

目录 一、模块一&#xff1a;提供数据 1.1 首先将第一个实例打包 1.2 使用命令行设置不同权重 1.3 打开图形化界面看看权重是否配置成功。 二、模块二&#xff1a;调用模块一 三、修改默认负载均衡策略 四、自定义规则 ​编辑 五、完整代码 5.1 目录结构 5.2 配置文件 …

网络中其他协议

目录 DNS协议 域名简介 ICMP协议 ICMP功能 ICMP协议格式 ping命令 NAT技术 NATP NAT技术的限制 代理服务器 DNS协议 DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;协议&#xff0c;是一个用来将域名转化为IP地址的应用层协议。 为什么有这个协…

“数据中心的秘密武器:ADOP AOC和DAC线缆的选择与优势”

&#x1f335;【DAC电缆和AOC电缆因其低延迟、低功耗和低成本而广泛应用于数据中心的高性能计算网络布线系统。DAC 电缆和 AOC 电缆有多种配置&#xff0c;以满足网络要求。每款产品均提供 10G SFP、25G SFP28、40G QSFP 和 100G QSFP28 数据速率&#xff0c;并提供从 40G 到 4…

python基础--流程控制之条件语句

目标 条件语句作用if语法if…else…多重判断if嵌套 一. 了解条件语句 假设一个场景&#xff1a; 同学们这个年龄去过网吧吗&#xff1f;去网吧进门想要上网必须做的一件事是做什么&#xff1f;&#xff08;考虑重点&#xff09;为什么要把身份证给工作人员&#xff1f;是不…

如何培养单元测试的习惯?怎样才算一个好的单元测试?

你是怎么编写单元测试的呢&#xff1f;很多人的做法是先把所有的功能代码都写完&#xff0c;然后&#xff0c;再针对写好的代码一点一点地补写测试。 在这种编写测试的做法中&#xff0c;单元测试扮演着非常不受人待见的角色。你的整个功能代码都写完了&#xff0c;再去写测试就…

RAG开山之作:结合参数化与非参数化记忆的知识密集型NLP任务新解法

20年RAG刚提出时的论文&#xff1a;Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks&#xff0c;也算是RAG的开山之作之一了。 摘要&#xff1a;检索增强生成&#xff08;RAG&#xff09;方法结合了预训练语言模型与基于检索的非参数化记忆&#xff0c;通过…

Vue+Echarts 实现中国地图和飞线效果

目录 实现效果准备 实现效果 在线预览&#xff1a;https://mouday.github.io/vue-demo/packages/china-map/dist/index.html 准备 高版本的echarts&#xff0c;不包含地图数据&#xff0c;需要自己下载到项目中 1、地图数据下载 https://datav.aliyun.com/portal/school/at…

Pasta:HHE Optimized Stream Cipher

参考文献&#xff1a; [Dae95] Daemen J .Cipher and hash function design strategies based on linear and differential cryptanalysis[J].Doctoral Dissertation K.u.leuven, 1995.[GPP11] Guo J, Peyrin T, Poschmann A. The PHOTON family of lightweight hash function…

数据转换 | Matlab基于RP递归图一维数据转二维图像方法

目录 效果分析基本介绍程序设计参考资料获取方式 效果分析 基本介绍 Matlab基于RP递归图一维数据转二维图像方法 基于RP&#xff08;Recurrence Plot&#xff09;递归图的方法可以将一维数据转换为二维图像&#xff0c;以可视化数据的动态特征。RP递归图是一种表示时间序列相…