参考文章:

安装 RVM 和 Ruby

更新 apt,并安装 curl:

sudo apt-get update
sudo apt-get install curl

然后安装 RVM:

\curl -sSL https://get.rvm.io | bash

RVM 安装完毕后,重新登陆 SSH,让 RVM 配置生效。然后安装 Ruby 1.9.3:

rvm use --install --default 1.9.3

Ruby 安装过程会请求 apt-get update 的权限,并自动安装系统依赖。安装完毕后,确认目前的 Ruby 版本:

ruby -v

应该看到 ruby 1.9.3 字样

安装 Passenger

Passenger 是一个 app server,支持基于 Rack 框架的 Ruby app(包括 Rails)。Passenger 的特点是需要作为模块编译到 Nginx 中,优点是配置简单,不需要自己写启动脚本。

安装 Passenger 最简单的方法是通过 apt 安装,首先导入 Passenger 的密钥(官方文档):

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7

安装 apt 插件以支持 https 传输:

sudo apt-get install apt-transport-https ca-certificates

编辑 /etc/apt/sources.list.d/passenger.list,添加 apt 源(对应 Ubuntu 12.04 LTS):

# Ubuntu 12.04
deb https://oss-binaries.phusionpassenger.com/apt/passenger precise main

安装 Passenger 的包:

sudo apt-get install nginx-extras passenger

修改 nginx 配置,编辑 /etc/nginx/nginx.conf,找到这两行注释:

# passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
# passenger_ruby /usr/bin/ruby;

将它修改为:

passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /home/username/.rvm/wrappers/default/ruby;

这会打开 Passenger 支持,并且指定使用之前用 rvm 安装的 ruby 版本, 其中

passenger_root 可以通过以下指令获得:

passenger-config --root

passenger_ruby 可以通过以下指令获得:

passenger-config --ruby-command

Using RVM rubies with Phusion Passenger

安裝MySQL

安装 MySQL 相关的包:

sudo apt-get install mysql-common mysql-client libmysqlclient-dev mysql-server

安装 mysql2 这个 gem:

sudo gem install mysql2 --no-ri --no-rdoc

创建数据库:

mysql -u root -p
CREATE DATABASE gitlabhq_production CHARACTER SET utf8;

安装Redis

安装 redis 的包:

sudo apt-get install redis-server

启动 redis 服务器:

sudo service redis-server start

GitLab

安装 git:

sudo apt-get install git-core

创建项目目录:

sudo mkdir -p /var/www/example.com
sudo chown -R username /var/www/example.com

clone GitLab 源代码:

cd /var/www/example.com
git clone https://github.com/gitlabhq/gitlabhq.git current
git checkout your-branch # 切换到你想要的分支
cd /var/www/example.com/current

复制 example 文件:

cp config/database.example.mysql config/database.yml
cp config/gitlab.yml.example config/gitlab.yml
cp config/unicorn.rb.example config/unicorn.rb

配置 config 文件:

  • 把 datebase.yml 里的 username 和 password 改为你自己 mysql 对应的 username 和 password
  • 把 gitlab.yml 里的 /Users/git 改为对应的 /Users/username

执行 bundle 来安装需要的 gem:

bundle install

执行 migrate:

RAILS_ENV=production rake db:create db:migrate

执行 assets:precompile

rake assets:precompile
修改 Nginx 配置:

删除原有的默认网站配置:

sudo rm /etc/nginx/sites-enabled/default

新建网站配置:

sudo touch /etc/nginx/sites-enabled/example.com.conf

编辑 /etc/nginx/sites-enabled/example.com.conf,写入以下内容:

server {
    listen 80 default;
    server_name example.com; # 这里填写你真实域名
    root /var/www/example.com/current/public;
    passenger_enabled on;
}

重启 nginx:

sudo service nginx restart