安装教程参考:Ubuntu20.04安装配置GitLab的方法步骤 - 小黑ii - 脚本之家

因为原教程过于完整,这边只摘录主体部分,以及对安装过程中的变化做一些说明。

gitlab 可以通过 yum 或者 apt 工具直接安装,版本一般为 gitlab-ce 最新版本,也就是 Community Edition(社区版)。

服务器环境:
PHP 7.0 / Nginx 1.10

安装依赖项

sudo apt update
sudo apt install ca-certificates curl openssh-server postfix

因为之前安装 PHP 环境的时候,大部分软件都已经安装了最新版本,除了 postfix。

对于 postfix 的安装,请在出现提示时选择 “Internet站点”。在下一个屏幕上,输入服务器的域名以配置系统发送邮件的方式。
我选择了 No Configuration(不配置)。如果屏幕选择项不在 ok 上,可以用 tab 键进行切换,然后回车进入下一屏幕选择。

安装 GitLab

gitlab 安装比较规范,大多会使用 gitlab 提供的 package 进行安装。

可以先直接执行 apt install gitlab-ce,看本地是否有包可以直接安装。如果有,就可以跳过这一步的其他内容了。

curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

这里是下载 gitlab 库的安装脚本。如果有安装 wget 指令,也可以使用 wget 进行下载。

脚本存放位置随意,后续不需要时可以手动删除。

bash /tmp/script.deb.sh

执行安装脚本后,gitlab 库地址会存放到 /etc/apt/sources.list.d/gitlab_gitlab-ce.list 中,之后就可以直接通过 apt-get 指令直接安装了。

修改 gitlab 配置

其实在上一步 gitlab 就已经安装并且启动了。

可以通过 gitlab-ctl status 查看主要 gitlab 服务的状态, gitlab-ctl start/stop 开启 / 关闭 gitlab 服务。

这一步主要是兼容环境考虑的。比如当前环境中存在 web 服务器占用了 80 端口,那么默认 Nginx 是没有办法正常工作的。

因为环境中已存在 Nginx 了,而 gitlab 本身内置了一个 Nginx 服务器。为了外部的 Nginx 能够正常工作,这就需要修改内置 Nginx 服务器的默认绑定端口,或者关闭内置 Nginx 转而使用外部的服务器通过反向代理提供服务。

具体参考 解决 linux 下 gitlab 内嵌的 Nginx 服务器与 xampp 搭建的 web 服务器(Apache)之间的冲突

在修改完配置之后,记得执行 sudo gitlab-ctl reconfigure 重新初始化 gitlab 。

访问登录 gitlab

之前安装过的 gitlab 版本都是在安装成功后,第一次重置密码。这次安装后,直接跳转到登录页面,没有设置密码的流程,而正式密码我也不知道。尝试 强制找回gitlab管理员密码,但在通过指令进入 gitlab 控制台后,出现了脚本报错。

最后回想是否存在临时密码,就找到了 gitlab 配置目录下的 /etc/gitlab/initial_root_password 文件,里面存储了一串 root 初始密码。尝试登录,成功!

附:Centos 下安装、配置 gitlab。流程大同小异,不再赘述。