Files
gerrit/服务无法访问解决方案.md
2025-12-22 17:12:39 +08:00

186 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` 的输出
我可以帮您进一步排查。