サーバーへデプロイ
もう締め切り間近なので、サーバーへ「Rails南蛮通事」をデプロイしました。 締め切りまでの間に何度もデプロイすると思われるので、Capstrano で 開発環境(Mac)から簡単にデプロイ出来るようにしました。
情報元は http://manuals.rubyonrails.com/read/chapter/97 です。
*注意* 最新の Capstrano のバージョンは 2.0.X です。しかし、ここで書いたものは 1.4.1 での手順、設定です。(締め切り間近なので前から使ってるバージョンにしました)
準備
- ssh でサーバーへのログイン、known_hostsへの登録確認が出ないようにする為
- サーバー上で Subversion から checkout 出来る事の確認。サーバー上のインストールで使うアカウントにSubversionのログイン、パスワードを設定する。
- ruby/rails/DBソフトのインストール
- FastCGIのインストール・設定
- Rails FastCGIライブラリーのインストール
- データベース・アカウントの作成
- apacheの設定
public/.htaccss の変更
デフォルトの .htaccess のままでは、 FastCGIでは動きません。変更したところは:
# サーバー名の後に パスが入る場合はそのパスを設定、この例だと http://server/app/コントロラー名 になる RewriteBase /app # CGI用の設定 RewriteRule ^(.*)$ dispatch.cgi [QSA,L] を止め、FastCGI用に変更 RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
プレジェクトへの Capstorano インストールと設定
既にCapstorano はインストールされているとして、
% cd tsuuji -- Railsプロジェクトのトップへ移動 % cap --apply-to .
設定ファイル (config/deploy.rb) を編集。変更した所だけ書きます
# アプリケーション名 set :application, "tsuuji" # SubversionのURL set :repository, "http://svn.ey-office.com/tsuuji/trunk/tsuuji" # サーバー名 role :web, "tsuuji.ey-office.com" role :app, "tsuuji.ey-office.com" role :db, "tsuuji.ey-office.com", :primary => true # インストール先 set :deploy_to, "/users/www/tsuuji" # defaults to "/u/apps/#{application}" # ログイン名 (このログイン名でsshを使いログインしインストールが行われる) set :user, "yoshida" # defaults to the currently logged in user # ログイン用暗号キーの場所 ssh_options[:keys] = %w(/Home/yy/.ssh/key) # 最後にサーバー リスタートコマンドを記述 desc "Restart the web server" task :restart, :roles => :app do sudo "/usr/sbin/apachectl graceful" end
サーバーの設定
cap -a setup