RT
Gitlab的rpm包是包含了所有的需要的软件,包括redis,Nginx,PQ(和MySQL类似排名比mysql低一点的关系型数据库)等。
但是有些时候,我们都已经安装了这些东西中的某一部分,所以,只能在yum安装后配置一下。
以Nginx为例,这里我们需要严格按照官方的教程来:
英文原地址:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/nginx.md#using-a-non-bundled-web-server
默认的GitLab是采用Unix Socket跑的(当然Unix Socket的效率比http的效率要高,但是有时候你的nginx不在本机,这就需要我们通过http来代理了,不过不在本篇的叙述范围,有时间我在说。),所以我们只需要在gitlab的配置上就只需要配置5个位置,都是在文件
/etc/gitlab/gitlab.rb
1、禁用默认的Nginx
nginx[‘enable’] = false
2、设置nginx的用户组 (就是你所使用的Nginx 的用户组,我用军哥的一键包,用户组是www)
因此我改成
web_server[‘external_users’] = [‘www’]
这个是一个数组,你可以添加多个,但是我不建议
3、添加信任的代理(如果你是本地Nginx,那么久按照下面来吧)
gitlab_rails[‘trusted_proxies’] = [‘localhost’,’127.0.0.1′]
4、Apache才要配置,Nginx没必要
gitlab_workhorse[‘listen_network’] = “tcp” gitlab_workhorse[‘listen_addr’] = “127.0.0.1:8181”
到这里,gitlab的配置完成了
使用命令gitlab-ctl reconfigure搞定重新运行配置
剩下的就是配置Nginx的配置了。
一般抄一下/var/opt/gitlab/nginx/conf/gitlab-http.conf的配置就OK了,如果你不懂Nginx配置,那么你就放弃挣扎,默认gitlab会使用hostname来当做访问域名,因此如果你TMD真不懂,你就改一下hostname,然后再安装gitlab,如果这也不会,那我也无能为力。
最后使用socket饭袋的时候,socket文件需要能被nginx访问,但是gitlab有时候生成的socket文件是git:git 用户和用户组的
为了git用户组,和www用户都能访问
我们可以使用chown -R www:git 来赋予Nginx访问和git的访问写入权限。
至此我们完成了使用自己的Nginx来饭袋gitlab的操作。
最后还有点小瑕疵就是你发送邮件的时候,还是会显示用你的hostname作为邮件的主域名,而有些时候我们的hostname并不能正常访问,因此我们还是需要设置一个选项的就是下面的
external_url ‘https://www.togit.cc’
吧上面的网址替换成你自己的就OK了。
Update Log:2017-10-09
新装gitlab的时候会莫名其妙的装个apache?然后替换掉lnmpa(我用军哥的lnmpa包)的apache启动和重启脚本。因此,需要你自己去重新替换掉。否则当你的apache挂掉重启之后,你会发现TMD你配置文件都没问题,但是你的apache总是提示你没法绑定80端口。我找了1小时才想起来看他的启动脚本,发现全TMD不是lnmpa的apache路径才恍然大悟,原来启动脚本本替换了。蛋疼的很。