如何在Nginx上使用FastCGI运行Perl脚本?

时间:2008-12-15 22:00:59

标签: perl cgi nginx fastcgi

所以我遵循本指南:http://technotes.1000lines.net/?p=23我正在完成这些步骤。我有一个使用Debian Etch的VPN(slicehost.com),用nginx为一个网站(静态到目前为止)提供服务。我使用wget下载FastCGI,我做了通常的make make install例程。

所以我想因为FastCGI无法正常运行CGI脚本,所以必须使用某种类型的perl包装器来解释perl。

现在我运行这个脚本

http://technotes.1000lines.net/fastcgi-wrapper.pl

我遇到了一个人在提交脚本的页面上遇到的完全相同的问题:

http://www.ruby-forum.com/topic/145858

(我不是一个红宝石人,那里没有任何红宝石)

我一直在

# bind/listen: No such file or directory

我不知道该怎么办。我很感激任何帮助,我可以提供任何人都需要的更多细节。

3 个答案:

答案 0 :(得分:12)

Web服务器需要一个Unix域套接字才能连接到FastCGI应用程序,但无法创建套接字。很可能您希望它所在的目录不存在(因为它们是在您执行bind时自动创建的。)

答案 1 :(得分:4)

莱昂是完全正确的。允许套接字监听有两个先决条件:

  1. 确保套接字目录存在。
  2. 这在fastcgi-wrapper.pl脚本中定义为/var/run/nginx/perl_cgi-dispatch.sock。因此,您需要确保/ var / run / nginx存在。
  3. 确保套接字目录由执行fastcgi-wrapper.pl的用户所有。

答案 2 :(得分:0)

我会尝试“淡化”fastcgi-wrapper.pl,因此它可以与spawn-fcgi一起使用。

我已经使用了其中两个套接字:

spawn-fcgi -C 3 -u www-data -s /var/run/php-fcgi.sock -P /var/run/php-fcgi.pid -- /usr/bin/php5-cgi
spawn-fcgi -F 3 -u www-data -s /var/run/lua-fcgi.sock -P /var/run/lua-fcgi.pid -- /usr/bin/wsapi.fcgi

在/ var / run里面我有:

-rw-r--r-- 1 root     root     14 2010-08-07 12:14 /var/run/lua-fcgi.pid
srwxr-xr-x 1 www-data www-data  0 2010-08-07 12:14 /var/run/lua-fcgi.sock=
-rw-r--r-- 1 root     root      4 2010-08-07 12:14 /var/run/php-fcgi.pid
srwxr-xr-x 1 www-data www-data  0 2010-08-07 12:14 /var/run/php-fcgi.sock=

我可以轻松启动和停止FastCGI包装器,我也想用Perl来做。

如果有人已经使用了spawn-fcgi的脚本,我很乐意使用它,或者至少看看它。

干杯, --polemon