個人的な覚え書き

すぐ忘れるので。

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
---------------
<IfModule mod_proxy.c>

ProxyRequests Off
ProxyPass /
aaaaa http://localhost:3000/
ProxyPassReverse /
aaaaa http://localhost:3000/

AddDefaultCharset off
Order deny,allow
Deny from all
Allow from all

ProxyVia On
</IfModule>
---------------------

モジュールを有効にする
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
---------------
<Proxy *>
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

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