修复 Linux 上的 GitLab 错误,关键取决于具体报错信息。下面我先给你一个通用排查与修复流程,再列出常见错误及对应解决方案,你可以对照使用。
sudo gitlab-ctl status
run 状态,记录服务名(如 nginx、postgresql、sidekiq)sudo gitlab-ctl tail
或查看具体组件日志:
sudo gitlab-ctl tail nginx
sudo gitlab-ctl tail postgresql
sudo gitlab-ctl tail sidekiq
sudo gitlab-ctl tail gitlab-rails
sudo gitlab-rake gitlab:check
如果配置有问题:
sudo gitlab-ctl reconfigure
free -h
df -h
top
常见问题:
/var/opt/gitlab)原因
修复
sudo gitlab-ctl restart
检查端口:
sudo netstat -tulnp | grep 80
如内存不足:
# 临时释放缓存
sync && echo 3 > /proc/sys/vm/drop_caches
原因
修复
sudo gitlab-ctl stop
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
如果是权限问题:
sudo chown -R git:git /var/opt/gitlab
错误示例
postgresql: could not start
修复
sudo gitlab-ctl stop postgresql
sudo chown -R gitlab-psql:gitlab-psql /var/opt/gitlab/postgresql
sudo gitlab-ctl start postgresql
检查
sudo gitlab-ctl tail nginx
常见原因
/etc/gitlab/gitlab.rb 中 external_url 配置错误修复
sudo vi /etc/gitlab/gitlab.rb
确认:
external_url 'http://gitlab.example.com'
然后:
sudo gitlab-ctl reconfigure
错误示例
remote: GitLab: 403 Forbidden
修复
sudo gitlab-rake gitlab:gitolite:rebuild_keys
sudo gitlab-rails console
u = User.where(id: 1).first
u.password = 'NewPassword123'
u.password_confirmation = 'NewPassword123'
u.save!
sudo gitlab-ctl stop
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
sudo gitlab-ctl status
你可以直接把以下信息发我,我可以精准定位问题:
sudo gitlab-rake gitlab:env:info
cat /etc/os-release
我可以一步步带你修 ✅