Gitlab安装、配置及错误解决

2013.08.25/2014.06.26发布于笔记暂无评论/目录

使用Gitlab在VPS上搭建私人Git仓库。

2014-06-26 更新

现在debian7/ubuntu12.04/ubuntu14.04/centos6都有了编译好的官方二进制安装包,直接在这里按照说明下载安装即可。

安装

官方的安装指南非常详尽,参照着执行即可。注意安装数据库之前一定修改数据库配置文件config/database.yml里的用户名和密码,不要用root用户。使用如下命令查看gitlab安装状态

cd ~gitlab/gitlab
sudo -u gitlab -H bundle exec rake gitlab:check RAILS_ENV=production

配置

子域

在DNS管理界面为gitlab加一条A记录,指向服务器的IP即可。

迁移数据库到Mysql

  1. 导出现有数据。

     bundle exec rake db:data:dump RAILS_ENV=production
    
  2. 修改数据库配置文件config/database.yml。

     # backup old database settings first
     cp config/database.yml config/database.yml.old
     cp config/database.yml.mysql config/database.yml
    

    修改database.yml中mysql数据库的用户名和密码。

  3. 创建数据库。

     bundle exec rake db:setup RAILS_ENV=production
    
  4. 导入数据。

     bundle exec rake db:data:load RAILS_ENV=production
    

问题

修改工程的默认域名

使用默认设置新建的工程,域名都是localhost,修改gitlab/config/gitlab.yml,如下所示,将host改为需要的域名。

# Git Hosting configuration
git_host:
...
    host: gitlab.mawenbao.com
...
web:
    host: gitlab.mawenbao.com

迁移到Mysql时无法找到mysql2 adapter

使用命令bundle exec rake db:data:load RAILS_ENV=production初始化Mysql数据库时报以下错误:

rake aborted!
Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (mysql2 is not part of the bundle. Add it to Gemfile.)

按照提示安装activerecord-mysql2-adapter后依然报同样的错误。修改gitlab的Gemfile($GitlabRoot/Gemfile),找到如下一句:

gem "mysql2", :group => :mysql

将其修改为

gem "mysql2", :group => :production

若依然无效,添加如下一行即可。

gem 'mysql2'

sshd端口不是22

若sshd的端口不是22,则会遇到如下错误:

ssh: connect to host localhost port 22: Connection refused

此时,在/home/gitlab/.ssh/config文件中加入如下内容即可。

Host localhost
Port 12345

查看文件源码时出现500错误

pygments需要python2.6或python2.7,如果安装了python2.6或python2.7后依然出现该错误,则可能是因为pygments无法找到python2,执行如下命令即可解决,参考Error 500 while trying to see source file

ln -s /usr/bin/python2.6 /usr/bin/python2

git push出错

使用http协议推送比较大的文件时有可能出现如下错误:

error: RPC failed; result=22, HTTP code = 413
fatal: The remote end hung up unexpectedly

参考issue#3099里的讨论,需要在/etc/nginx/sites-available/gitlab里修改client_max_body_size的值。

# ...
client_max_body_size 100M;
# ...

具体的数值可根据需要自行设置。

阅读资料

#git#gitlab

评论