FastCGI与spawn-fcgi安装与配置

简介: FastCGI与spawn-fcgi安装与配置

编译安装spawn-fcgi


spawn-fcgi源码包下载地址:http://redmine.lighttpd.net/projects/spawn-fcgi/wiki


编译和安装spawn-fcgi相关命令:


tar -zxvf spawn-fcgi-1.6.4.tar.gz
cd spawn-fcgi-1.6.4/
./configure
make
sudo make install


如果遇到以下错误:


./autogen.sh: x: autoreconf: not found
• 1


因为没有安装automake工具,ubuntu用下面的命令安装即可:


sudo apt-get install autoconf automake libtool


spawn-fcgi的帮助信息可以通过man spawn-fcgi或spawn-fcgi -h获得,下面是部分常用


spawn-fcgi参数信息:



编译安装fcgi


软件开发套件:fcgi


使用C/C++编写FastCGI应用程序,可以使用FastCGI软件开发套件或者其它开发框架,如fcgi。


fcgi源码包下载地址:http://www.filewatcher.com/d/Gentoo/distfiles/Other/fcgi-2.4.1-SNAP - 0910052249.tar.gz.614929.html


编译和安装fcgi相关命令:


tar -zxvf fcgi-2.4.1-SNAP-0910052249.tar.gz
cd fcgi-2.4.1-SNAP-0910052249/
./configure
make
sudo make install


测试检查是否成功


测试程序源代码


#include <stdio.h>
#include <stdlib.h> 
#include <string.h>
#include <unistd.h>
#include "fcgi_stdio.h"
int main(int argc, char *argv[])
{
  int count = 0;
  //阻塞等待并监听某个端口,等待Nginx将数据发过来
  while (FCGI_Accept() >= 0)
  {
    //如果想得到数据,需要从stdin去读,实际上从Nginx上去读
    //如果想上传数据,需要往stdout写,实际上是给Nginx写数据
    printf("Content-type: text/html\r\n");
    printf("\r\n");
    printf("<title>Fast CGI Hello!</title>");
    printf("<h1>Fast CGI Hello!</h1>");
    //SERVER_NAME:得到server的host名称
    printf("Request number %d running on host <i>%s</i>\n", ++count, getenv("SERVER_NAME"));
  }
  return 0;
}


需进行的有关Nginx的fcgi的配置


目录在sudo vi /usr/local/nginx/conf/nginx.conf


#监听用户的test请求,通过fastcgi_pass交给本地8001端口处理
#此时spwan-cgi已经将8001端口交给之前我们写好的test进程处理
location /test {
  fastcgi_pass 127.0.0.1:8001;
  fastcgi_index test;
  include fastcgi.conf;
}


修改配置之后记得重新启动Nginx服务


sudo nginx -s reload
• 1


编译运行代码:


编译:gcc fcgi_test.c -lfcgi -o test
运行:spawn-fcgi -a 127.0.0.1 -p 8001 -f ./test


报错处理:spawn-fcgi:child exited with: 127


请看下文解决方案:


https://blog.csdn.net/weixin_45525272/article/details/107822305


解决错误之后再编译运行,出现子进程的PID即配置成功。


相关文章
|
小程序 安全 API
支付宝消息订阅
订阅界面是根据当前小程序在商家平台配置的消息模板 id 来展示对应消息的订阅选项(参考接入流程第 4 步)。一次性:使用一次性消息模板订阅,每次向用户发送消息都需要用户在订阅界面点击同意后才可以发送。长期性:使用长期性消息模板订阅,用户同意订阅后,可以多次向订阅用户发送消息。
1708 0
 支付宝消息订阅
|
测试技术
CRC-16 MODBUS原理,附实测可用源码
之前做串口解析,CRC校验一直用和校验,就是吧各个位加在一起,新来一个串口协议,是CRC-16 MODBUS的形式校验,不会呀,从网上找了找资源,没有找到源码,都要下载,分享出来。
CRC-16 MODBUS原理,附实测可用源码
|
3月前
|
人工智能 安全 API
最新版阿里云百炼 Coding Plan 功能介绍
在AI开发飞速普及的2026年,开发者日常编码、项目调试、智能体开发、自动化脚本搭建,高度依赖各类大模型编程能力。传统按量计费模式存在账单不可控、多模型切换繁琐、接口配置复杂、高频调用成本高昂等痛点,频繁切换不同平台模型需要反复更换API地址、密钥、适配参数,极大降低开发效率。
758 0
|
6月前
|
人工智能 IDE 开发工具
Visual Studio 2026 v18.5 发布 - 适用于 Windows 上 .NET 和 C++ 开发人员的最全面 IDE
Visual Studio 2026 Enterprise 18.5 - 适用于 Windows 上 .NET 和 C++ 开发人员的最全面 IDE
332 2
Visual Studio 2026 v18.5 发布 - 适用于 Windows 上 .NET 和 C++ 开发人员的最全面 IDE
|
Linux C++
Linux c/c++之进程的创建
这篇文章介绍了在Linux环境下使用C/C++创建进程的三种方式:system函数、fork函数以及exec族函数,并展示了它们的代码示例和运行结果。
686 0
Linux c/c++之进程的创建
|
JavaScript API
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
847 1
|
存储 Linux 编译器
Linux 交叉编译第三方库需要设置的环境变量
Linux 交叉编译第三方库需要设置的环境变量
1256 0
|
安全 数据管理 Shell
Linux命令su详解
`su`命令在Linux中用于切换用户身份,常用于权限管理。它允许用户无须注销当前会话就切换到另一个用户,尤其是root。`su`有多种选项,如`-`或`--login`加载目标用户环境,`-c`执行指定命令后返回。使用时需注意权限安全,建议用`sudo`以减少风险。通过限制`/etc/pam.d/su`可加强访问控制。`su`在系统维护和数据管理中扮演角色,但不直接处理数据。
|
算法 程序员 数据处理
SSE - 多媒体编程中的利器 - SSE指令集简介和C代码示例
本文介绍了SSE(Stream SIMD Extensions)指令集在多媒体处理中的应用,它能提升浮点运算性能,尤其适合处理大量数据。SSE允许一次处理4个32位浮点数,提高效率。文中通过示例展示了如何在C++中集成SSE,比如使用`__m128`数据类型和`_mm_set_ps1()`等函数优化浮点数放大算法。测试结果显示,使用SSE优化后的算法比未优化版本快约3倍,强调了SSE在高效处理多媒体数据中的价值。
|
JSON JavaScript 前端开发
Node.js GET、POST 请求是怎样的?
Node.js GET、POST 请求是怎样的?
461 1

热门文章

最新文章