Nginx配置CGI

By | 2013年5月4日

配置NGINX的CGI功能,需要使用到nginx-fcgi插件,可以在这里下载nginx-fcgi,使用perl语言写的一个脚本文件。

还需要安装下面几个perl模块,可以使用yum安装:

perl-FCGI

perl-FCGI-ProcManager

perl-CGI

perl-IO-ALL

配置nginx-fcgi

将下载的nginx-fcgi文件放在某个目录下,然后运行下面命令:

#确保文件由执行权限
chmod +x /usr/sbin/nginx-fcgi

#运行
nginx-fcgi -l /var/log/nginx/nginx-fcgi.log -pid /var/run/nginx-fcgi.pid -S /var/run/nginx-fcgi.sock

#修改sock文件的用户为nginx所用的用户和用户组,保证nginx在运行时可以修改sock文件
chown www:www /var/run/nginx-fcgi.sock

配置nginx

#复制一份fastcgi_params
cp   /opt/program/nginx/etc/fastcgi_params   /opt/program/nginx/etc/nginx_fcgi_params

#将nginx_fcgi_params文件末尾这行删除:
fastcgi_param  REDIRECT_STATUS    200;

#在虚拟主机配置文件中加入下面这段:
location ~ ^/cgi-bin/.*\.cgi$ {
    		gzip off;
    		fastcgi_pass  unix:/var/run/nginx-fcgi.sock;         
              fastcgi_index  index.cgi;
		fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
		include        nginx_fcgi_params;
		fastcgi_read_timeout    5m;
 }

创建测试文件

在cgi-bin目录下,新建一个text.cgi文件,内容为:

#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "Hello, world.";

 

重启nginx后,访问该文件:http://xxx/cgi-bin/text.cgi,如果能看到Hello World,说明配置成功。

参考:http://hily.me/blog/2010/01/nginx-fcgi-install/