ダン・クァン・ミン Blog

はじめまして

Install Apache2 and Passenger

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

Comments