Gerrit 2.12.2 window版本部署

背景:原有gerrit+git服务器一套(以下称老gerrit),现在需要在备份机器上面也搭建一套gerrit(以下称新gerrit)。

目前老gerrit服务器信息为:centos  gerrit 2.12.2+jdk1.8+mysql5.1.73+nginx

新gerrit服务器信息为:window server   gerrit 2.12.2+jdk1.8+mysql5.1.73+Apecha

gerrit版本,下载了跟之前老版本一样的版本包 2.12.2


Gerrit 2.12 Release | Gerrit Code Review
Gerrit 2.12 Release | Gerrit Code Review

下载Java1.8:

https://www.oracle.com/java/technologies/downloads

Apache下载:

https://www.apachehaus.com/cgi-bin/download.plx

Apache和Java没法下载,在网上找了其他网址下载对应的包

1、安装java,直接下一步安装即可。安装完配置环境变量Path添加jdk bin目录

2、安装apache2,解压下载的压缩包,提取里面的Apache24目录到E:\Apache24

设置环境变量Path添加Apache24 bin目录

修改 E:\Apache24\conf\httpd.conf

Define SRVROOT "E:\Apache24"...ServerName localhost:80...# 保证下面这些选项是非注释状态,即去掉前面的#
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule rewrite_module modules/mod_rewrite.so

双击“E:\Apache24\bin\httpd.exe”运行服务

启动Apache失败,原因是机器上还部署了VisualSVN-Server,占用了443端口

网上查找到修改Apache端口的方法:

修改文件(一般在此目录下:E:\Apache24\conf\extra)httpd-ssl.conf 、httpd.ahssl.conf,将443端口替换为442

再次启动httpd.exe,这次没报错,查看了442监听端口正常

然后浏览器输入“http://localhost”,若出现如下介绍页面则Apache安装且运行成功。

再次修改 E:\Apache24\conf\httpd.conf, 在文件的末尾处添加一下内容

<VirtualHost *:80>ServerName localhost  #这里换成新gerrit的IPProxyRequests OffProxyVia OffProxyPreserveHost On<Proxy *:80>Require all granted</Proxy>  <Location "/login/">AuthType BasicAuthName "Gerrit Code Review"Require valid-userAuthBasicProvider fileAuthUserFile E:/Gerrit/etc/gerrit.passwd   #这里是gerrit用户账号密码文件</Location>AllowEncodedSlashes OnProxyPass  / http://localhost:8080/    #这里换成新gerrit的IP
</VirtualHost>

运行以下命令注册服务

httpd.exe -k install -n "Apache24"

这个提示并不是错误提示,这句话想要表达的意思是说:如果这行下边出现错误则解决错误后再启动!,如果下边没有出现错误那边直接启动即可.

注册服务之后,在启动Apache服务报错如下:

解决方法:

没有安装:vc_redist_x64 导致的,打开链接:Apache VS17 binaries and modules download

下载vc_redist_x64并安装。

删除并重新添加Apache为本地服务,启动服务,可以正常运行了

3、安装mysql(由于老gerrit上面用的是mysql,所以新gerrit上面也需要安装)

gerrit里面自带的是H2的数据库

官网:MySQL 官网找不到以前老版本的mysql了,从其他网站下载了一个5.1.73的window版本

选择默认,下一步,点击安装:

后面直接默认配置下一步,直到下面页面,这个勾记得保留:

点击finish之后进入这个界面:

这个页面是设置数据库root密码的,这个密码要记住:

其他没截图的就是默认安装

查看环境变量是否配置mysql,没有的话需要配置下

用工具连接mysql数据库,用户名密码用上面设置的那个,查看mysql数据文件的存放路径

show global variables like "%datadir%"

例如mysql的数据文件存放路径为:C:\ProgramData\MySQL\MySQL Server 5.1\Data\

停掉mysql服务,将老gerrit服务器上面的mysql数据库相关数据文件拷贝进去:数据库的文件和ibdata1文件拷贝进去到C:\ProgramData\MySQL\MySQL Server 5.1\Data\下面

启动msyql服务

用连接数据库的工具查看数据库是否存在:

因为老的gerrit服务器上面连接数据库的用户是gerrit,所以需要给gerrit用户数据库连接权限,配置对应的权限:gerritdb是数据库的名称,BY后面是gerrit用户对应的密码:

GRANT ALL PRIVILEGES ON gerritdb.* TO 'gerrit'@'localhost' IDENTIFIED BY 'gerrit';

FLUSH PRIVILEGES;

C:\Users\Administrator\Desktop>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.1.73-community MySQL Community Server (GPL)Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> GRANT ALL PRIVILEGES ON gerritdb.* TO 'gerrit'@'localhost' IDENTIFIED BY 'gerrit';  #BY后面是gerrit用户对应的密码
Query OK, 0 rows affected (0.01 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

4、安装gerrit

准备工作(因为是迁移,需要用到老数据,所以很多数据需要沿用老gerrit上面的):

a、由于mysql-connector-java-5.1.21.jar、bcpkix-jdk15on-152.jar、bcprov-jdk15on-152.jar安装过程下载失败,需要从以前老的gerrit服务器上面拷贝到新的gerrit/lib下面

b、中间的时候因为没有"ssh-keygen"程序报错了,电脑之前安装过git bash,里面有这个程序,故把路径加到环境变量里面:

c、老的gerrit上面的etc/ssh_host_key文件拷贝过来放到新gerrit的etc目录下面

d、老gerrit上面的cache目录拷贝到新的gerrit目录下

e、老gerrit上面的index目录拷贝到新的gerrit目录下

(E:\Gerrit是安装新gerrit的地方,里面存放老gerrit数据的时候没有的目录可以自己建,其他目录在安装gerrit的时候会自己生成)

f、开始安装gerrit,把下载的war包放到对应目录下(E:\Gerrit),安装过程中需要关注的一些重要信息如下:

安装命令:java -jar gerrit.war init -d E:\Gerrit

E:\Gerrit>java -jar gerrit.war init -d E:\Gerrit
...Location of Git repositories   [git]: E:\git    #这里指定到备份的git数据目录下面*** SQL Database
***Database server type           [h2]: mysql                #用mysql这里需要填写Gerrit Code Review is not shipped with MySQL Connector/J 5.1.21Server hostname                [localhost]:
Server port                    [(mysql default)]:
Database name                  [reviewdb]: gerritdb       #跟老gerrit数据库保持同名
Database username              [Administrator]: gerrit    #数据库用户
gerrit's password              :confirm password :....Authentication method          [OPENID/?]: HTTP
Get username from custom HTTP header [y/N]?
SSO logout URL                 :
Enable signed push support     [y/N]?*** Review Labels
***Install Verified label         [y/N]?*** Email Delivery
***SMTP server hostname           [localhost]: smtp.exmail.qq.com  #smtp这块根据个人需求输入
SMTP server port               [(default)]: 25
SMTP encryption                [NONE/?]:
SMTP username                  [Administrator]: abcd@163.com   
yanfazhongxin@fsmeeting.com's password :confirm password :*** Container Process
***Run as                         [Administrator]: Administrator     
Java runtime                   [C:\Program Files\jdk1.8.0_73\jre]:
Copy gerrit.war to E:\Gerrit\bin\gerrit.war [Y/n]? y
Copying gerrit.war to E:\Gerrit\bin\gerrit.war*** SSH Daemon
***Listen on address              [*]:
Listen on port                 [29418]:.....Behind reverse proxy           [y/N]?
Use SSL (https://)             [y/N]?
Listen on address              [*]:
Listen on port                 [8080]:
Canonical URL                  [http://localhost:8080/]: http://1.1.1.1:8080/   #这里可以改成对应的服务器IP,如果IP会变,可以用localhost代替*** Plugins
***Installing plugins.
Install plugin singleusergroup version v2.12.2 [y/N]? y
Install plugin commit-message-length-validator version v2.12.2 [y/N]? y
Install plugin reviewnotes version v2.12.2 [y/N]? y
Install plugin replication version v2.12.2 [y/N]? y
Install plugin download-commands version v2.12.2 [y/N]? y
Initializing plugins.
No plugins found with init steps.

用htpasswd为gerrit设置admin户名和密码,命令如下:(之前从老gerrit上面拷贝过来的gerrit.passwd无法生效,需要重新设置用户名密码)

htpasswd.exe -c E:\Gerrit\etc\gerrit.passwd admin

修改 E:\Gerrit\etc\gerrit.config成如下内容,注意#的地方

[gerrit]basePath = E:\\gitcanonicalWebUrl = http://1.1.1.1:80/   #新gerrit服务器的IP
[database]type = mysqlhostname = localhostdatabase = gerritdbusername = gerrit
[index]type = LUCENE
[auth]type = HTTP
[receive]enableSignedPush = false
[sendemail]smtpServer = smtp.exmail.qq.comsmtpServerPort = 25smtpUser = abcd@163.com
[container]user = AdministratorjavaHome = C:\\Program Files\\jdk1.8.0_73\\jre
[sshd]listenAddress = *:29418
[httpd]listenUrl = proxy-http://*:8080/
[cache]directory = cache

5、配置gitweb

在 E:\Gerrit\etc\gerrit.config增加如下内容:

[gitweb]cgi = C:\\Program Files\\Git\\mingw64\\share\\gitweb\\gitweb.battype = gitweb

gitweb配置

gitweb.bat的内容如下:

@echo off
"C:\Program Files\Git\usr\bin\perl.exe"  "C:\Program Files\Git\mingw64\share\gitweb\gitweb.cgi" %*

安装CGI模块

参考博主链接:Windows环境下配置Gerrit和GitWeb要点说明_gerrit window-CSDN博客

(主要问题是在Windows版本的Git上,gitweb的支持并不好,需要安装CGI模块)

可下载地址:http://search.cpan.org/CPAN/authors/id/M/MA/MARKSTOS/CGI.pm-3.65.tar.gz

把压缩包解压出来的CGI.pm-3.65/lib/目录中的内容复制到C:\Program Files\Git\mingw64\share\perl5\site_perl中。

执行gitweb.bat时,系统并不从mingw64目录中搜索相关CGI.pm,而是从usr目录下面找

所以将mingw64\share\perl5\site_perl目录复制到usr\share\perl5中:

再修改C:\Program Files\Git\mingw64\share\gitweb\gitweb.cgi文件中

# absolute fs-path which will be prepended to the project path
our $projectroot = “/E/git”;

our $projectroot是需要设置gerrit中代码仓库的目录位置。

改完之后重启Apache和gerrit

点击页面的gitweb报错如下:

[2024-11-05 11:00:17,837] [Gitweb-ErrorLogger] ERROR com.google.gerrit.httpd.gitweb.GitwebServlet : CGI: ???????????????ò?í±ê??·¨?????·?? [2024-11-05 11:00:17,837] [HTTP-32] ERROR com.google.gerrit.httpd.gitweb.GitwebServlet : Non-zero exit status (1) from C:\Program Files\Git\mingw64\share\gitweb\gitweb.bat

这个报错是由于上面的gitweb.bat文件里面的双引号用的是中文的双引号导致的,改了之后重启Apache和gerrit就可以了

至此整套迁移环境搭建完毕,启动服务的顺序如下:

apache

mysql

gerrit

可正常访问数据(^-^)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/465522.html

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

相关文章

一文搞懂Linux kernel编译步骤

一、前言 什么是Linux的内核编译呢&#xff1f;简单来说&#xff0c;Linux内核编译是一个将内核源代码转换成可在特定的硬件架构上运行的二进制文件的过程。通过编译内核&#xff0c;我们可以根据自己的需求和兴趣对内核进行定制和优化&#xff0c;以满足特定的应用场景。下文…

CST汽车天线仿真(双向混合求解)

CST从2018版本开始具有双向混合求解&#xff0c;到2019版已经通用微波工作室的各个求解器之间的双向混合。具体的混合对象如下图&#xff1a; 对天线的安装和耦合仿真&#xff0c;意味着对复杂结构&#xff08;天线&#xff09;和电大尺寸环境&#xff08;安装平台&#xff0c;…

leetcode-5-最长回文子串

题解&#xff1a; 回文串&#xff1a;如果一个字符串正着读和反着读都是一样的那这个字符串就是回文串。 对于一个子串而言&#xff0c;如果它是回文串&#xff0c;并且长度大于 2&#xff0c;那么将它首尾的两个字母去除之后&#xff0c;它仍然是个回文串。 1、初始化字典d…

Python反射API:面向对象编程的“魔法镜”

在Python的世界里&#xff0c;面向对象编程&#xff08;OOP&#xff09;就像是一场盛大的化妆舞会&#xff0c;每个对象都穿着华丽的外衣&#xff0c;隐藏着自己的真实面目。而Python的反射API&#xff0c;就像是一面“魔法镜”&#xff0c;能够让我们窥探这些对象的真实身份和…

Python练习8

Python日常练习 题目&#xff1a; 编写函数&#xff0c;接收两个正整数作为参数&#xff0c;返回一个元组&#xff0c; 其中第一个元数为最大公约数&#xff0c;第二个元素为最小公倍数。 例如&#xff1a; 若输入12&#xff0c;8&#xff0c;则输出如下 【请输入一个…

推荐程序员好用的浏览器插件

推荐程序员好用的浏览器插件 1. 网页颜色控制&#xff1a;Dark Reader安装效果 2. 前端助手&#xff1a;FeHelper安装效果 3. markdown可视化&#xff1a;Markdown Reader安装效果 4. ES插件&#xff1a;Multi Elasticsearch Heads安装效果 1. 网页颜色控制&#xff1a;Dark Re…

希尔排序算法

1、基本思想 希尔排序也称缩小增量排序&#xff0c;是插入排序的一种更高效的改进版本。它的基本思想是先将待排序的数组元素按照一定的间隔&#xff08;称为增量&#xff09;分成若干个子序列&#xff0c;分别对这些子序列进行插入排序&#xff0c;随着迭代的进行&#xff0c;…

太速科技-634-基于3U PXIe的VU3P FMC+数据接口板

基于3U PXIe的VU3P FMC数据接口板 一、产品概述 板卡是一款基于 3U PXIE 总线架构的高性能数据预处理FMC 载板&#xff0c;具有 1 个 FMC&#xff08;HPC&#xff09;接口&#xff0c;1 个 X8 GTH 背板互联接口&#xff0c;可以实现 1 路 PCIe x8。板卡主控芯片采用Xilin…

OpenCV基本操作(python开发)——(8)实现芯片瑕疵检测

OpenCV基本操作&#xff08;python开发&#xff09;——&#xff08;1&#xff09; 读取图像、保存图像 OpenCV基本操作&#xff08;python开发&#xff09;——&#xff08;2&#xff09;图像色彩操作 OpenCV基本操作&#xff08;python开发&#xff09;——&#xff08;3&…

MySQL数据库中的视图

视图 ​ 本篇将开始介绍有关数据库中视图的相关知识点&#xff0c;其中主要包含视图的基本使用&#xff0c;视图规则和限制。 ​ 视图是一个虚拟表&#xff0c;其内容由查询定义。同真实的表一样&#xff0c;视图包含一系列带有名称的列和行数据&#xff0c;视图的数据变化会…

Docker 镜像拉不动?自建 Docker Hub 加速站 解决镜像拉取失败

本文首发于只抄博客&#xff0c;欢迎点击原文链接了解更多内容。 前言 众所周知&#xff0c;6 月份的时候&#xff0c;Docker Hub 的镜像就已经无法正常拉取&#xff0c;那会随手用 Nginx 反代了一下 Docker Hub&#xff0c;建了个自用的镜像站&#xff0c;一直用到了 9 月份&…

应对传统能源企业管理人员青黄不接问题:搭建系统完善的招聘管理体系

应对传统能源企业管理人员青黄不接问题&#xff1a;搭建系统完善的招聘管理体系 对于很多传统能源企业由于成立时间久&#xff0c;发展到现在&#xff0c;往往都面临着一个共性问题&#xff0c;即未来三到五年&#xff0c;老员工退休后&#xff0c;新员工如何接续的问题。这个…

C++进阶-->红黑树的实现

1、红黑树的概念 红黑树是一棵二叉搜索树&#xff0c;他和前面AVL树不同的是红黑树不是通过平衡因子来保证树的平衡&#xff0c;而是在树结点的处加多了个记录颜色的变量&#xff0c;这个变量可以是红色或者黑色。通过对任何一条从根到叶子的路径上各个结点的颜色进行约束&…

Linux操作系统开机引导

linux操作系统的开机引导的过程 linux操作系统开机流程图 1、开机自检&#xff1a;根据bios的设置&#xff0c;对cpu、内存、显卡、键盘等设备进行初步检测&#xff0c;如果以上检测设备正常工作&#xff0c;系统会把控制权移交到硬盘 总结&#xff1a;检测包含系统启动操作系…

DataX 的安装配置和使用 (详细版)

1&#xff0c;上传解压 1&#xff0c;开始上传安装包到你虚拟机上放置安装包的文件夹 2&#xff0c;开始解压 ,配置环境变量 1、上传 /opt/modules 2、解压 tar -zxvf datax.tar.gz -C /opt/installs 3、修改 vi /etc/profile 配置环境变量&#xff1a; export DAT…

蓝桥杯第21场小白入门赛补题

5.蓝桥派对 思路 &#xff1a;一个区间与多少个其他区间有关联&#xff0c;先对所有区间左端点和右端点从小到大排序&#xff0c;对于每个询问&#xff0c;我们先算出[1,r]这个区间里有多少个区间的起点即区间总数&#xff0c;使用upper_bound函数&#xff0c;然后使用lower_bo…

Linux篇(常见入门命令)

目录 一、开启终端 二、Linux命令格式 1. 什么是Linux 的命令&#xff1f; 三、Linux下的命令补全 四、切换用户 五、uname&#xff1a;查看操作系统信息 六、ls&#xff1a;查看目录下文件 1. 用法一 2. 用法二 3. 用法三 七、pwd&#xff1a;显示当前路径 八、cd&…

7.qsqlquerymodel 与 qtableview使用

目录 qtableview 委托QStyledItemDelegateQAbstractItemDelegateCheckBoxItemDelegate使用 qtableview 委托 //设置单元格委托 void setItemDelegate(QAbstractItemDelegate *delegate); QAbstractItemDelegate *itemDelegate() const;//设置列委托 void setItemDelegateForCol…

AMD显卡低负载看视频掉驱动(chrome edge浏览器) 高负载玩游戏却稳定 解决方法——关闭MPO

2024.11.6更新 关闭MPO有点用但是还是驱动掉到恶心&#xff0c;找到终极方法了视频输出直接插主板走核显&#xff0c;稳得一笔&#xff0c;3dmark跑了个分几乎没变化。核显负责桌面浏览器&#xff0c;独显就专心只跑游戏。等24.11驱动再看看 问题 折磨的开始是天下苦黄狗久矣&…

VS2022远程连接调试编译Linux环境下的C++代码

工具&#xff1a;VS2022 虚拟机&#xff1a;RHEL 8.0 一、下载必要工具 1.VS2022组件安装 打开VS2022Installer&#xff0c;点击修改下载必要工具。 选择Linux 和嵌入式开发&#xff0c;然后点击右下角的修改&#xff01; 等待安装........ 安装完成后&#xff0c;创建Linu…