CentOS6.5安装GitLab7.10.4
GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
GitLab 要求服务器端采用 Gitolite 搭建(为了方便安装,现已经用gitlab-shell代替Gitolite[1])。->wikipedia.org
GitLab的安装方式
GitLab的两种安装方法
编译安装
- 优点:可定制性强。数据库既可以选择MySQL,也可以选择PostgreSQL;服务器既可以选择Apache,也可以选择Nginx。
- 缺点:国外的源不稳定,被墙时,依赖软件包难以下载。配置流程繁琐、复杂,容易出现各种各样的问题。依赖关系多,不容易管理,卸载GitLab相对麻烦。
通过rpm包安装
- 优点:安装过程简单,安装速度快。采用rpm包安装方式,安装的软件包便于管理。
- 缺点:数据库默认采用PostgreSQL,服务器默认采用Nginx,不容易定制。
安装GitLab CE Omnibus包
查看系统版本
在linux终端下,使用cat /etc/issue命令查询当前系统的发行版本,查询到阿里云所安装的linux版本为CentOS release 6.6 (Final)。
下载系统对应的安装包
https://about.gitlab.com/downloads/archives/
进入gitlab官方网站,选择对应的操作系统——CentOS 6 (and RedHat/Oracle/Scientific Linux 6)
按照官方的提示进行安装
安装配置必要的依赖
在Centos 6 和 7 中,以下的命令将会打开HTTP和SSH在系统防火墙中的可访问权限。
1 | sudo yum install openssh-server |
下载Omnibus package包并安装
1 | wget https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-ce-7.10.4~omnibus-1.x86_64.rpm |
Note:由于amazonaws的服务器被墙,下载这个包时可能需要翻墙下载。
配置并启动GitLab
- 打开
/etc/gitlab/gitlab.rb
- 将
external_url = 'http://git.example.com'
修改为自己的IP地址:http://xxx.xx.xxx.xx
- 然后执行下面的命令,对GitLab进行编译。
sudo gitlab-ctl reconfigure
登录GitLab
Username: root
Password: 5iveL!fe
安装过程中出现的问题
在浏览器中访问GitLab出现502错误
原因:内存不足。
解决办法:检查系统的虚拟内存是否随机启动了,如果系统无虚拟内存,则增加虚拟内存,再重新启动系统。
80端口冲突
原因:Nginx默认使用了80端口。
解决办法:
- 为了使Nginx与Apache能够共存,并且为了简化GitLab的URL地址,Nginx端口保持不变,修改Apache的端口为
4040
。 - 这样就可以直接用使用ip访问Gitlab。
- 而禅道则可以使用
4040
端口进行访问,像这样:xxx.xx.xxx.xx:4040/zentao
。 - 具体修改的地方在
/etc/httpd/conf/httpd.conf
这个文件中 - 找到
Listen 80
这一句并将之注释掉 - 在底下添加一句
Listen 4040
- 保存后执行
service httpd restart
重启apache服务即可。
1 | #Listen 80 |
8080端口冲突
原因:由于unicorn默认使用的是8080端口。
解决办法:
- 打开
/etc/gitlab/gitlab.rb
- 去掉
# unicorn['port'] = 8080
的注释,将8080
修改为9090
- 保存后运行
sudo gitlab-ctl reconfigure
即可。
STMP设置
配置无效,暂时不知道原因。
GitLab头像无法正常显示
原因:gravatar被墙
解决办法:
编辑 /etc/gitlab/gitlab.rb,将1
2
3# gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'
## 修改为:
gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'
然后在命令行执行:1
2sudo gitlab-ctl reconfigure
sudo gitlab-rake cache:clear RAILS_ENV=production
补充
使用过程中 500
起初以为是GitLab本身的问题
期间试了N中方法, 并没有成功, 这里记录下来一种比较靠谱的说法
1 | gitlab-rake gitlab:check |
我遇到的实际的原因
就只是应为我服务器的内存过小
真的就只是这个问题而已, 整了好久 %>_<%
Ps: 推荐内存2GB以上
关于第三方有email的问题
尝试了N久, 并没能成功
http://905010.com/archives/472
http://my.oschina.net/u/1158620/blog/289191?fromerr=hW0nWMlX
http://iceeggplant.blog.51cto.com/1446843/1611147
系统发件问题
尽量不要用IP地址访问
原因: IP地址访问会导致发件人的姓名变成`gitlab@xx.xx.xx.xx`, 而各大邮箱运营商都是屏蔽IP地址邮箱名的, 应为这个问题搞的我重装了此系统, 悲剧
解决方法:
使用域名访问
1
2
3
4
5
6
7vim /etc/gitlab/gitlab.rb
# 将
external_url = 'http://xxx.xx.xxx.xx'
# 修改为你的域名, 需要解析
external_url = 'http://git.example.com'
# 然后执行下面的命令,对GitLab进行编译。
sudo gitlab-ctl reconfigure如果你非要用ip地址访问
一定要把ip地址加到有收件人邮箱的白名单中Ps: 是IP地址不是发件人, 是IP地址不是发件人, 是IP地址不是发件人, 这点非常重要
参考资料
原文: GitLab 安装配置笔记 (Ps: 对文章有删减, 如有侵权, 请及时联系本人)
https://about.gitlab.com/
http://leo108.com/pid-2150.asp
https://gitlab.com/gitlab-org/gitlab-ce/issues/2052