`
swordz
  • 浏览: 12860 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Lighttpd+FastCGI+Ubuntu+Rails2.3 设置记录

    博客分类:
  • RoR
阅读更多
本来在 GOOGLE的BLOGSPOT上搞了个BLOG,折腾了好几篇,
结果BLOGSPOT被盾了,实在是!@#$%^%&^&^&&

事先研究了很多相关的材料,本站很多总结。
先装RUBY,RAILS2.3等略过

装PCRE
# apt-get update
# apt-get install libpcre3 libpcre3-dev


然后安装zlib,先要安装一个ubuntu下的zlib,可以到http://www.zlib.net下载,我下载的是zlib-1.2.3。下载安装步骤如下:

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

http://www.bzip.org/1.0.5/bzip2-1.0.5.tar.gz

都是直接

./configure
make
make install

然后下载lighttpd:
http://www.lighttpd.net/download/
tar xzvf lighttpd-1.4.13.tar.gz
cd lighttpd-1.4.13
./configure --prefix=/usr/local/lighttpd

configure完毕以后,会给出一个激活的模块和没有激活模块的清单,可以检查一下,是否自己需要的模块都已经激活,在enable的模块中一定要有“mod_rewrite”这一项,否则重新检查pcre是否安装

试验 Hello Word!

    $ cd ~/mytst
    $ ruby script/generate controller Say
    $ vim app/controllers/say_controllers.rb
       > class SayController < ApplicationController
       >    def hello
       >    end
       > end
    $ vim app/views/say/hello.html.erb
       > <html>
       >     Hello Word!
       > </html>
     $ ruby script/server

http://localhost:3000/say/hello

四、安装 Ruby 的 FCGI 支持

由于ruby的fcgi支持库需要在编译的时候联接FCGI的系统库,因此我们需要先安装FCGI库,下载FCGI源代码发行包:
http://www.fastcgi.com/dist/
tar xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure --prefix=/usr/local/fcgi
make && make install
同样,将fcgi安装在自己指定的目录下,而不是默认的/usr/local,避免多个软件混在一起。

然后就可以安装ruby的fcgi支持库了,下载ruby-fcgi-0.8.7.tar.gz:
http://rubyforge.org/projects/fcgi/
tar xzvf ruby-fcgi-0.8.7.tar.gz
cd ruby-fcgi-0.8.7
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

if 少文件 mkmf(LoadError) 需要安装ruby1.8-dev
sudo apt-get install ruby1.8-dev

配置 Lighttpd

cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd

cp doc/rc.lighttpd /etc/init.d/lighttpd
如果你的Linux是ubuntu,那么需要自己创建启动脚本,lighttpd官方wiki上面已经给出来该脚本,地址在:
http://redmine.lighttpd.net/wiki/1/ScriptsUbuntu

最后变成  /etc/init.d/lighttpd 文件
然后修改/etc/init.d/lighttpd,modify

#PATH=/sbin:/bin:/usr/sbin:/usr/bin
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
#LIGHTY_DAEMON=/usr/sbin/lighttpd
LIGHTY_DAEMON=/usr/local/sbin/lighttpd

#FCGI_DAEMON="/usr/bin/spawn-fcgi"
FCGI_DAEMON="/usr/local/bin/spawn-fcgi"

chmod a+rx /etc/init.d/lighttpd
#chmod u+x lighttpd

In Debian / Ubuntu you use update-rc.d rather than chkconfig:

update-rc.d lighttpd defaults


mkdir /etc/lighttpd
cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf


修改/etc/lighttpd/lighttpd.conf

1)server.modules
取消需要用到模块的注释,mod_rewrite,mod_access,mod_fastcgi,mod_simple_vhost,mod_cgi,mod_compress,mod_accesslog是一般需要用到的。

2)server.document-root, server.error-log,accesslog.filename需要指定相应的目录
#server.document-root        = "/srv/www/htdocs/"
server.document-root        = "/home/test/tstapp/mytst/public"

$HTTP["host"] == "127.0.0.1"{
     server.document-root = "/home/test/tstapp/mytst/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" => "/home/test/tstapp/mytst/public/dispatch.fcgi",
                 "bin-environment" => ("RAILS_ENV" => "development")
             )
         )
     )
}

建立目录 /var/run/lighttpd

在lighttpd的虚拟域配置里面有一项

server.error-handler-404 = "/dispatch.fcgi"


意思是当lighttpd找不到URL对应的硬盘文件,就会调用Rails的dispatch.fcgi去处理该URL请求,这也是 lighttpd访问Rails的主要方式,其性能比URL转发要快。如果你在配置文件里面忽略了这一行,lighttpd就会直接返回404错误,而不是交给Rails处理。


sudo /etc/init.d/lighttpd start
我的脚本弄的有点问题,启动不正常,通过下面命令启动的

sudo lighttpd -f /etc/lighttpd/lighttpd.conf start


最后发现 找不到 dispatch.fcgi 和 dispatch.rb!
原来官方blog的确切消息,3.0的铁定不支持CGI了。所以,建议转NGINX/mongrel 或者 passenger,现在这些更流行,用的人也更多。

引用
Removed: CGI Support

Rails 3 will not support direct CGI dispatching. This was deprecated in Rails 2.3, so it should be no surprise to anyone that it’s being removed entirely. If you need to use CGI for some reason, though, remember that it’s still supported through Rack.


http://weblog.rubyonrails.org/2009/4/17/this-week-in-edge-rails
太黑色幽默了,研究了几天 LIGHTTPD+FCGI,结果 以后没用了 :(((((((((((
不过 RAILS2.3 还没完全拿掉,只是 DEPRECATE
从以前项目中拷过来 dispatch.fcgi,dispatch.rb 和 dispatch.fcgi 三个文件 到PUBLIC目录下
1st 行RUBY路径改成本机对应路径
再启动 lighttpd 还是起作用的
http://127.0.0.1/say/hello
分享到:
评论
2 楼 hz_qiuyuanxin 2012-07-15  
LZ,我想问下,那个我老是遇到读写权限问题。要怎么解决


qyx@qyx-HP-Compaq-6200-Pro-MT-PC:~$ lighttpd -f /etc/lighttpd/lighttpd.conf
2012-07-15 00:01:20: (server.c.681) opening pid-file failed: /var/run/lighttpd.pid Permission denied


这个烦了我一个晚上了!!
1 楼 allwefantasy 2010-01-28  
有意思 我拷贝了你的文件 依然无法启动lighttpd 晕倒

相关推荐

    搭建lighttpd+cgi的代码包

    【搭建lighttpd+cgi的代码包】 在Web服务器领域,lighttpd是一个轻量级且高效的HTTP服务器,因其低内存占用和高速度而受到欢迎。CGI(Common Gateway Interface)则是一种标准,允许Web服务器执行外部程序并返回...

    lighttpd+mysql+php tar.gz安装包整合

    这里我们关注的是"lighttpd+mysql+php"的集成安装,特别适用于轻量级服务器需求,例如开发或测试环境。这个压缩包文件集合包含了在CentOS7系统上成功安装和测试的所有组件,包括lighttpd(一个轻量级HTTP服务器)、...

    phpLight(LightTPD+PHP集成包) v2014

    phpLight 2014 是网上首套LightTPD+PHP集成包,集成最新Lighttpd+PHP+MySQL+SQL-Front+Zend Guard Loader+XCache。纯绿色,安装后无需再配置。支持系统服务和非服务两种启动方式,自由切换。一次性安装无需再安装,...

    套件php 集成最新的Apache+Nginx+LightTPD+PHP+MySQL+phpMyAdmin+Zend Optimizer+Zend Loader

    这个工具包特别适合PHP初学者,因为它提供了一键式安装和配置功能,简化了通常需要手动设置的复杂过程。 首先,Apache、Nginx和LightTPD是三种流行的Web服务器软件。Apache是最广泛使用的开源HTTP服务器,具有丰富...

    phpLight 2013 网上首套LightTPD+PHP集成包

    phpLight 2013 是网上首套LightTPD+PHP集成包, 集成最新Lighttpd+PHP+MySQL+SQL-Front+Zend Guard Loader+XCache。 纯绿色,安装后无需再配置。支持系统服务和非服务两种启动方式,自由切换。 一次性安装无需再安装...

    简明Windows,lighttpd,fastcgi,php5 Web服务器配置

    在Windows上安装lighttpd,你需要下载适合的二进制版本,然后配置lighttpd.conf文件以指定服务器监听的端口、文档根目录和其他服务器设置。配置完成后,通过命令行启动lighttpd服务。 接着,FastCGI是一种让交互式...

    在安卓中创建 lighttpd+mysql+php的服务器-almp7.zip

    在安卓中创建 lighttpd+mysql+php的服务器_almp7.zip

    Openwrt里架设Lighttpd+PhP5+MYSQL环境标准教程.pdf

    "Openwrt里架设Lighttpd+PhP5+MYSQL环境标准教程" 本教程旨在指导读者在Openwrt系统中架设Lighttpd+PhP5+MYSQL环境,实现Web服务器搭建。以下是相关知识点的详细解释: 一、硬件准备 * 路由器:需要一台路由器,...

    phpStudy 最新 Apache+Nginx+LightTPD+PHP+MySQL+phpMyAdmin+Zend 稳定 强大

    该程序包集成最新的Apache+Nginx+LightTPD+PHP+MySQL+phpMyAdmin+Zend Optimizer+Zend Loader,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。该程序绿色小巧简易迷你仅有35M,有专门的控制面板。...

    lighttpd+php in android

    以下是对"lighttpd+php in android"这个主题的详细说明。 **Lighttpd** Lighttpd是一款开源、快速、低内存占用的HTTP服务器,特别适合资源有限的设备,如Android手机或平板电脑。它的设计目标是提供高效的服务,...

    ubuntu lighttpd+webpy (fastcgi)配置方法

    在本文中,我们将深入探讨如何在Ubuntu操作系统上配置Lighttpd服务器与Webpy框架的集成,利用FastCGI技术实现高效动态网页服务。首先,确保已经安装了必要的组件,包括Lighttpd服务器、Webpy框架以及FastCGI支持。 ...

    veket5.3 搭建web平台建站 lighttpd + php + mysql for veket 一键安装包

    Veket 官方论坛 lanwairen...同时会在使用工具生成两个菜单,一个查看 phpinfo, 一个查看 lighttpd状态, 网站根目录在/var/www/ 下,php.ini 在 /etc/目录下, lighttpd.conf 在 /etc/lighttpd/ 下,mysql 没有设置密码

    lighttpd fastcgi

    1.修改lighttpd.conf 修改为自己的工作目录 var.server_root = "/home/caoft/lighttpd/lighttpd_websocket_fastcgi/http_server" var.state_dir = "/home/caoft/lighttpd/lighttpd_websocket_fastcgi/http_server"...

    ubuntu lighttpd实现websocket

    如何在ubuntu上实现lighttpd 1、下载mongoose使用mongoose中的example中的websocket_chat,实现websocket 2、websocket_chat源码下载路径 官网:https://cesanta.com 论坛:...

    fcgi-2.4.1-SNAP-0910052249.tar.bz2

    我是用lighttpd+nginx+spawn-fcgi+fcgi-2.4.1搭建环境。使用C语言编写后台程序。goahead也可以用。apt install lighttpdapt install nginxapt install spawn-fcgitar -xjvf fcgi-2.4.1-SNAP-0910052249.tar.bz2cd ...

    Ruby on Rails安装包全集(Linux)

    这里的是FastCGI的源代码包,它允许Ruby on Rails应用通过FastCGI协议与Lighttpd交互。 5. **ruby-zlib-0.6.0.tar.gz**: Zlib是用于数据压缩的库,Ruby的内置标准库中包含了对Zlib的支持。此包可能用于Ruby与Gzip等...

    varnish+lighttpd配置

    3. **安全设置**:确保Varnish和Lighttpd的安全配置,避免被攻击。 4. **日志分析**:定期分析Varnish和Lighttpd的日志,找出性能瓶颈和优化点。 通过Varnish和Lighttpd的组合,你可以构建一个高效、灵活的Web...

    Linux系统平台上安装和配置Ruby on Rails

    现在,你的Rails应用已经可以在Linux上通过lighttpd+FCGI运行。不过,生产环境中通常会使用更强大的Web服务器如Nginx或Apache,并结合 Passenger 或 Puma 进行部署,以提供更高的性能和稳定性。记得根据实际需求调整...

Global site tag (gtag.js) - Google Analytics