CentOS安装Gitlab5.1完整版

分类:CentOS教程 阅读:32219 次

找了很多博客,发现基本都是Ubuntu或者Fedora上安装Gitlab的,基于CentOS的基本都有错误,这篇文章是我二周加班不断测试的成果,按照这篇文章安装,包你成功。

系统环境:CentOS 5.8 x86_64

共分几个步骤

1、安装依赖包

2、安装Ruby、bundle、Python

3、建立git用户

4、安装Gitlab-Shell

5、安装数据库

6、安装Gitlab

7、安装Nginx

一、安装依赖包

1.1、导入yum源

yum –y update

yum –y install perl*

导入epel源

1.2安装依赖包

如果导入epel源后出现信息的话,那么修改/etc/yum.repos.d/epel.repo 文件

 将base前的#去掉,同时将mirror前加入#,完整的如下图所示:
 
CentOS安装Gitlab5.1完整版
 
 二、安装Ruby、Bundle和Python
 2.1、安装ruby

2.2、安装Bundler Gem

特别注意!!!

安装好Ruby和bundle后,做如下操作,否则后面会被一堆的:

sudo: gem: command not found和

/usr/bin/env: ruby: No such file or directory, Could not locate Gemfile

给累死,切记!!!

需要做的操作:

visudo

加入一行

git ALL=(ALL) NOPASSWD: ALL

四、安装Gitlab-Shell

下载gitlab-shell

切换到适合gitlab5.1的gitlab-shell的稳定版本

cd /home/git/gitlab-shell sudo -u git -H git checkout v1.3.0 sudo -u git -H cp config.yml.example config.yml

复制配置文件

sudo -u git -H cp config.yml.example config.yml

编辑配置文件,将里面的“gitlab_url: http://localhost/”这行修改成你的域名或者IP

注:测试时我使用的是IP

我的如下图所示:

CentOS安装Gitlab5.1完整版

此处需要注意的是:URL最后面的/不要去掉!

安装gitlab-shell

安装成果的界面如下:

CentOS安装Gitlab5.1完整版

五、建立数据库(基于mysql)

启动mysql并设置密码

连接到mysql进行数据库设置

==

测试连接

六、安装Gitlab

下载源码并切换到5.1的稳定版本

进行配置

编辑gitlab.yml文件,将里面的 host: localhost修改成你的域名或者IP(我使用的是IP),如图

CentOS安装Gitlab5.1完整版

赋予GIT用户所需的GITLAB的目录和权限

建立satellites目录

建立PID目录等并赋权

建立upload目录,不建立的话backup功能会失败

复制PUma配置文件

复制数据库配置文件并编辑修改此文件中的用户名和密码为刚才建立的数据库用户和密码

如图所示:

CentOS安装Gitlab5.1完整版

安装所需的Gems

bundle install会安装很多依赖包,耐心等待就是了,给出二张截图

CentOS安装Gitlab5.1完整版CentOS安装Gitlab5.1完整版

配置GIT用户的全局变量

CentOS安装Gitlab5.1完整版

启动redis

注:没明白为什么需要redis,据说高级特性需要

初始化数据库

执行检查

CentOS安装Gitlab5.1完整版CentOS安装Gitlab5.1完整版

如果检查没有通过的话,不要启动,先根据检查的结果来修复,操作系统的那个红色没关系

如果报

CentOS安装Gitlab5.1完整版

是因为redis没启动的原因,

service gitlab start启动一下再次执行检查即可

启动

附:出现前面的用户和密码的话,这一步的Gitlab安装就成功了,但是只是能用3000端口,还不能通过nginx,也就是是说不能使用gitlab-shell调用,所以还未完全调通;

如果急性子的人可以先启动调试了,但我建议你先不要启动直到nginx调试完毕

bundle exec rails s -e production

代码:

七、安装nginx

下载gitlab的nginx配置文件

然后编辑这个文件,将这两行

listen YOUR_SERVER_IP:80 default_server; # e.g., listen 192.168.1.1:80;
server_name YOUR_SERVER_FQDN; # e.g., server_name source.example.com;

修改成你的域名或者IP,我的如下:

CentOS安装Gitlab5.1完整版

启动nginx,然后用域名或者IP访问,第一次报了个“502 Bad Gateway”的错误,查gitlab_err.log如下

[root@mytest123 gitlab]# tail -f /var/log/nginx/gitlab_error.log
2013/06/18 10:09:49 [crit] 4003#0: *1 stat() “/home/git/gitlab/public/” failed (13: Permission denied), client: 180.159.220.7, server: 192.161.57.96, request: “GET / HTTP/1.1″, host: “192.161.57.96″
2013/06/18 10:09:49 [crit] 4003#0: *1 stat() “/home/git/gitlab/public//index.html” failed (13: Permission denied), client: 180.159.220.7, server: 192.161.57.96, request: “GET / HTTP/1.1″, host: “192.161.57.96″
2013/06/18 10:09:49 [crit] 4003#0: *1 stat() “/home/git/gitlab/public/.html” failed (13: Permission denied), client: 180.159.220.7, server: 192.161.57.96, request: “GET / HTTP/1.1″, host: “192.161.57.96″
2013/06/18 10:09:49 [crit] 4003#0: *1 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 180.159.220.7, server: 192.161.57.96, request: “GET / HTTP/1.1″, upstream: “http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/”, host: “192.161.57.96″
2013/06/18 10:09:49 [crit] 4003#0: *1 stat() “/home/git/gitlab/public/favicon.ico” failed (13: Permission denied), client: 180.159.220.7, server: 192.161.57.96, request: “GET /favicon.ico HTTP/1.1″, host: “192.161.57.96″
2013/06/18 10:09:49 [crit] 4003#0: *1 stat() “/home/git/gitlab/public/favicon.ico/index.html” failed (13: Permission denied), client: 180.159.220.7, server: 192.161.57.96, request: “GET /favicon.ico HTTP/1.1″, host: “192.161.57.96″
2013/06/18 10:09:49 [crit] 4003#0: *1 stat() “/home/git/gitlab/public/favicon.ico.html” failed (13: Permission denied), client: 180.159.220.7, server: 192.161.57.96, request: “GET /favicon.ico HTTP/1.1″, host: “192.161.57.96″
2013/06/18 10:09:49 [crit] 4003#0: *1 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 180.159.220.7, server: 192.161.57.96, request: “GET /favicon.ico HTTP/1.1″, upstream: “http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/favicon.ico”, host: “192.161.57.96″

主要有2处需要修改,/home/git/gitlab/目录要给权限,然后:/home/git/gitlab/tmp/sockets/gitlab.socket 这个文件也要给权限,我直接给gitlab目录777的权限

重新启动gitlab和nginx,再次进行访问

CentOS安装Gitlab5.1完整版

成功,界面出来了~

CentOS安装Gitlab5.1完整版

通过gitlab-shell的命令行检查也成功,耶!

[root@mytest123 git]# su – git
[git@mytest123 ~]$ cd gitlab-shell/
[git@mytest123 gitlab-shell]$ ./bin/check
Check GitLab API access: OK
Check directories and files:
/home/git/repositories: OK
/home/git/.ssh/authorized_keys: OK
[git@mytest123 gitlab-shell]$

参考文档:https://gist.github.com/wakefield/5304650