bekkou68 の日記

Gogengo! や IT 技術など。

RoR Webアプリケーションを Passenger を用いて DreamHost にデプロイする方法 - How to Deploy RoR Web Application to DreamHost by Passenger

導入 - Introduction

Ruby on Rails (以下、RoR) のWebアプリケーションを Passenger を用いて DreamHost にデプロイする方法をご紹介します。
I'll introduce how to deploy Ruby on Rails (from the following, RoR) web application to DreamHost by Passenger.

Passenger は、ApacheRuby on Rails のアプリケーションを動かすことができます。
Passenger allows us to work application of Ruby on Rails by Apache.

Passenger を使用するメリットを二つあげます。
I'll list two merits to use Passenger.

既存の運用で Apache を動かしている場合、WEBrick やら mongrel やら lighttpd やらに移行せずに RoR アプリケーションを運用することができます。
If you are operating Apache on existing management, you don't have to change to manage RoR application from Apache to WEBrick, mongrel, and lighttpd.

また、DreamHost で Passenger を使用すると、簡単に RoR アプリケーションをデプロイできます。
And, you can deploy RoR application easily by using Passenger on DreamHost.

Now I introduce it.

DreamHost で Passenger を有効にする - Enable Passenger on DreamHost

DreamHost 上で Passenger を初めて使う場合、Passenger を有効にする必要があります。
If you use Passenger on DreamHost for the first time, you have to enable Passenger.

DreamHost の Web Panel に移動します。
Go to Web Panel of DreamHost.

DreamHost Web Panel > Vserver : Manage Resources

Open the following page.

Main Menu -> Domains -> Manage Domains -> Web Hosting -> Edit

Check the following check box,

Ruby on Rails Passenger (mod_rails)?

Set the following URL,

Specify your web directory: /home/username/[yourdomain]/public/
ex. /home/username/

ボタン「Change fully hosted settings now!」を押下します。
Push button "Change fully hosted settings now!".

1, 2 時間待つと、Passenger が有効になります (http://[yourdomain]/ にアクセスして確認できます)。
Passenger will be enabled in 1 or 2 hours (you can confirm it with http://[yourdomain]/).

アプリケーションのファイル群を配置する - Put on files of application

FTP を用います。Web Panel より……。
We'll use FTP. From Web Panel ...

Main Menu -> Domains -> Manage Domains -> Domain -> WebFTP or FTP

プロジェクト以下のファイル群 (app, config, db, ...) を、[yourdomain] ディレクトリ配下に設置します。
Put on files of following project (app, config, db, ...) to following directory, [yourdomain].

Fixtures を読み込ませるには? - How to read fixtures

SSHDreamHost にログインして行う方法を紹介します。
I'll introduce how to login DreamHost by SSH to do it.

DreamHostSSH ログインするには、ユーザに Shell ログインを許可する必要があります。
To login to DreamHost by SSH, you have to allow user to login by SSH.

ユーザに Shell ログインを許可する - Allow user to login by shell

Web Panel より……。
From Web Panel ...

Main Menu -> Users -> Manage Users -> Actions -> Edit

Select the following radio button.

User Account Type: Shell account - allows SFTP/FTP plus ssh access.

ボタン「Save Changes」を押下します。
Push button "Save Changes".

2, 3 分待つと、Shell ログインができるようになります。
For 2 or 3 minutes later, you could login by Shell.

Fixtures を読み込ませる - Read fixtures

SSH でログイン。
Login by SSH.

ssh [username]@[yourdomain]
ex. ssh

Do migrate and read fixtures.

rake db:migrate RAILS_ENV=production
rake db:fixtures:load FIXTURES_PATH=[file_path] RAILS_ENV=production

Now done!

参考文献 - References

I referred the following websites, thanks so much!

Rails on Dreamhost using Passenger / mod_rails | Ruby Dreams
Passenger - DreamHost
DreamhostでPassengerを使ってみる | Katawara.*
Passenger (mod_rails for Apache) を使ってRedmineを動かしてみたよ! - RX-7乗りの適当な日々

—ω— そのうち、フィクスチャーの読込を自動化させたい……。あと、Capistrano も使おう。