Update hệ thống và cài đặt cái gói build cơ bản
apt-get update
apt-get upgrade
apt-get install build-essential
Cài đặt Ruby
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -sSL https://get.rvm.io | bash -s stable
rvm install 2.2.2
rvm use 2.2.2 --default
Cài đặt Apache2 và Passenger
apt-get install apache2
passenger-install-apache2-module
Config Apache2 với Passenger sau khi đã cài đặt xong Passenger
Tạo file /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /home/root/.rvm/gems/ruby-2.2.2/gems/passenger-5.0.14/buildout/apache2/mod_passenger.so
Tạo file /etc/apache2/mods-available/passenger.conf
<IfModule mod_passenger.c>
PassengerRoot /home/deploy/.rvm/gems/ruby-2.2.2/gems/passenger-5.0.14
PassengerDefaultRuby /home/deploy/.rvm/gems/ruby-2.2.2/wrappers/ruby
PassengerMaxPoolSize 10
</IfModule>
Run command
a2enmod passenger
Config app Rails và add domain/sub-domain
Các bạn có thể tạo 1 file với tên bất kì trong thư mục /etc/apache2/sites-enabled
Như mình thì cứ mỗi 1 app Rails/PHP mình sẽ tạo 1 file ở đây, sau này mình muốn gỡ app nào đó đi mình chỉ cần xóa file đó là được.
Ví dụ với app Rails của mình gắn với domain: ruby.rocks, mình sẽ tạo file có tên là: ruby.rocks.conf có nội dung như sau:
<VirtualHost *:80>
ServerName ruby.rocks
DocumentRoot /home/root/mania-rails-test/public
RailsEnv production
<Directory /home/root/mania-rails-test/public>
Allow from all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>
Giải thích các chỉ thị trong file này:
- VirtualHost *:80: bạn đang chỉ định rằng app này có thể được truy cập từ bên ngoài qua cổng 80
- ServerName ruby.rocks: đây chính là tên miền mà bạn muốn gắn với app Rails này
- DocumentRoot /home/root/mania-rails-test/public: đây là nơi để bạn define đường dẫn tới app Rails của bạn, và theo convention của Passenger thì sẽ là: $RAILS_ROOT_PATH + /public. Ví dụ app Rails của mình đặt tại /home/root/mania-rails-test/. Thì mình sẽ để là /home/root/mania-rails-test/public
- RailsEnv production Môi trường khi chạy app Rails này
- Tại thẻ Directory các bạn cũng để đường dẫn tới app Rails của mình giống như DocumentRoot
- Các phần còn lại trong thẻ Directory các bạn giữ nguyên, chúng ta sẽ nói về phần này sau.
Cuối cùng chạy command
service apache2 restart