因为团队需要,准备在阿里云的服务器上安装一套gitlab管理代码。安装之前服务器上面已经运行了几个php和java的网站,使用nginx做web服务器,域名什么都已经解析好了。找了几篇文章看了一下,虽然很繁琐,但是感觉应该很快能装好,但是万万没想到,花了8天时间装了不下10遍,使用了2种安装方式才完全安装好。
show一下
站点域名:http://git.yongmayi.com/
 
安装方法有两种:一种是一键安装,另外一种是自己搭配安装,两种方式各有优劣。
第一种安装方式的参考文档,我选用的英文的,能基本懂英文就可以安装,参考文档如下:
https://about.gitlab.com/downloads/#centos6
其中国内不能使用文档中的脚本执行下载安装包,所以可以自己选择需要的版本手动下载再上传上去。
第二种方式,我主要参考了centoscn上的一篇文章,因为版本比较新。文章的后面我也记录我我操作的过程,大家也可以参考。具体文档如下:
http://www.centoscn.com/image-text/install/2015/0320/4929.html
这里我主要总结一下自己的经验:
1、采用第二种方式安装时,注意版本,gitlab依赖包的版本一定不能低于它的要求。
重点注意:ruby,gem,bundle.加载gitlab和gitlab-shell时一定要参考文档的分支。
2、运行时注意系统用户,大部分的文档都是在root和git用户之间切换,所以操作时要注意。
3、ruby版本不要使用rvm安装,如果是centos最好采用yum的方式安装。
4、最最最重点的是nginx版本,其实我从第二天都安装好了,但是每次都是pull有内容的工程和push时都报错,并且gitlab后台没有错误,nginx也没有错误,但是就是提交不上,最后我采用第一种安装方式,然后把系统上使用的mysql,redis和nginx全停了,对比测试才发现是nginx版本的错误,版本太低了。
遇到问题:
问题:
1、第一种安装方式:提示! Missing the mysql2 gem. Add it to your Gemfile: gem ‘mysql2
因为gitlab-ce版本不支持mysql方式连接数据库,换成postgresql应该就没问题了。
2、在http push时就会出现invalid packet line header: 154这个问题就是困扰我很久的错误,最后发现是nginx版本太低。
3、在web端fork时”fork transaction failed.“,目前怀疑是nginx版本的问题,因为我没有发现问题,重装nginx后就解决了。
4、push 401 unauthorized,这个问题是因为安装和启动gitlab时的用户不对,一些文件目录没有权限访问。
5、gem permission denied, ruby的安装用户是root,但是运行gem命令的是git用户,会存在这个问题
6、bundle: command not found,这个和问题5有点类似,不过采用
ln -sf /usr/local/bin/bundle /usr/bin/bundle 的方式可以解决
7、cmake is required to build rugged,使用yum install cmake 安装
久病成良医,现在对gitlab有了一点点经验,如果你在安装时有遇到不能解决的问题,可以qq:3113751575联系我,大家一起交流一下。