`
marsprj
  • 浏览: 65420 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CentOS上配置lighttpd/fastcgi环境(2)

    博客分类:
  • GIS
阅读更多
在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 服务器的方法

    通过上述步骤,您可以在 Ubuntu 15.04 或 CentOS 7 上成功安装并配置 Lighttpd Web 服务器。Lighttpd 提供了一种轻量级、高效的解决方案,特别适用于对性能有较高要求的应用场景。无论是简单的静态网站还是复杂的...

    CentOS下Lighttpd Web服务器安装与配置方法

    本文将详细介绍如何在CentOS 5.5版本上安装并配置Lighttpd,以及如何为它添加PHP支持。 首先,确保你的系统是最新的。在终端中输入以下命令来更新你的CentOS系统: ```bash sudo yum update ``` 接下来,安装...

    搭建lighttpd+cgi的代码包

    在CentOS或Fedora上,可以使用`sudo yum install lighttpd`。确保安装过程中选择安装CGI相关的模块。 4. **配置lighttpd** 安装完成后,需要编辑lighttpd的配置文件,通常位于`/etc/lighttpd/lighttpd.conf`。找到...

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

    配置lighttpd以处理Rails应用,编辑`/etc/lighttpd/lighttpd.conf`,添加FastCGI配置。完成配置后重启lighttpd服务: ```bash sudo service lighttpd restart ``` 现在,你的Rails应用已经可以在Linux上通过...

    Linuxlighttpd+php+mysql+Discuz论坛.pdf

    2. 安装配置MYSQL服务器 MySQL是广泛使用的开源关系型数据库管理系统。安装MySQL并进行基本配置: 2.1 开始安装MySQL 使用包管理器安装MySQL Server: ``` sudo apt-get install mysql-server ``` 或 ``` sudo yum ...

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

    7. 配置lighttpd的站点:创建lighttpd的配置文件,指定PHP处理器为`fastcgi.server`,并设置正确的文档根目录。 8. 启动服务:启动lighttpd和MySQL服务,然后通过浏览器访问你的Web应用以测试环境是否正常工作。 请...

    CentOS6.7系统中配置LNMP环境

    在本文中,我们将详细介绍如何在CentOS 6.7系统中配置LNMP环境,即Linux下的Nginx、MySQL和PHP集成环境。首先,我们需要了解LNMP架构的重要性,它是一种高效且流行的网站服务器架构,适合处理高并发访问,并且资源...

    linux下apache+web服务器搭建教程知识.pdf

    赋予了它许多特性,使其在各种操作系统上都能运行,支持HTTP 1.1协议,拥有易于管理的基于文件的配置方式,以及对CGI、虚拟主机、HTTP认证、Perl脚本、代理服务器、SSL加密、SSI(服务器端包含命令)、FastCGI和Java...

    spawn搭建轻量化web服务器

    5. **配置Web服务器**:接下来,你需要配置你的Web服务器(如Nginx或lighttpd)来与spawn-fcgi管理的FastCGI进程通信。对于Nginx,你将在server块中添加如下配置: ``` location ~ \.php$ { fastcgi_pass ...

    HeartBeat+PHP+MySQL双机热备自动切换配置

    在双机热备配置中,PHP代码运行在web服务器上,如lighttpd或Nginx,通过FastCGI接口与MySQL数据库交互。 MySQL数据库的双主从复制是实现数据安全的关键。在上述配置中,MySQL配置了主从同步,即两个节点都可以作为...

Global site tag (gtag.js) - Google Analytics