プログラマでありたい

おっさんになっても、プログラマでありつづけたい

Apache2 + FastCGI + Ruby on RailsをGentooにインストール

 ひたすらインストールメモばかり載せていますが。。。
Apache2,Ruby on Railsがそれぞれインストールされている状態で、FastCGIの設定。

FastCGIのインストール

GentooでFastCGIを使う場合は、mod_fastcgiかmod_fcgidの2種類の選択肢があります。
今回は、mod_fcgidを使いました。(元は同じ物のようです。)

# vi /etc/make.conf
USE="apache2"
# emerge fcg
# emerge mod_fcgid
# gem install fcgi --remote

apacheの設定

/etc/conf.d/apache2に以下を設定

APACHE2_OPTS="-D FCGID"

複数のオプションを設定する場合は、こんな感じ
APACHE2_OPTS="-D DEFAULT_VHOST -D SVN -D DAV -D FCGID"

FastCGIを使う為の設定

#vi /etc/apache2/modules.d/20_mod_fcgid.conf
<IfDefine FASTCGI>
        <IfModule !mod_fcgid.c>
                LoadModule fcgid_module     modules/mod_fcgid.so
                DefaultInitEnv RAILS_ENV development
                IPComm Timeout 40
                IPCConnect Timeout 10
        </IfModule>

        <IfModule mod_fcgid.c>
                AddHandler fcgid-script .fcgi
        </IfModule>
</IfDefine>

DefaultInitEnv RAILS_ENVの部分は、状況によって変えてください。
production | development | test

AddHandler fcgid-script .fcgiの部分に注意してください。
mod_fastfcgiの場合と異なっています。

Railsの設定

適当なディレクトリにRailsのアプリを作成。所有者をapacheの実行ユーザにする

$rails ror
$chown -R apache:apache ror

apache側の設定

#vi /etc/apache2/vhosts.d/00_default_vhost.conf 
<VirtualHost *:80>
    ServerName ror
    DocumentRoot "/yourdirectory/ror/public"
    ErrorLog "/yourdirectory/ror/log/server.log"
   <Directory /yourdirectory/ror/public/>
      Options +FollowSymLinks
      #AddHandler cgi-script .cgi
      AddHandler fcgid-script .fcgi
      AllowOverride all
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>

publicの直下に.htaccessを置き、以下の一文を追加
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]


apache側の再起動

#apache2ctl restart

http://fastcgi.coremail.cn/doc.htm