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即配置成功。


相关文章
|
Ubuntu Linux 编译器
openssl 的编译(linux、Ubuntu) 和 交叉编译(arm、Hi3531A)的问题分析、解决
openssl 的编译(linux、Ubuntu) 和 交叉编译(arm、Hi3531A)的问题分析、解决
3200 0
|
负载均衡 Ubuntu 应用服务中间件
|
存储 Java Apache
Maven - 统一构建规范:Maven 插件管理最佳实践
Maven - 统一构建规范:Maven 插件管理最佳实践
1610 0
|
Linux C++
Linux c/c++之进程的创建
这篇文章介绍了在Linux环境下使用C/C++创建进程的三种方式:system函数、fork函数以及exec族函数,并展示了它们的代码示例和运行结果。
546 0
Linux c/c++之进程的创建
|
缓存 前端开发 JavaScript
终极 Nginx 配置指南(全网最详细)
本文详细介绍了Nginx配置文件`nginx.conf`的基本结构及其优化方法。首先通过删除注释简化了原始配置,使其更易理解。接着,文章将`nginx.conf`分为全局块、events块和http块三部分进行详细解析,帮助读者更好地掌握其功能与配置。此外,还介绍了如何通过简单修改实现网站上线,并提供了Nginx的优化技巧,包括解决前端History模式下的404问题、配置反向代理、开启gzip压缩、设置维护页面、在同一IP上部署多个网站以及实现动静分离等。最后,附上了Nginx的基础命令,如安装、启动、重启和关闭等操作,方便读者实践应用。
6735 85
终极 Nginx 配置指南(全网最详细)
|
关系型数据库 MySQL 网络安全
有关使用Navicat 无法成功连接腾讯云服务器上Mysql的问题解决
这篇文章提供了解决Navicat无法连接腾讯云服务器上MySQL问题的步骤,包括调整防火墙设置、更新MySQL权限和检查远程连接配置。
有关使用Navicat 无法成功连接腾讯云服务器上Mysql的问题解决
|
存储 人工智能 固态存储
轻量级AI革命:无需GPU就能运算的DeepSeek-R1-1.5B模型及其低配部署指南
随着AI技术发展,大语言模型成为产业智能化的关键工具。DeepSeek系列模型以其创新架构和高效性能备受关注,其中R1-1.5B作为参数量最小的版本,适合资源受限场景。其部署仅需4核CPU、8GB RAM及15GB SSD,适用于移动对话、智能助手等任务。相比参数更大的R1-35B与R1-67B+,R1-1.5B成本低、效率高,支持数学计算、代码生成等多领域应用,是个人开发者和初创企业的理想选择。未来,DeepSeek有望推出更多小型化模型,拓展低资源设备的AI生态。
2996 8
|
缓存 Ubuntu Unix
Qt实用技巧:在CentOS上使用linuxdeployqt打包发布qt程序
本篇文章依然是继续发布主题,有centOS的qt项目需要发布,系统是CentOS8.2,同时也做了CentOS7.5的发布(CentOS7.5整体差上不差,就是需要先yum卸载自带的cmake,然后源码安装cmake3.4)
Qt实用技巧:在CentOS上使用linuxdeployqt打包发布qt程序
|
安全 前端开发 JavaScript
利用HTTP协议进行文件上传和下载的常见方法
【10月更文挑战第25天】可以利用HTTP协议方便地实现文件的上传和下载功能,满足不同应用场景下的需求。在实际应用中,还可以根据具体的业务需求和安全要求,对文件上传和下载的过程进行进一步的优化和安全处理。

热门文章

最新文章