首页 > CentOS > 让nginx支持cgi
2014
12-12

让nginx支持cgi

应该是算总结测试吧.

下面开始正文

因为本文是在nginx支持cgi 所以 这个server一定要有nginx环境

具体搭建方式 请去 http://www.sa-log.com/195.html 参考nginx部分

本文只着重讲 “让nginx支持cgi”

市面上 常见的支持cgi的方式有3种.

一种是使用一个 fastcgi.pl 的脚本来解释 cgi文件

一种是nginx自带的perl扩展模块

还有一种,是通过编译来生成二进制文件

网上非常多的文档,写的都是靠.pl的方式来处理cgi.这种方式效率很低

高版本的 nginx 本身也支持perl了. 但是不够稳定

推荐编译版本的,编译版本的效率较高,本文写的.也是编译版本的.

着重说一下,编译版本的 fastcgi 官方下载地址经常会出现无法编译. 经过验证, 有很大一部分都是代码本身存在bug

如果说 这个版本编译不过去. 建议换个版本来编译,可能一下就过去了.我使用的是 1.0.3 毫无问题.

编译fcgiwrap前,请先编译安装 高版本的 autoconf automake libtool

fcgiwrap 会要求高版本的 autoconf automake libtool

安装方式:

http://www.sa-log.com/220.html
准备工作做好了,下面开始正文:
请去 : https://github.com/gnosek/fcgiwrap 下载 fcgiwrap

tar zxf fcgiwrap-1.0.3.tar.gz
cd fcgiwrap-1.0.3
autoreconf -i
./configure
make
make install

安装完毕.开始运行该软件

默认安装路径 /usr/local/sbin

之后三个选项

# fcgiwrap -h  
Usage: fcgiwrap [OPTION]    
Invokes CGI scripts as FCGI.

fcgiwrap version 1.0.1

Options are:  
 -c <number>           Number of processes to prefork    
 -s <socket_url>       Socket to bind to (say -s help for help)    
 -h                    Show this help message and exit
# TCP 启动方式    
# /usr/local/bin/fcgiwrap -s tcp:127.0.0.1:8999    
# 参数 n 为进程数量    
# /usr/local/bin/fcgiwrap -c 8 -s tcp:127.0.0.1:8999    
# SOCK启动方式    
# /usr/local/bin/fcgiwrap -s unix:/tmp/perl-fpm.sock    
# chmod +x /tmp/perl-fpm.sock    
# sock 关闭方式    
# killall fcgiwrap    
# rm -f /tmp/perl-fpm.sock

# 编辑nginx 配置文件
# 在server里加入如下 该站点即可支持pl perl cgi 三个后缀

location ~ .*\.(pl|perl|cgi)$ {  
fastcgi_pass unix:/tmp/perl-fpm.sock;    
#fastcgi_pass 127.0.0.1:8999;    
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;    
include fastcgi_params;    
}

# 测试的 hello world 文件

vi 1.pl

#!/usr/bin/perl  
print "Content-type: text/html\n\n";    
print "Hello, world.";

# 一定要记得给执行权限

chmod +x 1.pl
http://你的ip/1.pl

尝试访问吧

最后编辑:
作者:王, 帅
这个作者貌似有点懒,什么都没有留下。

留下一个回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据