サーバのOSはCentOS 6.4、DBはMySQL 5.6.10で、Passengerがインストールされていることを前提に。Passengerのインストールについては下記ページが参考になる。
Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用
アプリケーションのアップロード
Apacheのドキュメントルート(/var/www/html/など)にフォルダごとFTPでアップロードする。httpd.confの設定を変えれば、他の場所にしても構わない。
所有者を変更
Passengerはroot権限でrailsアプリケーションを動作させることができないので、chownコマンドでフォルダの所有者を変更する。
% chown -R username:group /var/www/html/RAILS_ROOT
database.ymlの設定
開発機とサーバ機でMySQLのソケットやユーザ名が異なる場合は、development(開発用)、test(テスト用)、production(本番用)それぞれについてdatabase.ymlを修正する必要がある。
RAILS_ROOT/config/database.yml
production: adapter: mysql2 encoding: utf8 reconnect: false database: railsapp_production pool: 5 username: username password: pass socket: /tmp/mysql.sock
修正する必用があるのは多くの場合、username/password/socket欄だろうか。
mysql.sockの場所が分からないのであれば下記コマンドを実行する。パスワードを求められるので、指定したユーザに対応するパスワードを入力する。
mysql.sockの場所が分からないのであれば下記コマンドを実行する。パスワードを求められるので、指定したユーザに対応するパスワードを入力する。
% mysqladmin -u username -p version
出力結果(下記11行目)にソケットの場所が表示されている。
mysqladmin Ver 8.42 Distrib 5.6.10, for osx10.8 on x86_64 Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Server version 5.6.10 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /tmp/mysql.sock Uptime: 29 days 23 hours 20 min 24 sec Threads: 3 Questions: 37312 Slow queries: 0 Opens: 100 Flush tables: 1 Open tables: 67 Queries per second avg: 0.014
mysql2アダプタをインストール
まずはMySQLの開発ライブラリをインストール。
% sudo yum install mysql-devel
Gemfileに以下を記述。
RAILS_ROOT/Gemfile
RAILS_ROOT/Gemfile
gem 'mysql2'
その後でbundle installを実行。
本番用データベースを作成
Passenger上で動くrailsアプリケーションは標準でproductionモードでの動作となるので、それに対応するデータベースをサーバ上で作成する必要がある。
% rake db:create RAILS_ENV=production % rake db:migrate RAILS_ENV=production
これで完了。