Skip to content

Instantly share code, notes, and snippets.

@cuonggt
Last active November 5, 2015 08:54
Show Gist options
  • Save cuonggt/afa3bae990d95328b461 to your computer and use it in GitHub Desktop.
Save cuonggt/afa3bae990d95328b461 to your computer and use it in GitHub Desktop.
Deploy Ruby On Rails on Ubuntu 14.04 Trusty Tahr

Tổng quan

Chúng ta sẽ thiết lập môi trường production Ruby on Rails trên Ubuntu 14.04 LTS Trusty Tahr.

Kể từ khi sử dụng Ubuntu cho môi trường phát triển, chúng ta cũng muốn sử dụng trong môi trường production. Điều này giúp ứng dụng chạy nhất quán giữa môi trường phát triển và production. Chúng ta sẽ sử dụng phiên bản LTS của Ubuntu cho môi trường production vì nó được hỗ trợ nhiều năm trong khi phiên bản Ubuntu thường không hỗ trợ.

Tạo một Virtual Private Server (VPS)

Thuê một VPS từ Digital OceanLinode.

Tạo tài khoản để chạy ứng dụng và làm việc trên VPS:

sudo adduser deploy
sudo adduser deploy sudo
su deploy

Thiết lập SSH để xác thực thay vì phải nhập mật khẩu để đăng nhập sử dụng ssh-copy-id. Nếu sử dụng OSX bạn cần chạy brew install ssh-copy-id, nếu sử dụng Linux, nó đã có sẵn. Chạy ssh-copy-id trên máy bạn (không phải server), thay thế IPADDRESS bằng IP của VPS:

ssh-copy-id deploy@IPADDRESS

Đăng nhập vào VPS:

ssh deploy@IPADDRESS

Cài Ruby

Cài một số thư viện cần thiết:

sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev

Cài ruby sử dụng rbenv:

cd ~
git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash

rbenv install 2.2.3
rbenv global 2.2.3
ruby -v

Cài bundler:

echo "gem: --no-ri --no-rdoc" > ~/.gemrc
gem install bundler

Cài nginx

Cài nginx và Passenger:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt-get install -y apt-transport-https ca-certificates

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt-get install -y apt-transport-https ca-certificates

# Add Passenger APT repository
sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main > /etc/apt/sources.list.d/passenger.list'
sudo apt-get update

# Install Passenger & Nginx
sudo apt-get install -y nginx-extras passenger

Khởi động nginx:

sudo service nginx start

Mở file /etc/nginx/nginx.conf để cấu hình nginx để trỏ Passenger vào phiên bản Ruby chúng ta đang sử dụng:

sudo vim /etc/nginx/nginx.conf

Tìm các dòng sau và bỏ comment:

passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;

passenger_ruby /home/deploy/.rbenv/shims/ruby;

Chạy sudo service nginx restart để khởi động lại nginx với cấu hình Passenger mới.

Cấu hình Database MySQL và PostgreSQL

Cài MySQL:

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

Cài PostgreSQL:

sudo apt-get install postgresql postgresql-contrib libpq-dev

Thiết lập tài khoản PostgreSQL:

sudo su - postgres
createuser --pwprompt
exit

Thiết lập Capistrano

Thêm Capistrano vào Gemfile:

gem 'capistrano', '~> 3.1.0'
gem 'capistrano-bundler', '~> 1.1.2'
gem 'capistrano-rails', '~> 1.1.1'
gem 'capistrano-rbenv', github: "capistrano/rbenv"

Chạy bundle --binstubscap install STAGES=production để sinh ra cấu hình capistrano.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment