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


相关文章
|
应用服务中间件 PHP nginx
php-fpm开启报错-ERROR: An another FPM instance seems to already listen on /tmp/php-cgi.sock
php-fpm开启报错-ERROR: An another FPM instance seems to already listen on /tmp/php-cgi.sock
398 0
|
Shell PHP Windows
php的SAPI,CLI SAPI,CGI SAPI
php的SAPI,CLI SAPI,CGI SAPI
|
Unix 应用服务中间件 Apache
FastCGI与spawn-fcg简介
FastCGI与spawn-fcg简介
254 0
FastCGI与spawn-fcg简介
|
应用服务中间件 PHP Apache
nginx、fastcgi、php-fpm
什么是fastcgi? fastCGI是由CGI(common gateway interface,通用网关接口)发展而来,是http服务器(nginx、apache)和动态脚本语言(php)之间的通信接口。记住,fastCGI只是一个接口。
|
缓存 应用服务中间件 PHP
nginx的fastcgi模块配置与php-fpm配置记录
nginx的fastcgi模块配置与php-fpm配置记录
3561 0
uiz
|
应用服务中间件 PHP nginx
PHP知识笔记:CGI, FastCGI, PHP-CGI, PHP-FPM, Spawn-FCGI区别
PHP知识笔记:CGI, FastCGI, PHP-CGI, PHP-FPM, Spawn-FCGI区别
uiz
2864 0
|
应用服务中间件 PHP nginx
|
应用服务中间件 PHP nginx