Apache+PassengerでRails
PhussionPassenger(aka mod_rails)でRailsアプリを動かすことになった。
でも設定にクセがあるというか、けっこうつまづいたのでメモ。
インストール-------------
gemを使うと超簡単
gem install passenger-x.x.x.gem
passenger-install-apache2-module
インストールは対話形式で進んで行く。
足りないものがあればインストールするよう促される。
ソースの設置-------------
外部からアクセスできない場所に本体を設置
アプリのpublicディレクトリのへシンボリックリンクをドキュメントルート以下に貼る
ln -s /home/***/app/public /var/www/app
apacheの設定-------------
サイトの定義ファイル作成
sudo vi etc/apache2/sites-available/app
DocumentRoot /var/www
RailsBaseURI /app
Options FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
サイトを有効化
sudo a2ensite app
apacheを再起動
sudo apache2ctl restart
注意事項-------------
passengerはデフォルトでproductionモードで動く
最初、productionのDBがない状態で実行しようとしていて
エラーになっていた
Apache + mod_proxy + mongrel
モジュールを確認
ls /etc/apache2/mods-available/
----
proxy_http.load
proxy.conf
proxy.load
----
プロキシの設定
sudo vi /etc/apache2/mods-available/proxy.conf
---------------
ProxyRequests Off
ProxyPass /
ProxyPassReverse /
AddDefaultCharset off
Order deny,allow
Deny from all
Allow from all
ProxyVia On
---------------------
モジュールを有効にする
sudo a2enmod proxy
*sudo a2enmod proxy_http
(*のものはa2enmod prox で一緒に有効になる)
確認
ls /etc/apache2/mods-enabled/
----
proxy_http.load
proxy.conf
proxy.load
----
サイトの定義ファイルを新規作成
sudo vi etc/apache2/sites-available/aaaaa
---------------
AddDefaultCharset off
Order deny,allow
Deny from all
Allow from all
</Proxy>
シンボリックリンク作成
ln -s /home/aaa/aaaaa/public /var/www/aaaaa
サイトを有効化
sudo a2ensite aaaaa
ついでにdefaultを無効化
sudo a2dissite default
mongrelを起動
mongrel_rails start -d -p 3000 -e production
apache再起動
sudo /etc/init.d/apache2 restart
postgresqlの設定
su postgres
createuser aaa
vi /var/lib/postgresql/7.4/main/pg_hba.conf
以下へ変更
#local all all ident sameuser
local all all trust
# IPv4-style local connections:
#host all all 127.0.0.1 255.255.255.255 md5
host all all 127.0.0.1 255.255.255.255 trust
Version Info
libruby1.8 1.8.5-4etch1
ruby1.8 1.8.5-4etch1
ruby 1.8.2-1
libreadline-ruby1.8 1.8.5-4etch1
irb1.8 1.8.5-4etch1
rdoc1.8 1.8.5-4etch1
libopenssl-ruby1.8 1.8.5-4etch1
libgems-ruby1.8 0.9.0-5
ruby1.8-dev 1.8.5-4etch1
rubygems 0.9.0-5
rails-1.2.3
activesupport-1.4.2
activerecord-1.15.3
actionpack-1.13.3
actionmailer-1.3.3
actionwebservice-1.2.3
libpgsql-ruby1.8 0.7.1-10
gettext 1.10.0 (ruby)
rubyとrailsインストール
*ruby関連をインストール
sudo aptitude install ruby1.8 rubygems libpgsql-ruby1.8
#以下が入る
libruby1.8
ruby
ruby1.8
irb1.8
libopenssl-ruby1.8
libgems-ruby1.8
libopenssl-ruby1.8
libreadline-ruby1.8
rdoc1.8
ruby1.8-dev
rubygems
libpgsql-ruby1.8
*railsをバージョン指定でインストール
sudo gem install rails -v 1.2.3 -y
*パスを通す
vi .bashrc
以下を追加
export PATH=/var/lib/gems/1.8/bin:$PATH
source .bashrc
*postgresqlのユーザを作る
aji@saba:~$ su
saba:/home/aji# su postgres
postgres@saba:/home/aji$ createuser aji
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) y
CREATE USER
*インストール
sudo gem install gettext
sudo gem install mongrel
*script/consol が動かなかったら
sudo aptitude install irb
*gemで 'uninitialized constant Gem::GemRunner' がでたら当該箇所を以下のように修正
変更前:require 'rubygems'
変更後:require 'rubygems/gem_runner'
*railsでundefined method `require_gem'がでたら当該箇所を以下のように修正
変更前:require_gem 'rails', version
変更後:gem 'rails', version