Linux +apache+fastcgi运行c/c++

在Linux上搭建apache+fastcgi环境,说多了都是泪啊. 花费我几天时间,开源软件虽说好用,但是版本众多,文档缺乏,什么都只能自己摸索. 终于成功运行起来,特此记录.

一. apache 安装

此处下载 apache-2.2.27 版本,常规的 configure make 命令,安装非常方便

wget http://mirrors.cnnic.cn/apache//httpd/httpd-2.2.27.tar.bz2tar -xjzf httpd-2.2.27.tar.bz2cd httpd-2.2.27./configure --prefix=/usr/local/apache2make && make install

二. apache 配置

<Directory "/usr/local/apache2/cgi-bin">AllowOverride NoneOptions Indexes ExecCGI # 执行CGIOrder allow,denyAllow from all</Directory>#添加文件映射AddHandler cgi-script .cgi .py

运行服务: ./apachectl start

打开 http://localhost, 成功会显示 It works!

三. 编译安装 fastcgi模块

fastcgi有多个分支版本, mod_fastcgi 官方地址: http://www.fastcgi.com/,这个是官方提供的扩展模块,已经很久没维护了; 而且下载链接已失效了

mod_fcgid 是apache官方维护的版本,与mod_fastcgi二进制兼容,原来的fastcgi程序不用重新编译就能工作. 其在mod_fastcgi基础上做了大量的代化

这里选择mod_fastcgi测试,生产环境不建议使用:

wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gztar -xzvf mod_fastcgi-2.4.6.tar.gzcd mod_fastcgi-2.4.6cp Makefile.AP2 Makefilemake top_dir=/usr/local/apache2make top_dir=/usr/local/apache install

编译完成后编辑httpd.conf, 加入fastcgi模块

LoadModule fastcgi_module modules/mod_fastcgi.so

四. 测试运行

下载安装 jnopy , fastcgi的python模块

cd jonpy-2.2.27

python setup.py install

#!/usr/bin/pythonimport jon.cgi as cgiimport jon.fcgi as fcgiclass Handler(cgi.Handler):def process(self, req):req.set_header("Content-Type", "text/plain")req.write("Hello, world!\n")fcgi.Server({fcgi.FCGI_RESPONDER: Handler}).run()

运行再一次出现500错误,查看日志:  [error]  No such file or directory exec of ‘/usr/local/apach2/cg-bin/hello_fcgi.py‘ failed

这就奇怪了,明明在/cgi-bin目录,打印的路径也是正常,怎么可能找不到呢? 难道是这脚本有猫腻,手动运行看看,报错:  ./hello_fcgi.py: /usr/bin/python^M: bad interpreter: 没有那个文件或目录

原来这个文件有特殊字符,从windows下拷贝过来的文件很容易出现这个问题, vi 打开文件,直接 :set ff=unix 保存退出即可

五. 安装fastcgi开发库

如果顺序进行上面几步,表明环境都已经搭建好,下面部署c++程序

5.1 安装fastcgi开发库

wget http://www.fastcgi.com/dist/fcgi.tar.gzcd fcgi-2.4.1./configuremakemake install

make时出错, error: ‘EOF‘ was not declared in this scope ,这EOF不是stdio.h中的吗, libfcgi/fcgio.cpp 中添加代码 #include <stdio.h> ,再次make,一切正常

5.2 编码测试

#include "fcgi_stdio.h"#include <stdlib.h>void main(void){int count = 0;while(FCGI_Accept() >= 0)printf("Content-type: text/html\r\n""\r\n""<title>FastCGI Hello!</title>""<h1>FastCGI Hello!</h1>""Request number %d running on host <i>%s</i>\n",++count, getenv("SERVER_NAME"));}

编译: gcc -o fcgi_test.fcgi cgi_test.c -I/usr/local/include -L/usr/local/lib -lfcgi

大小: 13.6 KB大小: 15.8

时间: 2024-10-27 01:53:10

Linux +apache+fastcgi运行c/c++的相关文章

配置apache以fastcgi运行php

配置apache以fastcgi运行php 文章目录 [隐藏] 安装apache 安装fastcgi 安装php5.2 配置apache支持php apache默认是用自带的mod_php模块运行php,现在我们介绍使用fastcgi来执行php脚本.先说下fastcgi的优点:Fastcgi的优点: 从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分 配新的进程来运行逻辑. · 从安全性上看,Fastcgi支持分布式运算. fastc

WEB平台架构之:LAMP(Linux+Apache+MySQL+PHP)

WEB平台架构之:LAMP(Linux+Apache+MySQL+PHP)  从业界来看,最主流的web平台架构就当属LAMP了.LAMP架构可以说是一切web平台的基础架构,所有一切的所谓大型架构无非就是通过一些负载均衡技术,集群技术,缓存技术等结合LAMP平台组合而成以便来满足现实生产环境中的需求.因此很有必要聊一聊LAMP平台架构的搭建.本文会对LAMP平台相对性的聊一聊其搭建过程,根据个人的知识知无不说,更多的技术将会陆续整理成博客文章.我的要求没那么多,笨蛋的技术,只求看文章的人,都能

linux——lamp简介,架构搭建,Linux+Apache+Mysql/MariaDB+Php

1.lamp简介 1.所谓lamp,其实就是由Linux+Apache+Mysql/MariaDB+Php/Python的一组动态网站或服务器的开源软件,除Linux外其他各部件本身都是各自独立的程序,但是因为经常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.LAMP指的是Linux(操作系统).Apache(HTTP服务器).MySQL(也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立web应用平台.2.w

Ubuntu下(Linux+Apache+MYSQL+PHP, LAMP)环境搭建

最近开始玩PHP,于是试着搭建一下开发环境并做个记录,以备日后再使用起来方便可查. 第一步 确保软件包是最新的 <span style="font-size: 18px;">sudo apt-get update</span> 第二步 安装Apache2 <span style="font-size: 18px;">sudo apt-get install apache2</span> 安装之后测试:在浏览器中打开 h

Linux Apache error 日志 提示[warn] child process 7751 still did not exit, sending a SIGTERM

Apache吃空内存,频繁宕机 在部署一套内网测试环境时,频繁宕机,开机后不断的吃内存,重启apache之后内存占用会不停的上涨,直到swap用完,直到死机,由于是内网环境,服务器并发和压力都很小. 查看apache错误日志,报大量类似错误: [Tue Feb 14 14:49:28 2012] [warn] child process 7751 still did not exit, sending a SIGTERM [Tue Feb 14 14:49:30 2012] [error] ch

CentOS 6.5下源码安装LAMP(Linux+Apache+Mysql+Php)环境

CentOS 6.5下源码安装LAMP(Linux+Apache+Mysql+Php)环境一. 系统环境:Linux系统版本: CentOS release 6.5Apache版本: httpd-2.2.24PHP 版本: php-5.6.11 二.安装前准备: 1.查看是否安装GCC ,GCC-C++编译器,如果没有则进行安装: 查看是否安装的命令: #gcc –v 若未安装在服务器联网情况下可以使用下列命令安装: #yum install gcc #yum install gcc-c++2.

LAMP环境(linux+apache+mysql+php)配置

1.理论部分 LAMP 是Linux Apache MySQL PHP的简写,其实就是把Apache, MySQL以及PHP安装在Linux系统上,组成一个环境来运行php的脚本语言. 本文是测试Apache与PHP结合和创,搭建方法采用非常标准手法(开启SELinux),初学者可以直接使用. 2.实验部分 2.1.实验环境 lampSer: hostname=lamp ipaddress=10.168.0.170 client: hostnmae=client ipaddress=10.168

CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境

一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代表的方面功能非常强大的组件.    LAMP这个词的由来最早始于德国杂志“c't Magazine”,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字.这些组件并不是开始就设计为一起使用的,但是,这些软件都是开源的,可以很方便的随时获得并免费使用,这就导致了这些组

php在apache中运行模式

php在apache中运行模式 (2011-12-18 02:38:27) 标签: 杂谈 分类: 服务器及软件 一.php在php在三种工作方式:Apache 模块DLL) 以下分别比较: 1. php在CGI模式.PHP 在 中的 # 对 PHP 4 用这行 Action application/x-httpd-php "/php/php.exe" # 对 PHP 5 用这行 Action application/x-httpd-php "/php/php-Apache 2