我按照documentation页面安装了GitLab。服务器可以http://foobar.com/gitlab访问。我有乘客+ apache安装。 (独角兽也在奔跑)。安装完成后,它会加载登录页面,当我输入默认用户名/密码(root / 5iveL!fe)时,会重定向到422页面,并显示以下错误:
int main(int argc, char** argv)
{
// First and simplest attempt
sd::string st = argv[2];
// Second attempt that also fails
std::vector<std::string> all_arg;
if (argc > 1) {
all_arg.assign(argv + 1, argv + argc);
}
std::string st = all_arg[2];
// Comparison
st = st.substr(st.size() - 4, st.size() - 1);
if (strcmp(st.c_str(), ".png")) { ... }
else {...}
}
我想密码可能有问题,尝试reset password from console但是在运行422
The change you requested was rejected.
和gitlab-rails console production
时出现以下错误:
sudo -u git -H gitlab-rails console production
由于第一个错误导致没有日志文件,我手动创建了一个日志文件但是在运行命令后我收到了以下错误:
ls: cannot access /opt/gitlab/embedded/service/gitlab-rails/log: No such file or directory
chpst: fatal: unknown user/group: -U
我不知道该怎么做。同样在production.log中,它抱怨CSR令牌无效。我假设这意味着我没有提供正确的密码,但这是GitLab安装提供的密码。
也可能相关,我用这个guide来配置apache。 GitLab的Apache vhost部分看起来像这样
chpst: fatal: unable to setgroups: permission denied
答案 0 :(得分:9)
由于没有人回答,我会发布我的解决方案,以便其他任何人都认为它有益。 问题出在https上。如果我在gitlab.yml(https:false)中关闭了https选项,那么我就可以登录了。可以找到详细的解决方案here。我必须在我的虚拟主机中添加以下内容(因为我有一个用于foobar.com.conf和foobar.com-ssl.conf)文件。
在foobar.com.conf文件中我必须添加:
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [NE,R,L]
在foobar.com-ssl.conf中我不得不添加:
RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA]
RequestHeader set X_FORWARDED_PROTO 'https'
如需更多问题排查,请访问here。