我这个是自己试着玩,所以没事不要在生成服务器上搭建gitlab,因为gitlab要求挺高的,很有可能搞奔溃了,当然你也可以使用docker去搭建。
1.安装必要的组件,以下命令将会打开http
和ssh
在系统防火墙的可访问权限
sudo yum install openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
2.下载安装包
国内有rpm
包,【清华大学TUNA镜像源】,建议直接打开这个网址去yum目录下载,不然直接使用官网提供地址可能下不下来
curl -O https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-9.2.6-ce.0.el7.x86_64.rpm
sudo rpm -i gitlab-ce-9.2.6-ce.0.el7.x86_64.rpm
3.配置启动 gitlab
gitlab-ctl reconfigure
4 使用web 服务器自带的nginx
因为gitlab 是一套集成环境,里面自带了nginx,redis 等一系列软件,所有安装的时候默认不使用自带的nginx
vim /etc/gitlab/gitlab.rb
nginx['enable']=false;
gitlab-ctl reconfigure
5.nginx 配置文件
执行gitlab-ctl reconfigure
之后会生成nginx
的配置文件/var/opt/gitlab/nginx/conf/gitlab-http.conf
,把这个文件放到自己的Nginx
配置目录下,这个文件使用的端口是80
,会有端口冲突的(unicorn
的端口也是8080
),可以改成其他端口或者自己重新配置过。
cp /var/opt/gitlab/nginx/conf/gitlab-http.conf /etc/nginx/conf.d/
//检查配置是否正常:
nginx -t
nginx: [emerg] unknown log format "gitlab_access" in /etc/nginx/conf.d/gitlab-http.conf:56
nginx: configuration file /etc/nginx/nginx.conf test failed
#将配置中第13行结尾的gitlab_access去掉,即可完成验证。重启nginx使配置生效。
这样配置完成后还是有问题,因为gitLab
自带的nginx
运行用户不是nginx
, 而我们web nginx
服务器用户是nginx
,所有在使用的时候会有权限问题
将nginx
用户添加到gitlab-www
组:
usermod -aG gitlab-www nginx
修改配置:
vim /etc/gitlab/gitlab.rb
web_server['external_users']=['nginx']
文件赋予权限
chmod -R o+x /var/opt/gitlab/gilab-rails/sockets
chmod 755 /var/opt/gitlab/gitlab-rails/sockets
参考文章:
1.http://www.yuzhewo.com/2015/1...
2.http://dreamlikes.cn/archives/65
安装过程中出现的问题
1.systemctl reload nginx
出现 nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
netstat -ntpl 查看一下端口情况
killall -9 nginx 杀死所有的进程
systemctl reload nginx 重新启动
2.systemctl start postfix
出现错误
修改/etc/postfix/main.cf
inet_protocols=ipv4
inet_interfaces=all
参考文章 http://blog.csdn.net/rodulf/a...
解释一下yum
和rpm
参考文章:http://blog.csdn.net/ngvjai/a...
邮件发送不成功
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]'
配置的是QQ
的企业邮箱,这个地方注意一下
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
都为true 的话,是发不出去的,具体可以参考https://github.com/gitlabhq/gitlabhq/issues/9203
然后把gitlab_rails['smtp_tls']=false
就可以了
4.测试邮件发送
gitlab-rails console 进入控制台
Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
就能看到是否发送成功了
参考文章:https://docs.gitlab.com.cn/om...
删除gitlab
https://blog.whsir.com/post-1...
gitlab 中文文档社区
https://docs.gitlab.com.cn/