186 lines
3.5 KiB
Markdown
186 lines
3.5 KiB
Markdown
|
|
# Gerrit 服务无法访问 - 解决方案
|
|||
|
|
|
|||
|
|
## 问题现象
|
|||
|
|
|
|||
|
|
访问 `http://101.43.95.130:8080` 时显示"连接失败"。
|
|||
|
|
|
|||
|
|
## 可能的原因
|
|||
|
|
|
|||
|
|
1. **服务未启动**
|
|||
|
|
2. **服务启动失败**
|
|||
|
|
3. **端口被占用**
|
|||
|
|
4. **防火墙阻止**
|
|||
|
|
|
|||
|
|
## 解决步骤
|
|||
|
|
|
|||
|
|
### 步骤 1:检查服务状态
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit_install/review_site
|
|||
|
|
bin/gerrit.sh status
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤 2:如果服务未运行,启动服务
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit_install/review_site
|
|||
|
|
|
|||
|
|
# 设置 Java 环境
|
|||
|
|
export JAVA_HOME=/usr/local/java/jdk-17.0.12+7
|
|||
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|||
|
|
|
|||
|
|
# 启动服务
|
|||
|
|
bin/gerrit.sh start
|
|||
|
|
|
|||
|
|
# 等待几秒后检查状态
|
|||
|
|
sleep 5
|
|||
|
|
bin/gerrit.sh status
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤 3:如果 review_site 目录不存在
|
|||
|
|
|
|||
|
|
说明需要重新初始化:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit
|
|||
|
|
chmod +x reinit_gerrit.sh
|
|||
|
|
./reinit_gerrit.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
或者手动执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit_install
|
|||
|
|
export JAVA_HOME=/usr/local/java/jdk-17.0.12+7
|
|||
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|||
|
|
|
|||
|
|
java -jar gerrit-3.9.0.war init \
|
|||
|
|
-d review_site \
|
|||
|
|
--batch \
|
|||
|
|
--no-auto-start \
|
|||
|
|
-D gerrit.canonicalWebUrl=http://101.43.95.130:8080/ \
|
|||
|
|
--install-plugin=download-commands \
|
|||
|
|
--install-plugin=replication \
|
|||
|
|
--install-plugin=reviewnotes
|
|||
|
|
|
|||
|
|
# 配置启动脚本
|
|||
|
|
cd review_site
|
|||
|
|
cp bin/gerrit.sh bin/gerrit.sh.bak
|
|||
|
|
sed -i "2i export JAVA_HOME=/usr/local/java/jdk-17.0.12+7\nexport PATH=\$JAVA_HOME/bin:\$PATH" bin/gerrit.sh
|
|||
|
|
|
|||
|
|
# 启动服务
|
|||
|
|
bin/gerrit.sh start
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤 4:检查日志
|
|||
|
|
|
|||
|
|
如果服务启动失败,查看错误日志:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit_install/review_site
|
|||
|
|
tail -50 logs/error_log
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤 5:检查端口
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 检查端口是否被监听
|
|||
|
|
netstat -tlnp | grep 8080
|
|||
|
|
# 或
|
|||
|
|
ss -tlnp | grep 8080
|
|||
|
|
|
|||
|
|
# 检查是否有其他进程占用端口
|
|||
|
|
lsof -i :8080
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤 6:检查防火墙
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# CentOS 7
|
|||
|
|
sudo firewall-cmd --list-ports
|
|||
|
|
sudo firewall-cmd --add-port=8080/tcp --permanent
|
|||
|
|
sudo firewall-cmd --reload
|
|||
|
|
|
|||
|
|
# 或者临时关闭防火墙测试
|
|||
|
|
sudo systemctl stop firewalld
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 快速诊断脚本
|
|||
|
|
|
|||
|
|
已创建诊断脚本,执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /home/renjianbo/gerrit
|
|||
|
|
chmod +x 检查并启动服务.sh
|
|||
|
|
./检查并启动服务.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这个脚本会自动:
|
|||
|
|
1. 检查 review_site 是否存在
|
|||
|
|
2. 检查服务状态
|
|||
|
|
3. 如果未运行,自动启动
|
|||
|
|
4. 显示访问地址
|
|||
|
|
|
|||
|
|
## 常见问题
|
|||
|
|
|
|||
|
|
### Q: 服务启动失败,日志显示什么?
|
|||
|
|
|
|||
|
|
**A:** 查看日志:
|
|||
|
|
```bash
|
|||
|
|
tail -50 /home/renjianbo/gerrit_install/review_site/logs/error_log
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
常见错误:
|
|||
|
|
- Java 版本不匹配 → 确保使用 Java 17
|
|||
|
|
- 端口被占用 → 检查是否有其他服务占用 8080
|
|||
|
|
- 权限问题 → 确保有读写权限
|
|||
|
|
|
|||
|
|
### Q: 端口 8080 被占用怎么办?
|
|||
|
|
|
|||
|
|
**A:** 可以修改端口:
|
|||
|
|
|
|||
|
|
编辑 `review_site/etc/gerrit.config`:
|
|||
|
|
```
|
|||
|
|
[httpd]
|
|||
|
|
listenUrl = http://*:8081/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
然后重启服务。
|
|||
|
|
|
|||
|
|
### Q: 防火墙阻止访问?
|
|||
|
|
|
|||
|
|
**A:** 开放端口或临时关闭防火墙测试:
|
|||
|
|
```bash
|
|||
|
|
sudo firewall-cmd --add-port=8080/tcp --permanent
|
|||
|
|
sudo firewall-cmd --reload
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 验证服务运行
|
|||
|
|
|
|||
|
|
服务启动成功后:
|
|||
|
|
|
|||
|
|
1. **检查进程**:
|
|||
|
|
```bash
|
|||
|
|
ps aux | grep gerrit
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. **检查端口**:
|
|||
|
|
```bash
|
|||
|
|
netstat -tlnp | grep 8080
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. **访问 Web 界面**:
|
|||
|
|
- 打开浏览器
|
|||
|
|
- 访问:`http://101.43.95.130:8080`
|
|||
|
|
- 应该能看到 Gerrit 登录页面
|
|||
|
|
|
|||
|
|
## 如果还是无法访问
|
|||
|
|
|
|||
|
|
请提供以下信息:
|
|||
|
|
1. `bin/gerrit.sh status` 的输出
|
|||
|
|
2. `tail -50 logs/error_log` 的最后几行
|
|||
|
|
3. `netstat -tlnp | grep 8080` 的输出
|
|||
|
|
|
|||
|
|
我可以帮您进一步排查。
|
|||
|
|
|