在查看页面并执行以下操作时,我收到500错误代码:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
输出 检查GitLab API访问:FAILED。代码:500
gitlab-shell self-check failed
Try fixing it:
Make sure GitLab is running;
Check the gitlab-shell configuration file:
sudo -u git -H editor /home/git/gitlab-shell/config.yml
Please fix the error above and rerun the checks.
答案 0 :(得分:2)
检查位于/home/git/gitlab/log/production.log的生产日志
tail -n 100 /home/git/gitlab/log/production.log
我看到最后几个错误与:
有关Errno::EACCES (Permission denied - connect(2) for /var/run/redis/redis.sock):
在<&#39; 中阻止 config/initializers/rack_attack_git_basic_auth.rb:5:in
所以从命令行:
cd /var/run/redis/
ls -l
输出
-rw-r--r-- 1 redis redis 5 Mar 29 16:39 redis-server.pid
srwxrwxr-x 1 root root 0 Mar 29 16:39 redis.sock
在这里,我认为文件本身redis.sock
具有错误的权限或由错误的用户(root)拥有,让我们将其更改为redis:
chown redis:redis redis.sock
ls -l
输出
-rw-r--r-- 1 redis redis 5 Mar 29 16:39 redis-server.pid
srwxrwxr-x 1 redis redis 0 Mar 29 16:39 redis.sock
现在一切正常,我现在可以从终端推送/拉到gitlab,也可以查看页面而不会出现500错误。
500错误可能有不同的原因(尽管大多数时候它的权限错误都是这样的)因此检查日志很重要。