I. 编写一个网页(在命令行运行)
1.下载安装fastcgi库
brew install fcgi
2. 写一个动态网页
1 | // 假设代码放到/projects/cgi目录 |
编译源代码:
gcc /projects/cgi/boot.c -o /projects/cgi/boot.cgi -lfcgi
注:gcc参数-L、-i未指定,表明brew安装fcgi时已经加入到搜索目录/usr/local/lib 和 /user/local/include目录
命令行运行:
/projects/cgi/boot.cgi
屏幕输出:
1 | Content-type: text/html |
II. 从浏览器访问boot.cgi
1. 安装Nginx、spawn-fcgi
brew install nginx
brew install spawn-fcgi
2. 启动spawn
spawn-fcgi -a 127.0.0.1 -p 9001 -F 1 -f /projects/cgi/boot.cgi
启动9001端口提供CGI服务。
3. 配置nginx连接spawn-fcgi,重新启动
在server节点(比如localhost)增加一个路径匹配:
1 | location ~ ^.*\.cgi$ { |
注:经测试发现,配置中fastcgi_index、fastcgi_param、root都是不必要的; 关键就在fastcgi_pass配置。但是网上看别人资料从未有提起。
4. 访问该网页
浏览器输入:http://localhost/boot.cgi 返回页面显示:
1 | Hello Boot! |
反复访问这个URL,Request number的值会加1,大家可以自己思考下这是为什么。