php python nginx_nginx 开启fastcgi 可支持php、python、perl等多种语言

需要用到以下  perl 库:(以下版本可能过旧导致下载地址失效可直到上一级目录下载最新文件)

perl-FCGI

perl-Getopt

perl-IO

perl-Socket

安装 perl-FCGI 、perl-FCGI-ProcManager 和 perl-IO-ALL:

wget http://www.cpan.org/modules/by-module/FCGI/FCGI-0.67.tar.gz

tar -zxf FCGI-0.67.tar.gz

cd FCGI-0.67

perl Makefile.PL

make && make install

cd ..

wget http://search.cpan.org/CPAN/authors/id/G/GB/GBJK/FCGI-ProcManager-0.18.tar.gz

tar -zxf FCGI-ProcManager-0.18.tar.gz

cd FCGI-ProcManager-0.18

perl Makefile.PL

make && make install

cd ..

wget http://search.cpan.org/CPAN/authors/id/I/IN/INGY/IO-All-0.39.tar.gz

tar zxf IO-All-0.39.tar.gz

cd IO-All-0.39

perl Makefile.PL

make && make install

安装 nginx-fcgi 脚本:

mv nginx-fcgi.txt /usr/sbin/nginx-fcgi

chmod +x /usr/sbin/nginx-fcgi

如果不用 sudo 方式运行 nginx-fcgi,请注释掉 nginx-fcgi 脚本中的:

if ( $> == “0″ ) {

print “\n\tERROR\tRunning as a root!\n”;

print “\tSuggested not to do so !!!\n\n”;

exit 1;

}

启动 nginx-fcgi:

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

chown www:www /var/run/nginx-fcgi.sock

注意一定要为 socket 添加 nginx 帐户的权限,否则 cgi 会执行失败。

新建 nginx-fcgi 脚本指令配置,直接从 fastcgi_params 复制模板:

cp /usr/local/nginx/conf/fastcgi_params /usr/local/nginx/conf/nginx_fcgi_params

去除尾部的:

# PHP only, required if PHP was built with –enable-force-cgi-redirect

fastcgi_param  REDIRECT_STATUS    200;

新建示例 cgi 站点配置:

server {

listen       80;

server_name  test.local;

location ~ ^/cgi-bin/.*\.cgi$

{

fastcgi_index  index.cgi;

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

include        nginx_fcgi_params;

fastcgi_read_timeout    5m;

fastcgi_pass   unix:/var/run/nginx-fcgi.sock;

}

}

重启 nginx,并添加开机启动

编辑/etc/init.d/perl-fastcgi

#!/bin/sh

#add for chkconfig

#chkconfig: 2345 70 30

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

chown www:www /var/run/nginx-fcgi.sock

添加开机启动

1)

chmod +x /usr/sbin/nginx-fcgi

chmod 755 /etc/init.d/perl-fastcgi

chkconfig perl-fastcgi on

2)

编辑  /etc/rc.d/rc.local文件

添加

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

chown www:www /var/run/nginx-fcgi.sock

测试脚本(声明和代码之前至少有一空行隔开) :

python

#!/usr/bin/python2.5

# File:/usr/local/apache/cgi-bin/python.py

# -*- coding: utf-8 -*-

print "Content-type: text/html;charset=utf-8\n\n"

print 'Hello World!'

php:

#!/usr/local/php/bin/php -q

# File: File:/usr/local/apache/cgi-bin/i.php

phpinfo();

?>

perl:

#!/usr/bin/perl

print "Content-type: text/html\n\n";

print "Hello, world.";

SHELL:

#!/bin/bash

# File: /usr/local/apache/cgi-bin/bash.sh

echo -e "Content-type: text/html;charset=utf-8\n\n"

echo CGI/1.0 test script report:$(uuidgen)'
'

echo argc is $#. argv is "$*".'
'

echo SERVER_SOFTWARE = $SERVER_SOFTWARE '
'

echo SERVER_NAME = $SERVER_NAME '
'

echo GATEWAY_INTERFACE = $GATEWAY_INTERFACE '
'

echo SERVER_PROTOCOL = $SERVER_PROTOCOL '
'

echo SERVER_PORT = $SERVER_PORT '
'

echo REQUEST_METHOD = $REQUEST_METHOD '
'

echo HTTP_ACCEPT = "$HTTP_ACCEPT" '
'

echo PATH_INFO = "$PATH_INFO" '
'

echo PATH_TRANSLATED = "$PATH_TRANSLATED" '
'

echo SCRIPT_NAME = "$SCRIPT_NAME" '
'

echo QUERY_STRING = "$QUERY_STRING" '
'

echo REMOTE_HOST = $REMOTE_HOST '
'

echo REMOTE_ADDR = $REMOTE_ADDR '
'

echo REMOTE_USER = $REMOTE_USER '
'

echo AUTH_TYPE = $AUTH_TYPE '
'

echo CONTENT_TYPE = $CONTENT_TYPE '
'

echo CONTENT_LENGTH = $CONTENT_LENGTH

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值