Centos搭建gitlab
安装常用库文件
#yum install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpnglibpng-devel freetype freetype-devel libxml2 libxml2-devel zlibzlib-devel glibc glibc-devel glib2 glib2-devel gd gd-devel bzip2bzip2-devel ncurses ncurses-devel curl curl-devel openssl openssl-devel libtool libtool-devel libtool-ltdl-devel httpd
安装git需要库文件
#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
#tar -zxf libiconv-1.14.tar.gz
#./configure --prefix=/usr/local/
#make && make install
安装git
#tar -zxf git-2.0.4.tar.gz
#./configure --prefix=/usr/local/git --with-iconv=/usr/local/
#make && make install
加入环境变量
#echo "export PATH=$PATH:/usr/local/git/bin" >>/etc/profile
#source /etc/profile
#ln -s /usr/local/git/bin/* /usr/bin/
显示版本,说明安装成功
#git --version
增加EPEL安装源
#wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 https://www.fedoraproject.org/static/0608B895.txt
#rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
增加PUIAS安装源
#vim /etc/yum.repos.d/PUIAS_6_computational.repo
加入
[PUIAS_6_computational]
name=PUIAScomputational Base $releasever - $basearch
mirrorlist=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearch/mirrorlist
#baseurl=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearch
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puias
#wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-puias http://springdale.math.ias.edu/data/puias/6/x86_64/os/RPM-GPG-KEY-puias
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-puias
增加RHEL6安装源
查看yum源
yum repolist
安装GitLab的所需依赖包和工具
#yum -y install vim-enhanced readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-devel expat-devel db4-devel byacc sqlite-devel gcc-c++ libyaml libyaml-devel libffi libffi-devel libxml2 libxml2-devel libxslt libxslt-devel libicu libicu-devel system-config-firewall-tui python-devel redis sudo wget crontabs logwatch logrotate perl-Time-HiRes
安装Ruby
#wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.1.tar.gz
# tar -zxf ruby-2.1.1.tar.gz
#./configure --prefix=/usr/local/
#make && make install
#which ruby
/usr/local/bin/ruby
#ruby -v
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux]
安装bundle
#gem install bundler --no-ri --no-rdoc
Fetching: bundler-1.7.2.gem (100%)
Successfully installed bundler-1.7.2
1 gem installed
安装git-shell
添加git用户
#useraddgit
# chmod 775 /home/git/
#su - git
$git clone https://github.com/gitlabhq/gitlab-shell.git
$cd gitlab-shell/
$git checkout v1.8.0
$cp config.yml.example config.yml
$vim config.yml
修改域名,和代码仓库路径
gitlab_url: "http://git.os.com/"
#./bin/install
安装mysql
#tar -zxf cmake-2.8.4
#./configure--prefix=/usr/local/
#gmake && make install
#yum install bison -y
#tar-zxf mysql-5.5.25
#cmake ./
#make && make install
#useradd mysql -s /sbin/nologin
#mkdir -pv /data/mysql/data
#chown mysql.mysql /data/mysql/
#chown mysql.mysql /usr/local/mysql
#cd support-files/
#cp my-medium.cnf /etc/my.cnf
#vim /etc/my.cnf
加入到[mysqld]下
pid-file=/data/mysql/mysql.pid
datadir=/data/mysql/data
basedir=/usr/local/mysql
#cp mysql.server /etc/init.d/mysqld
#chmod +x /etc/init.d/mysqld
#echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
初始化mysql
#/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/data/ --basedir=/usr/local/mysql/
启动mysql
#/etc/init.d/mysqld restart
#mysqladmin -uroot password 123456
#mysql -uroot -p
>create database gitlab;
>grant all privileges on gitlab.* to "gituser"@"localhost"identified by "gitpwd";
> exit
安装gitlab
#su - git
$git clone https://github.com/gitlabhq/gitlabhq.git gitlab
$cd /home/git/gitlab
$git checkout 6-3-stable
Branch6-3-stable set up to track remote branch 6-3-stable from origin.
Switchedto a new branch '6-3-stable'
配置项目
$cp config/gitlab.yml.example config/gitlab.yml
$vim config/gitlab.yml
加入域名
## GitLab settings
gitlab:
## Web server settings
host: git.os.com
port: 80
https: false
$chown -R git log/
$chown -R git tmp/
$chmod -R u+rwX log/
$chmod -R u+rwX tmp/
$mkdir tmp/pids/
$mkdir tmp/sockets/
$chmod -R u+rwX tmp/pids/
$chmod -R u+rwX tmp/sockets/
$mkdir public/uploads
$chmod -R u+rwX public/uploads
$cp config/unicorn.rb.example config/unicorn.rb
$cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb
$git config --global user.name "GitLab"
$git config --global user.email "gitlab@localhost"
$git config --global core.autocrlf input
配置数据库访问文件
$cp config/database.yml.mysql config/database.yml
$vim config/database.yml
修改数据库用户密码
$chmod o-rwx config/database.yml
安装Gems
#gem install charlock_holmes --version '0.6.9.4'
#su - git
$cd /home/git/gitlab/
$bundle install --deployment --without development test postgres puma aws
#出现错误:Couldnot find modernizr-2.6.2 in any of the sources
#解决办法:
1.
#wget http://rubygems.org/downloads/modernizr-2.6.2.gem
#gem install modernizr
2.
$gem sources --remove https://rubygems.org/
$gem source -a http://ruby.taobao.org/
$gem sources -l
3.
将Gemfile和Gemfile.lock配置文件的modernizr版本更改成2.7.1:
$vim Gemfile
gem "modernizr" "2.6.2" ===> gem "modernizr-rails", "2.7.1"
$vim Gemfile.lock
modernizr (2.6.2) ===> modernizr-rails (2.7.1)
modernizr (2.6.2) ===> modernizr-rails (= 2.7.1)
重新执行
$bundle install --deployment --without development test postgres puma aws
对数据库进行初始化
先启动redis
#/etc/init.d/redis restart
$bundle exec rake gitlab:setup RAILS_ENV=production --verbose
记住这个,是登录的帐号密码
login.........root
password......5iveL!fe
下载启动脚本
#wget https://raw.github.com/gitlabhq/gitlab-recipes/master/init/sysvinit/centos/gitlab-unicorn -P /etc/init.d/
#mv /etc/init.d/gitlab-unicorn /etc/init.d/gitlab
#chmod +x /etc/init.d/gitlab
#/etc/init.d/gitlab restart
如果提示:
Starting unicorn: bash: bin/web: No such file or directory
[FAILED]
Starting sidekiq: bash: bin/background_jobs: No such file or directory
[FAILED]
$cd gitlab
$ cp -r script/ bin
再启动
检测应用程序状态
$bundle exec rake gitlab:env:info RAILS_ENV=production
详细信息
$bundle exec rake gitlab:check RAILS_ENV=production
安装配置nginx
#useradd www -s /sbin/nologin
#usermod -G git www
#tar -zxf pcre-8.12.tar.gz
#./configure
#make && make install
#tar-zxf nginx-1.7.1.tar.gz
#./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
#make && make install
#mkdir /usr/local/nginx/conf/conf.d
#cp /home/git/gitlab/lib/support/nginx/gitlab /usr/local/nginx/conf/conf.d/gitlab.conf
#chown git.git /usr/local/nginx/conf/conf.d/gitlab.conf
#vim gitlab.conf
修改日志路径,域名
vim /usr/local/nginx/conf/ngxin.conf
加入
includ conf.d/gitlab.conf;
启动nginx
/usr/local/nginx/sbin/nginx //有报错根据错误提示处理
拉取nginx静态文件
$cd /home/git/gitlab
$bundle exec rake assets:precompile RAILS_ENV=production
启动
#/etc/init.d/redis restart
#/etc/init.d/gitlab restart
/usr/local/nginx/sbin/nginx
访问
ip,域名都行
#PS:遇到如下报错
$ bundle exec rake gitlab:check RAILS_ENV=production
Check GitLab API access: /usr/local/lib/ruby/2.1.0/net/http.rb:879:in `initialize': getaddrinfo: No address associated with hostname (SocketError)
from /usr/local/lib/ruby/2.1.0/net/http.rb:879:in `open'
from /usr/local/lib/ruby/2.1.0/net/http.rb:879:in `block in connect'
from /usr/local/lib/ruby/2.1.0/timeout.rb:76:in `timeout'
from /usr/local/lib/ruby/2.1.0/net/http.rb:878:in `connect'
from /usr/local/lib/ruby/2.1.0/net/http.rb:863:in `do_start'
from /usr/local/lib/ruby/2.1.0/net/http.rb:852:in `start'
from /home/git/gitlab-shell/lib/gitlab_net.rb:62:in `get'
from /home/git/gitlab-shell/lib/gitlab_net.rb:29:in `check'
from /home/git/gitlab-shell/bin/check:11:in `<main>'
gitlab-shell self-check failed
Try fixing it:
Make sure GitLab is running;
Check the gitlab-shell configuration file:
sudo -u git -H editor /home/git/gitlab-shell/config.yml
Please fix the error above and rerun the checks.
编辑如下三个文件,域名端口要对应
$vim config/gitlab.yml
gitlab:
## Web server settings
host: git.os.com
port: 8099
https: false
$vim ../gitlab-shell/config.yml
gitlab_url: "http://git.os.com:8099"
$ vim config/unicorn.rb
listen "127.0.0.1:8099", :tcp_nopush => true
另外,hosts最好也加上要解析的域名
$ vim /etc/hosts
127.0.0.1 git.os.com git

浙公网安备 33010602011771号