在lighttpd上开发fastcgi程序需要安装两个库
一、安装开发库
1) fcgi
http://fastcgi.com/dist/fcgi-2.4.0.tar.gz
fcgi用于处理fastCGI请求
2) rudeCGI
http://rudeserver.com/cgiparser/download/rudecgi-5.0.0.tar.bz2
rudeCGI用于解析http request参数的KVP对
例如:一个WMS的GetCapabilities请求(http://www.opengeospatial.org/standards/wms)
http://10.0.0.136:2087/world/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
http request参数为:SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
通过rudeCGI可以这样方位KVP对
rude::CGI cgi;
cgi["SERVICE"];
cgi["VERSION"];
cgi["REQUEST"];
值分别是:
WMS
1.3.0
GetCapabilities
并且rudecgi可以从接受从stdin传输的字符串,从而可以在命令行下调试fastcgi程序
rudecgi-5.0.0.tar.bz2源码本身有点问题,需要做一点修改。
修改AbstractImplementation.cpp文件的instance()函数为
AbstractImplementation* AbstractImplementation::instance()
{
if(!s_instance)
{
finished=false;
s_instance = new Implementation();
}
return s_instance;
}
1、安装fcgi
#tar zxvf fcgi-2.4.0.tar.gz
#cd fcgi-2.4.0
#./configure
#make
#make install
2、安装rudecgi-5.0.0.tar.bz2
修该rudecgi的源码后,安装rudecgi
#tar jxvf rudecgi-5.0.0.tar.bz2
#./configure
#make
#make install
二、编写fastcgi程序
安装完rudecgi和fcgi以后就可以用C/C++写fastcgi程序了,下面是个fastcgi的小程序
#vi fcgitest.cpp
#include <rude/cgi.h>
#include <fcgi_stdio.h>
#include <fcgi_config.h>
#include "stdlib.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
int count = 0;
while(FCGI_Accept_t() >= 0)
{
rude::CGI cgi();
//输出http头
//mime type是text/plain类型
//http head和body之间要有一个空行,所以输出两个\r\n
printf("ContentType: text/plain \r\n" "\r\n");
//输入计数器
printf("count:%d ", count++);
printf("<br>");
//输出http requst的kvp的值
printf("Service:%s", cgi["SERVICE"]);
printf("<br>");
printf("Version:%s", cgi["VERSION"]);
printf("<br>");
printf("Request:%s", cgi["REQUEST"]);
printf("<br>");
//http response结束
printf("\n\n");
cgi.finish();
}
return 0;
}
编译fcgitest.cpp
#g++ -o fcgitest.cgi fcgitest.cpp -lfcgi++ -lrudecgi
生成fcgitest.cgi程序
在命令行下就可以运行fcgitest.cgi程序
#./fcgitest.cgi
就可以运行
三、将fcgitest.cgi程序配置到lighttpd中
在lighttpd中配置fastcgi需要打开fastcgi的mod
打开lighttpd的配置文件lighttpd.conf
去掉server.modules下面的"mod_fastcgi"模块的注释符“#”。
在lighttpd.conf中找到
#fastcgi.server = (
一行,我这里是在225行,这里就是lighttpd配置fastcgi的部分。默认有一个php的配置。
现在就把刚才写的fcgitest.cgi程序配置到lighttpd中去。
配置文件如下:
"/fastcgi" =>
( "localhost" =>
(
#unix socket的路径
"socket" => "/tmp/fcgitest-fcgi.socket",
"check-local" => "disable",
#fastcgi应用程序的路径
"bin-path" => "/opt/fcgitest/fcgitest.fcgi",
"idle-timeout" => 10,
#当访问量增大的时候lighttpd启动的最小和最大进程数的设置
#这里设置最少启动一个进程,最多启动10个进程
"min-procs" => 1,
"max-procs" => 10
)
)
配置完以后的fastcgi.server节点为:
#fastcgi.server= (
# ".php" =>
# ( "localhost" =>
# (
# "socket" => "/var/run/lighttpd/php-fastcgi.socket",
# "bin-path" => "/usr/local/bin/php-cgi"
# )
# )
# ,
"/fastcgi" =>
( "localhost" =>
(
"socket" => "/tmp/fcgitest-fcgi.socket",
"check-local" => "disable",
"bin-path" => "/opt/fcgitest/fcgitest.fcgi",
"idle-timeout" => 10,
"min-procs" => 1,
"max-procs" => 10
)
)
)
配置完以后重新启动lighttpd
#/etc/init.d/lighttpd restart
然后就可以在浏览器里面访问fcgitest服务了
URL:
http://10.0.0.136:2087/fcgitest?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
分享到:
相关推荐
通过上述步骤,您可以在 Ubuntu 15.04 或 CentOS 7 上成功安装并配置 Lighttpd Web 服务器。Lighttpd 提供了一种轻量级、高效的解决方案,特别适用于对性能有较高要求的应用场景。无论是简单的静态网站还是复杂的...
本文将详细介绍如何在CentOS 5.5版本上安装并配置Lighttpd,以及如何为它添加PHP支持。 首先,确保你的系统是最新的。在终端中输入以下命令来更新你的CentOS系统: ```bash sudo yum update ``` 接下来,安装...
在CentOS或Fedora上,可以使用`sudo yum install lighttpd`。确保安装过程中选择安装CGI相关的模块。 4. **配置lighttpd** 安装完成后,需要编辑lighttpd的配置文件,通常位于`/etc/lighttpd/lighttpd.conf`。找到...
配置lighttpd以处理Rails应用,编辑`/etc/lighttpd/lighttpd.conf`,添加FastCGI配置。完成配置后重启lighttpd服务: ```bash sudo service lighttpd restart ``` 现在,你的Rails应用已经可以在Linux上通过...
2. 安装配置MYSQL服务器 MySQL是广泛使用的开源关系型数据库管理系统。安装MySQL并进行基本配置: 2.1 开始安装MySQL 使用包管理器安装MySQL Server: ``` sudo apt-get install mysql-server ``` 或 ``` sudo yum ...
7. 配置lighttpd的站点:创建lighttpd的配置文件,指定PHP处理器为`fastcgi.server`,并设置正确的文档根目录。 8. 启动服务:启动lighttpd和MySQL服务,然后通过浏览器访问你的Web应用以测试环境是否正常工作。 请...
在本文中,我们将详细介绍如何在CentOS 6.7系统中配置LNMP环境,即Linux下的Nginx、MySQL和PHP集成环境。首先,我们需要了解LNMP架构的重要性,它是一种高效且流行的网站服务器架构,适合处理高并发访问,并且资源...
赋予了它许多特性,使其在各种操作系统上都能运行,支持HTTP 1.1协议,拥有易于管理的基于文件的配置方式,以及对CGI、虚拟主机、HTTP认证、Perl脚本、代理服务器、SSL加密、SSI(服务器端包含命令)、FastCGI和Java...
5. **配置Web服务器**:接下来,你需要配置你的Web服务器(如Nginx或lighttpd)来与spawn-fcgi管理的FastCGI进程通信。对于Nginx,你将在server块中添加如下配置: ``` location ~ \.php$ { fastcgi_pass ...
在双机热备配置中,PHP代码运行在web服务器上,如lighttpd或Nginx,通过FastCGI接口与MySQL数据库交互。 MySQL数据库的双主从复制是实现数据安全的关键。在上述配置中,MySQL配置了主从同步,即两个节点都可以作为...