zoukankan      html  css  js  c++  java
  • centos6安装部署git服务器(gitlab6.4)

    环境准备

    python版本2.6
    git版本 1.8.4.1
    ruby版本ruby-2.0.0-p353
    gitlab-shell版本 v1.8.0
    gitlab版本6.4.3

    因centos6系列的python版本是2.6的,已经支持,所以不必升级python版本。
    在centos5下面需要升级python版本>2.5

    安装epel的yum源

    1 yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

    安装必要的软件包

    1 yum -y install libicu-devel patch gcc-c++ readline-devel zlib-devel libffi-devel openssl-devel make autoconf automake libtool bison libxml2-devel libxslt-devel libyaml-devel zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

    原文链接:http://www.linuxyan.com/web-server/353.html

    安装git

    因为git需要1.8版本以上,所以需要重新编译安装
    移除当前git

    1 yum remove git

    下载1.8.4.1的git并安装

    1 curl --progress https://git-core.googlecode.com/files/git-1.8.4.1.tar.gz | tar xz
    2 cd git-1.8.4.1/
    3 make prefix=/usr/local all
    4 make prefix=/usr/local install
    5 ln -fs /usr/local/bin/git* /usr/bin/

    安装ruby环境

    01 yum -y remove ruby
    02 mkdir /tmp/ruby && cd /tmp/ruby
    03 curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p353.tar.gz | tar xz
    04 cd ruby-2.0.0-p353/
    05 ./configure --disable-install-rdoc
    06 make && make install
    07 gem source -r https://rubygems.org/
    08 gem source -a http://ruby.taobao.org/
    09 gem install bundler --no-ri --no-rdoc
    10 ln -/usr/local/bin/ruby /usr/bin/ruby
    11 ln -/usr/local/bin/gem /usr/bin/gem
    12 ln -/usr/local/bin/bundle /usr/bin/bundle

    添加git帐号并允许sudo

    1 useradd --comment 'GitLab' git
    2 echo "git ALL=(ALL)       NOPASSWD: ALL" >>/etc/sudoers

    安装git-shell

    01 cd /home/git
    02 sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-shell.git -b v1.8.0
    03 cd gitlab-shell/
    04 sudo -u git -H cp config.yml.example config.yml
    05 vim config.yml
    06 修改gitlab_url为gitlab的域名
    07 gitlab_url: "http://localhost/"
    08 修改为
    09 gitlab_url: "http://git.linuxyan.com/"
    10 #安装git-shell
    11 sudo -u git -H ./bin/install

    安装mysql以及建立gitlab数据库

    01 yum install mysql mysql-devel mysql-server -y
    02 /etc/init.d/mysqld start
    03 chkconfig mysqld on
    04 登录mysql创建gitab的帐号和数据库
    05 mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY 'gitlab';
    06 mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
    07 mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost';
    08  
    09 测试是否可以用git帐号登录数据库
    10  
    11 sudo -u git -H mysql -u gitlab --D gitlabhq_production

    安装redis

    1 yum -y install redis
    2 /etc/init.d/redis start
    3 chkconfig redis on

    安装gitlab

    01 cd /home/git
    02 sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -6-4-stable gitlab
    03 cd /home/git/gitlab
    04 sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
    05  
    06 vim config/gitlab.yml
    07 修改host为刚才git-shell里面设置的域名
    08 ## GitLab settings
    09 gitlab:
    10 ## Web server settings
    11   host: git.linuxyan.com
    12   port: 80
    13   https: false
    14  
    15 修改git的path
    16 git:
    17   bin_path: /usr/local/bin/git
    18  
    19 给文件夹添加相应的权限
    20 chown -R git log/
    21 chown -R git tmp/
    22 chmod -R u+rwX  log/
    23 chmod -R u+rwX  tmp/
    24 创建必要的文件夹,以及复制配置文件
    25 sudo -u git -H mkdir /home/git/gitlab-satellites
    26 sudo -u git -H mkdir tmp/pids/
    27 sudo -u git -H mkdir tmp/sockets/
    28 sudo chmod -R u+rwX  tmp/pids/
    29 sudo chmod -R u+rwX  tmp/sockets/
    30 sudo -u git -H mkdir public/uploads
    31 sudo chmod -R u+rwX  public/uploads
    32 sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
    33 sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

    设置gitlab的全局帐号

    1 sudo -u git -H git config --global user.name "GitLab"
    2 sudo -u git -H git config --global user.email "gitlab@localhost"
    3 sudo -u git -H git config --global core.autocrlf input

    设置数据库链接地址和权限

    01 sudo -u git cp config/database.yml.mysql config/database.yml
    02 sudo -u git -H vim  config/database.yml
    03 修改链接数据库信息
    04 production:
    05   adapter: mysql2
    06   encoding: utf8
    07   reconnect: false
    08   database: gitlabhq_production
    09   pool: 10
    10   username: gitlab
    11   password: "gitlab"
    12   # host: localhost
    13   # socket: /tmp/mysql.sock

    安装需要ruby的gems

    1 cd /home/git/gitlab
    2 vim  Gemfile
    3 修改source "https://rubygems.org/"
    4 为source "http://ruby.taobao.org/"
    5 vim Gemfile.lock
    6 修改remote: https://rubygems.org/
    7 为remote: http://ruby.taobao.org/
    8 安装
    9 sudo -u git -H bundle install --deployment --without development test postgres aws

    如果遇到如下错误:

    1 Could not find modernizr-2.6.2 in any of the sources

    则修改:

    01 vim Gemfile
    02 修改:gem "modernizr",        "2.6.2"
    03 为gem "modernizr-rails",  "2.7.1"
    04  
    05 vim Gemfile.lock
    06 修改:modernizr (2.6.2)
    07 为:modernizr-rails (2.7.1)
    08  
    09 修改:modernizr (= 2.6.2)
    10 为:modernizr-rails (= 2.7.1)

    然后再执行安装

    1 sudo -u git -H bundle install --deployment --without development test postgres aws

    过程如下图:
    centos6安装部署git服务器(gitlab6.4) - 第1张  | ㄨ销声匿迹、Linux
    centos6安装部署git服务器(gitlab6.4) - 第2张  | ㄨ销声匿迹、Linux

    初始化数据库

    1 sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production

    初始化数据库之后,会告诉你默认的管理员用户和密码:
    centos6安装部署git服务器(gitlab6.4) - 第3张  | ㄨ销声匿迹、Linux
    centos6安装部署git服务器(gitlab6.4) - 第4张  | ㄨ销声匿迹、Linux

    安装启动文件以及日志切割文件

    1 cp lib/support/init.d/gitlab /etc/init.d/gitlab
    2 cp lib/support/init.d/gitlab.default.example /etc/default/gitlab
    3 cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

    检测当前环境

    1 sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production

    如下:
    centos6安装部署git服务器(gitlab6.4) - 第5张  | ㄨ销声匿迹、Linux

    安装nginx

    1 yum -y install nginx

    修改配置文件:
    vim /etc/nginx/nginx.conf

    01 user              root git;
    02 worker_processes  2;
    03 pid        /var/run/nginx.pid;
    04  
    05 events {
    06     worker_connections  1024;
    07 }
    08  
    09 http {
    10     include       /etc/nginx/mime.types;
    11     default_type  application/octet-stream;
    12  
    13     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    14                       '$status $body_bytes_sent "$http_referer" '
    15                       '"$http_user_agent" "$http_x_forwarded_for"';
    16 # GITLAB
    17 # Maintainer: @randx
    18 # App Version: 5.0
    19  
    20 upstream gitlab {
    21   server unix:/home/git/gitlab/tmp/sockets/gitlab.socket;
    22 }
    23  
    24 server {
    25   listen *:80 default_server;         # e.g., listen 192.168.1.1:80; In most cases *:80 is a good idea
    26   server_name YOUR_SERVER_FQDN;     # e.g., server_name source.example.com;
    27   server_tokens off;     # don't show the version number, a security best practice
    28   root /home/git/gitlab/public;
    29  
    30   # Set value of client_max_body_size to at least the value of git.max_size in gitlab.yml
    31   client_max_body_size 5m;
    32  
    33   # individual nginx logs for this gitlab vhost
    34   access_log  /var/log/nginx/gitlab_access.log;
    35   error_log   /var/log/nginx/gitlab_error.log;
    36  
    37   location / {
    38     # serve static files from defined root folder;.
    39     # @gitlab is a named location for the upstream fallback, see below
    40     try_files $uri $uri/index.html $uri.html @gitlab;
    41   }
    42  
    43   # if a file, which is not found in the root folder is requested,
    44   # then the proxy pass the request to the upsteam (gitlab unicorn)
    45   location @gitlab {
    46     proxy_read_timeout 300https://github.com/gitlabhq/gitlabhq/issues/694
    47     proxy_connect_timeout 300https://github.com/gitlabhq/gitlabhq/issues/694
    48     proxy_redirect     off;
    49  
    50     proxy_set_header   X-Forwarded-Proto $scheme;
    51     proxy_set_header   Host              $http_host;
    52     proxy_set_header   X-Real-IP         $remote_addr;
    53     proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
    54  
    55     proxy_pass http://gitlab;
    56   }
    57 }
    58  
    59 }

    更改权限,启动nginx

    1 nginx -t
    2 chown -R git.git /var/lib/nginx/
    3 /etc/init.d/nginx start

    拉取gitlab静态资源文件

    1 sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

    启动gitlab

    1 /etc/init.d/gitlab start

    检测各个组件是否正常工作

    1 sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production

    检测没有错误就表示已经安装好了gitlab,如图:
    centos6安装部署git服务器(gitlab6.4) - 第6张  | ㄨ销声匿迹、Linux

    这个时候就可以用浏览器打开http://git.linuxyan.com
    初始管理员帐号和密码为:
    admin@local.host
    5iveL!fe
    登录之后如下:
    centos6安装部署git服务器(gitlab6.4) - 第7张  | ㄨ销声匿迹、Linux

  • 相关阅读:
    泛微云桥e-Bridge 目录遍历,任意文件读取
    (CVE-2020-8209)XenMobile-控制台存在任意文件读取漏洞
    selenium 使用初
    将HTML文件转换为MD文件
    Python对word文档进行操作
    使用java安装jar包出错,提示不是有效的JDK java主目录
    Windows server 2012安装VM tools异常解决办法
    ifconfig 命令,改变主机名,改DNS hosts、关闭selinux firewalld netfilter 、防火墙iptables规则
    iostat iotop 查看硬盘的读写、 free 查看内存的命令 、netstat 命令查看网络、tcpdump 命令
    使用w uptime vmstat top sar nload 等命令查看系统负载
  • 原文地址:https://www.cnblogs.com/zhepama/p/4080341.html
Copyright © 2011-2022 走看看