lighttpd + ssl (productionモード)。今回はrpmでインストール

1.lighttpd(src.rpm)ダウンロード

# wget http://www.lighttpd.net/download/lighttpd-1.4.13-1.src.rpm

2.rpmの作成

# rpmbuild --rebuild --with ssl lighttpd-1.4.13-1.src.rpm

3.インストール

# rpm -ivh /usr/src/redhat/RPMS/i386/lighttpd-1.4.13-1.i386.rpm

4.lighttpd.confの設定

# mkdir /etc/lighttpd
# touch /etc/lighttpd/lighttpd.conf
# emacs /etc/lighttpd/lighttpd.conf

lighttpd.conf

var.basedir = "/srv/rails_test/"
#↑Railsアプリケーションの場所

server.port = 81
#↑これの設定はちゃんと調べないとな・・・。

#server.modules           = ( "mod_rewrite", "mod_alias", "mod_access", "mod_fastcgi", "mod_accesslog" )
server.modules           = ("mod_alias", "mod_access", "mod_fastcgi", "mod_accesslog" )
server.error-handler-404 = "/dispatch.fcgi"
server.document-root     = var.basedir + "public/"

server.pid-file          = "/var/run/lighttpd.pid"

#url.rewrite              = ( "^/$" => "index.html", "^([^.]+)$" => "$1.html" )
#↑今回は、mod_rewriteを使わない。

# multiple sockets(xxx.xxx.xxx.xxx にはIPを入れましょう)
$SERVER["socket"] == "xxx.xxx.xxx.xxx:80" {
  server.errorlog          = var.basedir + "log/lighttpd.error.log"
  accesslog.filename       = var.basedir + "log/lighttpd.access.log"
}

$SERVER["socket"] == "xxx.xxx.xxx.xxx:443" {
  ssl.engine = "enable"
  ssl.pemfile = "/etc/lighttpd/ssl/server.pem"
  ssl.ca-file = "/etc/lighttpd/ssl/ca.cer"

  server.errorlog          = var.basedir + "log/lighttpd-ssl.error.log"
  accesslog.filename       = var.basedir + "log/lighttpd-ssl.access.log"
}


# Change *-procs to 2 if you need to use Upload Progress or other tasks that
# *need* to execute a second request while the first is still pending.
fastcgi.server = ( ".fcgi" =>
  ( "localhost" =>
      (
        "min-procs" => 1,
        "max-procs" => 10,
        "socket"    => var.basedir + "log/fcgi.socket",
        "bin-path"  => var.basedir + "public/dispatch.fcgi",
        "bin-environment" => ( "RAILS_ENV" => "production" )
      )
  )
)

mimetype.assign = (
  ".css"        =>  "text/css",
  ".gif"        =>  "image/gif",
  ".htm"        =>  "text/html",
  ".html"       =>  "text/html",
  ".jpeg"       =>  "image/jpeg",
  ".jpg"        =>  "image/jpeg",
  ".js"         =>  "text/javascript",
  ".png"        =>  "image/png",
  ".swf"        =>  "application/x-shockwave-flash",
  ".txt"        =>  "text/plain"
)

5.SSLの準備

# mkdir /etc/lighttpd/ssl
# touch /etc/lighttpd/ssl/ca.cer
# touch /etc/lighttpd/ssl/server.pem

server.pemとca.cerは各自準備してください。
Rails + lighttpd + SSL - 基本へ帰ろう
↑参考


6.DBの準備

# rake environment RAILS_ENV=production migrate

※migrateの前にデータベースを作ってください。
例)create database test_production


7.pcreのインストール

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

8.ruby-fcgiのインストール

wget http://sugi.nemui.org/pub/ruby/fcgi/ruby-fcgi-0.8.6.tar.gz
tar zxf ruby-fcgi-0.8.6.tar.gz
cd ruby-fcgi-0.8.6
ruby install.rb config -- --with-fcgi-include=/usr/local/fcgi/include --with-fcgi-lib=/usr/local/fcgi/lib
ruby install.rb setup
ruby install.rb install

9.Railsアプリをアップロード
※注意として、config/environment.rb の

# ENV['RAILS_ENV'] ||= 'production'

ENV['RAILS_ENV'] ||= 'production'

にして、productionモードにしましょう。

また、windowsで開発している場合、public/dispatch.fcgi、public/dispatch.cgi、dispatch.rbの1行目が、

#!c:/ruby/bin/ruby

となっているので、Linuxで動くように、

#!/usr/bin/ruby

と直しましょう。もしくは、

#!/usr/bin/env ruby

こう。


10.起動

# /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf

Webサーバ「lighttpd」でWebDAVを使うには − @IT
↑参考