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` 的输出
|
||
|
||
我可以帮您进一步排查。
|
||
|