nazolabo

フリーランスのWebエンジニアが近況や思ったことを発信しています。

FreeBSD + Apache2 + mod_fcgid + Ruby On Rails

Apacheは普通に動いていて、RailsアプリはWebrickで普通に作ったって設定で。なんかfastcgiはプロセス増殖しまくってよくわかんないことになったので、fcgidで。
まずportsからmod_fcgidを入れる。

# cd /usr/ports/www/mod_fcgid
# make
# make install

Ruby側も入れる(よくわからないけど必要なんだと思う)

# gem install fcgi

httpd.confの設定(数値はお好みで)

LoadModule fcgid_module libexec/apache22/mod_fcgid.so

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

  IPCCommTimeout 40
  IPCConnectTimeout 10

  DefaultInitEnv RAILS_ENV production
  
</IfModule>

Railsアプリ側の.htaccessの修正

- AddHandler fastcgi-script .fcgi
+ AddHandler fcgid-script .fcgi

- RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
+ RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

あとはDocumentRootで動かすならそのまま、VirtualHostで区切るならVirtualHostの設定、サブディレクトリで区切るならAliasで設定(.htaccessにRewriteBaseの設定をお忘れなく)して、実行。