Debian サーバーの Apache2(mod_fcgid) で Rails を動かす方法

Apache2 のインストールとかは略。
http://app.filn.local みたいな、サブドメイン使う感じで。


mod-fcgid モジュールとその Ruby ライブラリをインストール。

$ sudo aptitude install libapache2-mod-fcgid libfcgi-ruby


/etc/apache2/mods-available/fcgid.conf に以下を追加:

<IfModule mod_fcgid.c>
  ...
  # for rails
  IPCCommTimeout 300
  DefaultInitEnv RAILS_ENV production
</IfModule>

mod-fcgid を有効化:

$ sudo a2enmod fcgid


/etc/site-available/app を作成:

<VirtualHost *>                                            
    ServerName app.filn.local                          
    DocumentRoot /path/to/app/current/public/
    <Directory /path/to/app/current/public/> 
        Options ExecCGI FollowSymLinks             
        AllowOverride all                          
        Order allow,deny                           
        Allow from all                             
    </Directory>                                       
</VirtualHost>                                             

サイトを有効化:

$ sudo e2ensite app


/path/to/app/public/.htaccess を修正して fcgid 対応:

#AddHandler fastcgi-script .fcgi
AddHandler fcgid-script .fcgi
...
#RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]


apache 再起動:

$ sudo /etc/init.d/apache2 restart

終わり。


って簡単に書いたけど、半日近くかかったつーの!