安装fcig
此步骤是为了让spawn-fcgi
能够识别自定义的demo
-
下载fcgi:
wget ftp://ftp.ru.debian.org/gentoo-distfiles/distfiles/fcgi-2.4.1-SNAP-0910052249.tar.gz
-
解压安装包:
tar -xvf fcgi-2.4.1-SNAP-0910052249.tar.gz
-
修改文件
find . -name fcgio.h
vim ./include/fcgio.h
- 在头部添加代码:
#include <cstdio>
编译文件
在fcgi-2.4.1-SNAP-0910052249
目录下执行:./configure
然后顺序执行命令:make
、make install
自定义c文件
- 创建一个
.c
结尾的文件,代码如下
#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <fcgi_stdio.h>
int main() {
int count = 0;
while(FCGI_Accept() >= 0) {
printf("Content-type: text/html
"
"
"
""
"Hello Badou EveryBody!!!"
"Request number %d running on host %s "
"Process ID: %d
", ++count, getenv("SERVER_NAME"), getpid());
}
return 0;
}
-
编译c文件,命令:
g++ -g -o test test.c -lfcgi
,编译之后会产生同名的编译文件 -
运行编译文件
test
可能提示找不到lib库,修改ld.so.conf文件,然后执行命令ldconfig
命令- 修改文件:
vim /etc/ld.so.conf
include ld.so.conf.d/*.conf /usr/include/boost/ /usr/local/lib/
- 执行命令
ldconfig
- 修改文件:
-
运行编译后的文件,命令:
./test
打印结果Hello Badou EveryBody!!! Request number 1 running on host (null) Process ID: 36010
测试成功后,启动spawn cgi进行代理托管
- 运行命令:
/usr/local/src/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 8088 -f /test/thrift_test/cgi_demo/test
,之后会提示:spawn-fcgi: child spawned successfully: PID: 36213
,然后使用命令:netstat -antup | grep 8088
查看端口是否被监听