lighttpd + ssl (productionモード)。今回は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
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