apache2 + fastcgiの設定

前回の勉強会の(懇親会)のときにちょっと話題になっていた、apachefastcgiの設定例を載せておきます*1
switchtowerでdeployしてるので、この日記のswitchtowerタグも見てもらえると、アプリの配置箇所なんかがわかりやすいかと思います。

役に立ちそうだがもっと詳しく、という方がいたらコメント欄なんかで指摘してください。

  • アプリは/webapp/saihu/currentに配置。currentはsymlinkでswitchtowerが作ります。
  • 家の中でしか使わないので、fcgiの初期プロセスは2くらいで(適当)。
  • http://myhost.example.com/saihu でWebアプリへアクセスします。
  • DocumentRoot外なので、Directoryディレクティブでアクセス可能に。

/etc/apache2/mods-enabled/fastcgi.load

LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so

/etc/apache2/mods-enabled/fastcgi.conf

<IfModule mod_fastcgi.c>
    AddHandler fastcgi-script .fcgi
    FastCgiIpcDir /var/lib/apache2/fastcgi
</IfModule>

/etc/apache2/sites-enabled/000-default(抜粋)

<IfModule mod_fastcgi.c>
    FastCgiServer /var/webapp/saihu/current/public/dispatch.fcgi \
                    -initial-env RAILS_ENV=production \
                    -initial-env RAILS_ROOT=/var/webapp/saihu/current \
                    -processes 2

    Alias /saihu /var/webapp/saihu/current/public
    <Directory /var/webapp/saihu/current/public>
        AllowOverride all
        Order deny,allow
        Deny  from all
        Allow from 127.0.0.0/8 192.168.10.0/24
    </Directory>
</IfModule>

*1:Debianでの設定ですが、似たような感じでgentooでも動いています。