Files
gerrit/服务无法访问解决方案.md

186 lines
3.5 KiB
Markdown
Raw Normal View History

2025-12-22 17:12:39 +08:00
# 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` 的输出
我可以帮您进一步排查。