9. 安装GitLab
下载
su -
su - git
git clone https://github.com/gitlabhq/gitlabhq.git gitlab
cd /home/git/gitlab
git checkout 6-0-stable
配置
cp config/gitlab.yml.example config/gitlab.yml
sed -i 's|localhost|git.linuxidc.com|g' config/gitlab.yml
sed -i 's|/usr/bin/git|/usr/local/bin/git|' 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
如果希望负载均衡可开启集群模式
vi config/unicorn.rb
将8080改为9292
git config --global user.name "GitLab"
git config --global user.email "gitlab@git.linuxidc.com"
git config --global core.autocrlf input
配置GitLab数据库链接
cp config/database.yml{.mysql,}
vim config/database.yml
修改数据库用户帐号和口令
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
初始化数据库并激活高级特性
cd /home/git/gitlab
bundle exec rake gitlab:setup RAILS_ENV=production
安装init脚本
su -
cp lib/support/init.d/gitlab /etc/init.d/gitlab
chmod +x /etc/init.d/gitlab
chkconfig --add gitlab
chkconfig gitlab --level 235 on
检查应用程序状况
su - git
cd gitlab/
bundle exec rake gitlab:env:info RAILS_ENV=production
exit
启动gitlab
service gitlab start
再次检查应用程序状态
su - git
cd gitlab/
bundle exec rake gitlab:check RAILS_ENV=production
如果所有的项目都是绿色的,就表明安装成功了。
10. 配置Apache
创建SSL证书
mkdir /etc/httpd/ssl.crt/
cd /etc/httpd/ssl.crt/
openssl genrsa -out git.linuxidc.com.key 1024
openssl req -new -key git.linuxidc.com.key -out git.linuxidc.com.csr
根据提示输入证书信息。
创建虚拟主机
su -
yum -y install httpd mod_ssl
chkconfig httpd on
wget -O /etc/httpd/conf.d/gitlab.conf https://raw.github.com/gitlabhq/gitlab-recipes/master/web-server/apache/gitlab.conf
vim /etc/httpd/conf.d/gitlab.conf
将git.example.org改为git.linuxidc.com(或你的域名)。
将8080改为9292。
在 /etc/httpd/conf/httpd.conf中加入LoadModule ssl_module /etc/httpd/modules/mod_ssl.so
vim /etc/httpd/conf/httpd.conf,加入下面内容:
NameVirtualHost *:80
2 <IfModule mod_ssl.c>
3 NameVirtualHost *:443
4 Listen 443
5 </IfModule>
在SELinux上开放http访问
setsebool -P httpd_can_network_connect on
service httpd restart
11. 配置防火墙
修改/etc/sysconfig/iptables,设置下面的内容:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
重启iptables:
service iptables restart
12. 完成!
可以用浏览器通过http://git.linuxidc.com访问。