gitlab
安装
先决条件
yum install curl policycoreutils openssh-server openssh-clients
rpm安装 这里选择用7.14 是因为好汉化
下载之后直接 rpm -ivh gitlab-ce-7.14.3-ce.1.el7.x86_64.rpm 安装即可 (centos 7)
gitlab.rb配置
external_url 'http://git.chayu.alp'
gitlab_rails['db_adapter'] = "mysql2"
gitlab_rails['db_encoding'] = "utf8"
gitlab_rails['db_database'] = "gitlab"
gitlab_rails['db_username'] = "gitlab"
gitlab_rails['db_password'] = "gitlab"
gitlab_rails['db_host'] = "192.168.40.220"
gitlab_rails['db_port'] = 3306
gitlab_rails['smtp_enable'] = false
unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 8989
postgresql['enable'] = false
web_server['username'] = 'www'
web_server['group'] = 'www'
web_server['shell'] = '/bin/false'
web_server['home'] = '/home/www'
nginx['enable'] = false
gitlab_ci['db_adapter'] = "mysql2"
保存为gitlab.rb放入 /etc/gitlab/ 目录下
(该文件内容大意:
1.指定访问的url
2.配置db为mysql
3.关闭smtp服务
4.unicron 监听127.0.0.1 端口为8989
5.关闭内置postgresql
6.关闭内置nginx
7.更改www相关目录 为www用户(与现使用的用户相对应)
)
然后使用 gitlab-ctl reconfigure 重新配置
最后使用 gitlab-rake setup 安装mysql数据就可以了
nginx用自己的配置如下:
upstream gitlab {
server unix:/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket fail_timeout=0;
}
server {
server_name git.test.com;
server_tokens off; ## Don't show the nginx version number, a security best practice
root /opt/gitlab/embedded/service/gitlab-rails/public;
## Increase this if you want to upload large attachments
## Or if you want to accept large git objects over http
client_max_body_size 250m;
## Individual nginx logs for this GitLab vhost
access_log /var/log/gitlab/nginx/gitlab_access.log;
error_log /var/log/gitlab/nginx/gitlab_error.log;
location / {
try_files $uri $uri/index.html $uri.html @gitlab;
}
location /uploads/ {
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://gitlab;
}
location @gitlab {
## If you use HTTPS make sure you disable gzip compression
## to be safe against BREACH attack.
## https://github.com/gitlabhq/gitlabhq/issues/694
## Some requests take more than 30 seconds.
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://gitlab;
}
location ~ ^/(assets)/ {
root /opt/gitlab/embedded/service/gitlab-rails/public;
gzip_static on; # to serve pre-gzipped version
expires max;
add_header Cache-Control public;
}
error_page 502 /502.html;
}
其实说白了就是一个反向代理到unicron 不过是使用的socket罢了 也可以代理到 8989哟
关于汉化:
解压 gitlabhq-7-14-zh.zip
cp /usr/local/src/gitlabhq/* /opt/gitlab/embedded/service/gitlab-rails/ -rf
遇到的问题:
gitlab-ctl reconfigure可能会遇到一直进行的情况
ruby_block[supervise_redis_sleep] action run
需要手动执行:
exec /opt/GitLab/embedded/bin/runsvdir-start
关闭内置postgresql后使用mysql需要增加mysql2 自己创建myqsql 帐号 以及database 等等。
cd /opt/gitlab/embedded/bin/
./gem install -i/opt/gitlab/embedded/service/gem/ruby/2.1.0 mysql2
安装mysql2
vi /opt/gitlab/embedded/service/gitlab-rails/Gemfile
更改mysql2配置为:
gem "mysql2", "~> 0.3.18"
即可
会涉及到的命令:
gitlab-rake gitlab:check //检查gitlab
gitlab-rake setup //安装数据库
gitlab-ctl stop //关闭服务
gitlab-ctl start //启动服务