环境:CentOS-6.6-x86_64-minimal.iso
安装LNMP(必须安装Nginx、MySQL、redis,PHP可选),参考《lnmp一键安装包》或《OneinStack》
添加epel仓库
- cat > /etc/yum.repos.d/epel.repo << EOF
- [epel]
- name=Extra Packages for Enterprise Linux 6 - \$basearch
- #baseurl=http://download.fedoraproject.org/pub/epel/6/\$basearch
- mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=\$basearch
- failovermethod=priority
- enabled=1
- gpgcheck=0
- EOF
添加PUIAS Computational参考(自带的git版本是1.7和gitlab不兼容)
- cat > /etc/yum.repos.d/PUIAS_6_computational.repo << EOF
- [PUIAS_6_computational]
- name=PUIAS computational 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
- enabled=1
- gpgcheck=0
- EOF
安装依赖包
- 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 crontabs logwatch \
- logrotate perl-Time-HiRes git
Ruby安装
- cd lnmp/src
- wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz
- tar xzf ruby-2.1.5.tar.gz
- cd ruby-2.1.5
- ./configure --prefix=/usr/local/ruby
- make && make install
- cd ..
添加到环境变量
- vi /etc/profile
- export PATH=/usr/local/ruby/bin:$PATH
- . /etc/profile
安装Bundler Gem
- gem install bundler --no-ri --no-rdoc
为GitLab创建一个git用户
- adduser --system --shell /bin/bash --comment 'GitLab' --create-home --home-dir /home/git/ git
- su - git
GitLab shell安装
- git clone https://github.com/gitlabhq/gitlab-shell.git
- cd gitlab-shell
- git checkout v1.8.0
- cp config.yml.example config.yml
- sed -i 's@http://localhost/@http://git.linuxeye.com/@' config.yml
- sed -i 's@/usr/bin/redis-cli@/usr/local/redis/bin/redis-cli@' config.yml
- ./bin/install
数据库/MySQL
- $ mysql -uroot -p
- mysql> create database gitlabhq_production;
- mysql> quit;
redis.sock路径指定
- su -
- service redis-server stop
- mkdir /var/run/redis;chown -R redis.redis /var/run/redis
- vi /usr/local/redis/etc/redis.conf
- unixsocket /var/run/redis/redis.sock
- service redis-server start
- ls -l /var/run/redis/redis.sock
GitLab
- su - git
- wget https://github.com/gitlabhq/gitlabhq/archive/v7.4.5.tar.gz
- tar xzvf v7.4.5.tar.gz
- mv gitlabhq-7.4.5 gitlab
- cd gitlab
- cp config/gitlab.yml.example config/gitlab.yml
- sed -i 's@localhost@git.linuxeye.com@g' config/gitlab.yml
- chown -R git log/
- chown -R git tmp/
- chmod -R u+rwX log/
- chmod -R u+rwX tmp/
- mkdir /home/git/gitlab-satellites
- 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
- git config --global user.name "GitLab"
- git config --global user.email "gitlab@linuxeye.com"
- git config --global core.autocrlf input
- cp config/resque.yml.example config/resque.yml
GitLab数据库配置
- cp config/database.yml{.mysql,}
- cat config/database.yml
- production:
- adapter: mysql2
- encoding: utf8
- collation: utf8_general_ci
- reconnect: false
- database: gitlabhq_production
- pool: 10
- username: root
- password: "password"
- # host: localhost
- # socket: /tmp/mysql.sock
- chmod o-rwx config/database.yml
Gems安装
- su -
- gem install charlock_holmes --version '0.6.9.4'
- exit
- cd /home/git/gitlab/
- bundle install --deployment --without development test postgres puma aws postgres
GitLab shell安装
- bundle exec rake gitlab:shell:install[v2.1.0] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production
- vi /home/git/gitlab-shell/config.yml
- 修改正确路径,如redis-cli,路径改成bin: "/usr/local/bin/redis-cli"
- restorecon -Rv /home/git/.ssh
初始化数据库和激活高级功能
- git init
- bundle exec rake gitlab:setup RAILS_ENV=production #yes
- login.........root
- password......5iveL!fe
GitLab初始化脚本
- su -
- wget -O /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/master/init/sysvinit/centos/gitlab-unicorn
- chmod +x /etc/init.d/gitlab
- chkconfig --add gitlab
- chkconfig gitlab on
- exit #切回git用户
检查应用状态
- cd /home/git/gitlab/
- bundle exec rake gitlab:env:info RAILS_ENV=production
Compile assets
- bundle exec rake assets:precompile RAILS_ENV=production
GitLab启动
- su -
- service gitlab start
Nginx配置
- usermod -a -G git www
- chmod 770 /home/git
- mkdir /usr/local/nginx/conf/vhost
- cd /usr/local/nginx/conf/vhost
- wget -O git.linuxeye.com.conf https://gitlab.com/gitlab-org/gitlab-ce/raw/master/lib/support/nginx/gitlab-ssl
- vi git.linuxeye.com.conf #修改一下配置项
- root /home/git/gitlab/public;
- server_name
- access_log
- error_log
- ssl_certificate gitlab.crt;
- ssl_certificate_key gitlab.key;
ps:证书生成方法如下(正式环境建议将生成公钥用第三方签名使浏览器能识别):
- cd /usr/local/nginx/conf
- openssl genrsa -out gitlab.key 2048
- openssl req -new -x509 -days 36500 -key gitlab.key -out gitlab.crt -subj "/C=CN/ST=Shanghai/L=Shanghai/O=LinuxEye Ltd./OU=LinuxEye"
重启nginx
- service nginx restart
访问:https://git.linuxeye.com,用户名/密码:root/5iveL!fe
参考:https://github.com/gitlabhq/gitlab-recipes/tree/master/install/centos
Mon Mar 2 10:47:45 CST 2015
1F
赞,这家伙不是一般的难装。附上一个热心网友的汉化版,本人在用,可以。
git clone https://github.com/restran/gitlabhq.git -b 7-5-zh gitlab
2F
cd /home/git/gitlab/
gem install mysql2 -v 0.3.19
bundle install –deployment –without development test postgres puma aws postgres
vim Gemfile.lock 修改mysql2 的版本 0.3.19