在lighttpd上运行RoR应用

最近一直试着在lighttpd上运行RoR,在网上看了很多,现在尝试一下。我的安装环境为:

 

Red Hat Enterprise Linux Server release 5 (Tikanga)
Lighttpd-1.4.20
FastCGI-2.4.0
Ruby-fcgi-0.8.7
Ruby-1.8.7 + Rails-2.1.2 + gem-1.3.1

首先看看Lighttpd + Fastcgi + Ruby on Rails + RDBMS 的情況如下图,一共有两个接口:

在lighttpd上运行RoR应用

  1. Lighttpd 通过 mod_fastcgi 跟 fasctcgi server通讯
  2. 而 Ruby通过 ruby-fcgi 跟 fastcgi server通讯

fastcgi server 是独立进程 ,可以跑 unix socket 或是 TCP socket ( spawn fcgi)。所以安裝步骤为:

  1. 安裝 lighttpd (默认已包含 mod_fastcgi )
  2. 安裝 fastcgi
  3. 安裝 Ruby on Rails 
  4. 安裝 ruby-fcgi
  5. 配置 lighttpd.conf

安裝 lighttpd 很简单, 就不再赘述

安裝 fastcgi 也比较简。

下载:

wget http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz

解压:

tar -zxvf fcgi-2.4.0.tar.gz

配置安装:

./configure --prefix=/usr/local/fcgi
make && make install 

一般没什么特别是、即可安装成功。

 

安裝 Ruby on Rails ,这个网上已有很多,也不再赘述。

安裝ruby-fcgi 有很多方式。

    如系统提供的安装FreeBSD

    通过gem安装:

gem install fcgi -- --with-fcgi-dir=/usr/local/fcgi

    直接下载安装:

下载:

wget http://rubyforge.org/frs/download.php/11368/ruby-fcgi-0.8.7.tar.gz

 解压:

tar -zxvf ruby-fcgi-0.8.7.tar.gz

 配置安装:

ruby install.rb config -- --with-fcgi-include=/usr/local/fcgi/include --with-fcgi-lib=/usr/local/fcgi/lib
或
ruby install.rb config -- --with-fcgi-dir=/usr/local/fcgi/

ruby install.rb setup

ruby install.rb install

配置 lighttpd.conf

在默认配置上外加载的模块:mod_fastcgi

$HTTP["host"] == "demo.localhost"{
	server.document-root = "/yourapp/public"
	server.error-handler-404 = "/dispatch.fcgi"
	fastcgi.debug = 1
	fastcgi.server = (
		".fcgi" => (
			"demo" => (
				"min-procs" => 1,
				"max-procs" => 5,
				"socket" => "/var/run/lighttpd/rails.socket",
				"bin-path" => "/yourapp/public/dispatch.fcgi"
			)
		)
	)
}
 

 

 

 

你可能感兴趣的:(java,socket,lighttpd,Ruby,Rails)