Lighttpd+FastCGI環境

とりあえず動かしてみることを前提に・・・・
ちなみにOSはCentOS4.2です。

コンパイラとか必要なものをインストール

 yum -y install gcc
 yum -y install zlib-devel
 yum -y install readline-devel
 yum -y update

zlib

 wget http://www.zlib.net/zlib-1.2.3.tar.gz
 tar xvfz zlib-1.2.3.tar.gz
 cd zlib-1.2.3
 ./configure
 make
 make install

FastCGI

 wget http://fastcgi.com/dist/fcgi-2.4.0.tar.gz
 tar zxvf fcgi-2.4.0.tar.gz
 cd fcgi-2.4.0
 ./configure
 make
 make install

Ruby

 wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.4.tar.gz
 tar xvfz ruby-1.8.4.tar.gz
 cd ruby-1.8.4
 ./configure
 make
 make install
  1. zlibをインストール
 cd ruby-1.8.4/ext/zlib 
 ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/local/lib/ruby/1.8/i686-linux
 make
 make install

Rails

 wget http://rubyforge.org/frs/download.php/5207/rubygems-0.8.11.tgz
 tar xfz rubygems-0.8.11.tgz
 cd rubygems-0.8.11
 su -c "ruby setup.rb"
 su -c "gem install rails --include-dependencies"

RubyfastCGIに対応させる

 su -c "gem install fcgi --include-dependencies"

もしくは

 gem install fcgi --remote

libpcre

(Perl Compatible Regular Expressions)のインストール lighttpdmod_rewrite 等を動作させるには、libpcre (正規表現ライブラリ)が必須。

 wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-6.4.tar.gz
 tar xvfz pcre-6.4.tar.gz
 cd pcre-6.4
 ./configure
 make
 make install

lighttpd

 wget http://www.lighttpd.net/download/lighttpd-1.4.4.tar.gz
 tar xvfz lighttpd-1.4.4.tar.gz
 cd lighttpd-1.4.4
 ./configure --with-pcre
 make
 make install
 ln -s /usr/local/sbin/lighttpd /usr/sbin/lighttpd
 cp doc/rc.lighttpd.redhat /etc/init.d/lighttpd
 cp doc/lighttpd.conf /usr/local/etc/
  1. /etc/init.d/lighttpd の設定

vi /etc/init.d/lighttpd

 LIGHTTPD_CONF_PATH="/etc/lighttpd/lighttpd.conf"
 ↓
 LIGHTTPD_CONF_PATH="/usr/local/etc/lighttpd.conf"
  1. /usr/local/etc/lighttpd.conf の設定

vi /usr/local/etc/lighttpd.conf

 server.modules              = (
                                "mod_rewrite",
 #                               "mod_redirect",
 #                               "mod_alias",
                                 "mod_access",
 #                               "mod_cml",
 #                               "mod_trigger_b4_dl",
 #                               "mod_auth",
 #                               "mod_status",
 #                               "mod_setenv",
                                "mod_fastcgi",
 #                               "mod_proxy",
 #                               "mod_simple_vhost",
 #                               "mod_evhost",
 #                               "mod_userdir",
                                "mod_cgi",
 #                               "mod_compress",
 #                               "mod_ssi",
 #                               "mod_usertrack",
 #                               "mod_expire",
 #                               "mod_secdownload",
 #                               "mod_rrdtool",
                                 "mod_accesslog" )
                                 
 url.rewrite                 = ("^/$" => "dispatch.fcgi")
 
 server.error-handler-404   = "/dispatch.fcgi"
 server.document-root        = "{任意のパス}"
 server.errorlog             = "/var/log/lighttpd/error.log"
 accesslog.filename          = "/var/log/lighttpd/access.log"
 fastcgi.server = ( ".fcgi" =>
                         ("localhost" =>
                                 (
                                         "min-procs" => 10,
                                         "max-procs" => 10,
                                         "socket" => "/tmp/apps.fcgi.socket",
                                         "bin-path" => "{ドキュメントルート}/dispatch.fcgi",
                                         "bin-environment" =>  ("RAILS_ENV" => "production")
                                 )
                         )
                 )
  1. ログのディレクトリを作成
 mkdir /var/log/lighttpd
  1. dispatch.fcgiの権限を変更
 chmod 755 {ドキュメントルート}/dispatch.fcgi