由于家里断网了,只有在办公室把这篇文章搞一搞,这篇文章只是自己的一个随笔总结,robbin对lighttpd和fcgi的环境搭建阐述的已经非常详细,建议大家去熟读下,他对lighttpd + fcgi进行了高度的评价,并且从javaeye的事实运营过程当中我们也看到了确实这2个服务器的搭配显得非常的默契,是现今ROR最好的,性能最高的服务器搭配组合。另外一种组合则是nginx + mongrel,同样是ROR服务器优选方案之一,nginx是俄国人搞出的一个轻量级,在处理静态页面时候速度高于apche几十倍的web服务器,同lighttpd + fcgi相比,用robbin的话来说就是nginx不是为mongrel量身定做的,而lighttpd则相反,它和fcgi算是天生一对。对这两种性能都非常好的搭配方式,可以参读robbin的文章,在这里我只是简单的介绍一下这个环境搭建过程。
我选用的是linux是redhat5,ruby、rubygems、rails的版本分别是1.8.7、1.3.7和2.2.2,数据库用的是mysql,也需要安装数据库适配器ruby-mysql.相关的安装过程参考我的另外一篇《linux下mongrel + nginx的ROR集群环境搭建》。
使用fcgi必须要安装ruby-fcgi支持库,而fcgi支持库必须要依赖于fcgi的独立库,所就先安装fcgi的独立库
下载fcgi-2.4.0.tar.gz
mkdir fcgi
tar xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure -prefix=/data/fcgi
make
make install
随后安装ruby-fcgi支持库
下载fruby-fcgi-0.8.7.tar.gz
tar xzvf ruby-fcgi-0.8.7.tar.gz
cd ruby-fcgi-0.8.7
ruby install.rb config -- --with-fcgi-include=/data/fcgi/include --with-fcgi-lib=/data/fcgi/lib
ruby install.rb setup
ruby install.rb install
到这里,ruby-fcgi的支持库已经搞定。
2、安装lighttpd
先前我已经说过nginx依赖pcre库,同样的lighttpd也依赖,按照之前我所讲述的安装过程安装pcre,之后一定要设置pcre的环境变量,不然lighttpd的安装不会成功
下载lighttpd-1.4.26.tar.gz
mkdir lighttpd
tar xzvf lighttpd-1.4.26.tar.gz
cd lighttpd-1.4.26
./configure -prefix=/data/lighttpd
make
make install
这里出列出一些需要用到的module,看到mod_rewrite则基本没有什么问题了,如果没有看到,请回过头去看看你的pcre是否有正确安装,必须正确安装pcre和设置了pcre环境变量之后才能使得lighttpd安装成功.
我在这里下载的是lighhttpd-1.4.26,当前时间最新的版本是1.4.28,我之前下载的是1.4.28进行安装,后来发现里面的配置文件内容和他的一些目录结构跟之前的版本不太一样,网上也没有太多这方面的信息,配置了几个小时后没有办法和fcgi进行通讯,并且出现了错误,所以就改用了1.4.26,这个版本的目录结构跟robbin介绍的是一样的,我基本也是按照robbin给出的步骤来进行,最终顺畅的开启了服务器。
3、配置lighttpd
进入解压后的lighttpd文件夹(不是lighttpd安装目录)
cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
mkdir /etc/lighttpd
cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
我用的是redhat,接下来的步骤为:
cp doc/rc.lighttpd.redhat /etc/init.d/lighttpd
如果你用的是其他linux发行版,参照robbin的文章进行配置
把/etc/init.d/lighttpd文件中的
lighttpd=/usr/sbin/lighttpd 改成:
lighttpd=/data/lighttpd/sbin/lighttpd
修改/etc/lighttpd/lighttpd.conf
取消用到的模块注释:
mod_rewrite,mod_access,mod_fastcgi,mod_simple_vhost,mod_cgi,mod_compress,mod_accesslog
指定server.document-root, server.error-log,accesslog.filename的目录,我指定server.document-root的目录是/srv/www/htdocs/
server.error-log的目录是/data/lighttpd/logs/error.log
accesslog.filename的目录是/data/lighttpd/logs/access.log
记住一定要事先创建好相应的文件夹和文件,不然启动lighttpd会报错
指定用户:
server.username = "nobody"
server.groupname = "nobody"
我这里为了方便用的是root,真实环境当中最好是指定单独的用户权限
静态文件的压缩处理:
compress.cache-dir = "/tmp/lighttpd/cache/compress"
compress.filetype = ("text/plain", "text/html","text/javascript","text/css")
先去掉文件的注释然后再修改成如上
最后配置连接你的rails工程
在文件中的某一处单独的地方加入:
$HTTP["host"] == "192.168.1.100" {
server.document-root = "/data/myProject"
server.error-handler-404 = "/dispatch.fcgi"
fastcgi.server = (".fcgi" =>
("localhost" =>
("min-procs" => 1,
"max-procs" => 1,
"socket" => "/data/myProject/tmp/lighttpd/socket/rails.socket",
"bin-path" => "/data/myProject/public/dispatch.fcgi",
"bin-environment" => ("RAILS_ENV" => "production")
)
)
)
}
server.document-root指定你的rails工程目录
server.error-handler-404指定的是如果lighttpd找不到相应的静态页面处理URL则交给rails的dispatch.fcgi处理
min-procs为启动fcgi的最小数目,max-procs为最大数目,我这里启动了一个fcgi进程
socket指定产生的socket文件(lighttpd和fcgi通过unix/socket进行通讯),需要指定目录,目录中需要我们自己手动创建文件夹,文件可以不用创建
bin-path指向rails工程的public/dispatch.fcgi
bin-environment指定是生产环境,也可以是development
至此lighttpd的配置已经完成
启动lighttpd会同时启动rails工程:
/etc/init.b/lighttpd start 启动
/etc/init.b/lighttpd stop 停止
/etc/init.b/lighttpd restart 重启
启动lighttpd之后,访问本机80端口,如果出现404错误,则把/etc/lighttpd/lighttpd.conf下的:
dir-listing.activate = "enable" 的注释解开
如果在某些情况下,关闭lighttpd的时候没有关闭掉fcgi,不用慌张,杀掉即可:
killall -9 fcgi
做好之后就能够正确访问了,其间一定要注意自己rails工程的public/dispatch.fcgi必须要有执行权限,并且如果你是在windows下创建的工程,部署到linux上的时候要改掉dispatch.fcgi里面的ruby解析器路径:
第一行:#!/data/ruby/bin ----linux下 #!E:\ruby\bin ---windows下
注意要修改这个地方,然后用./dispatch.fcgi来运行一下,如果能运行,则说明此处没有问题
如果需要查看lighttpd + fcgi集群的相关信息可以参照robbin的问题解答,关于linux下lighttpd和fcgi的ROR环境搭建就是这样。
分享到:
相关推荐
【搭建lighttpd+cgi的代码包】 在Web服务器领域,lighttpd是一个轻量级且高效的HTTP服务器,因其低内存占用和高速度而受到欢迎。CGI(Common Gateway Interface)则是一种标准,允许Web服务器执行外部程序并返回...
这里我们关注的是"lighttpd+mysql+php"的集成安装,特别适用于轻量级服务器需求,例如开发或测试环境。这个压缩包文件集合包含了在CentOS7系统上成功安装和测试的所有组件,包括lighttpd(一个轻量级HTTP服务器)、...
phpLight 2014 是网上首套LightTPD+PHP集成包,集成最新Lighttpd+PHP+MySQL+SQL-Front+Zend Guard Loader+XCache。纯绿色,安装后无需再配置。支持系统服务和非服务两种启动方式,自由切换。一次性安装无需再安装,...
标题中的"套件php"指的是一个综合性的PHP开发和调试工具包,它包含了多项关键的服务器软件和技术,便于用户快速搭建和管理PHP运行环境。这个工具包特别适合PHP初学者,因为它提供了一键式安装和配置功能,简化了通常...
我是用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 ...
本教程旨在指导读者在Openwrt系统中架设Lighttpd+PhP5+MYSQL环境,实现Web服务器搭建。以下是相关知识点的详细解释: 一、硬件准备 * 路由器:需要一台路由器,内存至少64M,推荐128M以上。 * 优盘:需要一个优盘...
在安卓中创建 lighttpd+mysql+php的服务器_almp7.zip
phpLight 2013 是网上首套LightTPD+PHP集成包, 集成最新Lighttpd+PHP+MySQL+SQL-Front+Zend Guard Loader+XCache。 纯绿色,安装后无需再配置。支持系统服务和非服务两种启动方式,自由切换。 一次性安装无需再安装...
以下是对"lighttpd+php in android"这个主题的详细说明。 **Lighttpd** Lighttpd是一款开源、快速、低内存占用的HTTP服务器,特别适合资源有限的设备,如Android手机或平板电脑。它的设计目标是提供高效的服务,...
该程序包集成最新的Apache+Nginx+LightTPD+PHP+MySQL+phpMyAdmin+Zend Optimizer+Zend Loader,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。该程序绿色小巧简易迷你仅有35M,有专门的控制面板。...
Apache HTTP服务器是世界上最流行的Web服务器软件,根据描述,大约有一半以上的全球WWW服务器都使用Apache。... 在安装Apache时,首先要考虑系统的...通过深入理解Apache的特性和配置,可以构建出高效、安全的Web环境。
Veket 官方论坛 lanwairen...同时会在使用工具生成两个菜单,一个查看 phpinfo, 一个查看 lighttpd状态, 网站根目录在/var/www/ 下,php.ini 在 /etc/目录下, lighttpd.conf 在 /etc/lighttpd/ 下,mysql 没有设置密码
现在,你的Rails应用已经可以在Linux上通过lighttpd+FCGI运行。不过,生产环境中通常会使用更强大的Web服务器如Nginx或Apache,并结合 Passenger 或 Puma 进行部署,以提供更高的性能和稳定性。记得根据实际需求调整...
在Linux上安装Lighttpd,里面有遇到的一些问题的解决方法,整个安装流程,还有参考网站
"用于ROR应用的lighttpd配置模板"提供了一个预设的配置,帮助开发者快速配置lighttpd以支持Rails环境。 Lighttpd以其低内存占用和高并发能力而受到欢迎,它支持FastCGI,这是与Rails应用进行通信的常见接口。...
Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是...
在 Linux 下,可以使用 `systemctl start/stop/restart nginx` 控制服务。 2.5 Nginx 配置文件说明 Nginx 的主配置文件通常是 `nginx.conf`,包含多个 server 块,每个 server 块定义了一个监听的端口和相应的处理...
在`/etc/lighttpd/conf-available`目录下创建一个名为`10-fastcgi.conf`的文件,并添加以下内容: ```conf server.modules += ( "mod_fastcgi" ) fastcgi.server = ("/hello" => ( ( "bin-path" => "/var/...
该程序包集成最新的Apache+Nginx+LightTPD+PHP+MySQL+phpMyAdmin+Zend Optimizer+Zend Loader,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。该程序绿色小巧简易迷你仅有35M,有专门的控制面板。...