这是一片关于GitLab的安装教程以及踩过的坑
浪费了一个下午的时间,终于把Gitlab搭建完成,搭建环境如下:
系统(虚拟机)
Distributor ID: Ubuntu
Description: Ubuntu 18.04 LTS
Release: 18.04
Codename: bionic
gitlab V11.0.1
安装Gitlab
这里有一个问题,gitlab官方源太慢了,一个gitlab安装包要500M+
如果直接下载,很容易挂掉,或者等很久,所以这里要替换源。不过似乎在阿里云上搭载的话,会很快,不用更换。
这里推荐 清华大学开源软件镜像站 里面有不少的镜像源,其中就包括了gitlab的。
具体地址是
deb http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu bionic main
注意其中
bionic
是系统代号,比如我的ubuntu 18 代号就是bionic
其他的系统可以使用lsb_relase
命令自行查询。
使用方法 参考
信任 GitLab 的 GPG 公钥:
1
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
设置源
1
2cd /etc/apt/sources.list.d
vim gitlab-ce.list编辑gitlab-ce.list 输入以下内容
1
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/ bionic main
更新并安装
1
2sudo apt-get update
sudo apt-get install gitlab-ce配置gitlab
由于gitlab要用到域名,所以需要准备好域名。由于我是用虚拟机搭建,所以公共域名用不了,所以我就自己搭建了一个域名服务。可以参考可选步骤,搭建私有DNS服务器。
配置文件是
/etc/gitlab/gitlab.rb
文件,因为文件内容过多,就简单的把会用到的配置列出来域名,这个设计到了gitlab系统自动生成的链接,所以必须修改为自己的域名
1
2# external_url 'http://gitlab.explme.com'
external_url 'http://kirno.com'配置时区,由于默认是UTC,导致使用的时候时间不正确,所以需要修改为本地的时区
1
2# gitlab_rails['time_zone'] = 'UTC'
gitlab_rails['time_zone'] = 'Asia/Shanghai'邮件,由于gitlab会通过邮箱找回密码或者认证,所以需要配置。原本是使用系统自己的邮件系统,但是我不会配置,所以就是用了QQ邮箱作为发送方
1
2
3
4
5
6
7
8
9
10
11
12
13gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
# 发送方的邮箱完整地址 xx@qq.com
gitlab_rails['smtp_user_name'] = "XXX"
# 这里是发送方的QQ邮箱地址,也就是和上面的一样
gitlab_rails['gitlab_email_from'] = 'XXX'
# 密码,注意这里要使用QQ邮箱的 授权码 不是密码,可以在设置,账户处找到
gitlab_rails['smtp_password'] = "xxx"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
配置完成后初始化 gitlab 时间比较久
1 |
|
可以通过以下命令测试邮件
1
2
3
4
# 进入控制台
gitlab-rails console
# 发送邮件
Notify.test_email("收件人邮箱", "标题", "内容").deliver_now
然后就可以在浏览器通过域名访问了
汉化教程
默认的gitlab是英文,可以选择进行汉化,不过其实汉化并不完整。
下载汉化文件 文件比较大在 48m+ 左右,而且下载比较慢,所以建议下载完拉上服务器。
一定要注意版本,已安装的gitlab版本可以通过
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
命令查看下载完之后解压,通过
cat gitlab/VERSION
查看是版本是否匹配,如果版本不匹配可能会导致gitlab崩溃,所以小心停止gitlab
1 |
|
- 覆盖
1 |
|
- 重新配置gitlab并启动它
1 |
|
使用现有的Nginx作为服务器
这个地方巨坑,真的是巨坑,被卡在这里太久了😭。
首先通过apt-get或者从官网下载的nginx,如果没有注意的话都不行,因为他们默认都不支持 Passenger
这是个巨坑啊,多少次因为这个摔鼠标了🖱️。虽然网上有教程通过 passenger-install-nginx-modules 的方式来重新安装nginx,但是这个的编译过程贼慢,我的双核4g云服务器完全卡死在这了,所以不推荐。还有的办法就是通过利用 nginx 1.9
以上的版本的动态模块加载功能来实现。
- 安装
ruby
没办法,passenger依赖ruby
1 |
|
- 安装
passenger
安装这个东西最好换源,否则巨慢
1 |
|
- 下载nginx源码,编译模块,参考
1 |
|
- 配置现有的nginx的配置文件
nginx.conf
, 添加
1 |
|
- 重中之重,这里最坑,配置了好了
nginx
之后报了一个奇葩🤮的错误
1 |
|
这个地方浪费了我一个下午加半个早上🌞,多次想放弃,网上还找不到资料。其实解决也很简单,就是重启nginx,不能简单的nginx -s reload
或者 nginx -s reopen
的重启,没有效果的,必须要先 kill
了nginx的进程然后再重新运行 nginx
才行😭。为了解决这个问题,我重装了gitlab,各种百度,谷歌,差点就去看gitlab源码了😭。手抖重启ngxin后成功看到/tmp
下创建passenger.xxx
文件,太开心了。然后刷新页面果然成功
- 一定要记住配置
passenger_root /var/lib/gems/2.3.0/gems/passenger-5.3.3;
否则也会出现403错误
(可选)搭建私有DNS服务器
网上基本都是 bind9
的教程,所以我也就使用它来搭建。
首先安装
1 |
|
安装了之后,有几个路径需要了解
- /etc/bind 用于存放主要的配置文件
- /var/cache/bind 用于存放域名相关的配置文件
比如我要创建一个 kirno.com
的域名
首先编辑 /etc/bind/named.conf.local
文件
1 |
|
然后把 /etc/bind
目录下的解析配置模板 db.local
复制到 /var/cache/bind
里面
1 |
|
编辑 /var/cache/bind/db.kirno.com
把其中的
1 |
|
改为
1 |
|
其中
192.168.2.100
是你想解析的域名对应着的ip
最后编辑 /etc/bind/named.conf.options
文件
1 |
|
其中
223.5.5.5
是阿里云的DNS,这里的意思其实是如果本地找不到相应的域名,就会交给第三方DNS服务器处理,所以改成任意的可使用的第三方域名服务器即可。