我让 NGINX 与 PHP FPM 顺利协作。
我正在尝试添加一些 Perl 页面。我的默认站点配置中有这些内容;
location ~ \.pl$ {
gzip off;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.pl;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/www/$fastcgi_script_name;
}
在我的浏览器中浏览 perl 页面(下面的示例)只会显示源代码。就好像代码没有传递给 FPM,或者没有执行代码而只是将其传回。
我不知道该怎么办;我不确定如何解决此问题。NGINX error.log 或 php5-fpm.log 中没有任何内容。
测试.pl;
#!/usr/bin/perl
print "Content-type:text/html\n\n";
print <<EndOfHTML;
<html><head><title>Perl Environment Variables</title></head>
<body>
<h1>Perl Environment Variables</h1>
EndOfHTML
foreach $key (sort(keys %ENV)) {
print "$key = $ENV{$key}<br>\n";
}
print "</body></html>";
答案1
这为什么可行?PHP-FPM 只能处理 PHP,呵呵!
但是我希望将 Perl 脚本传递给 FPM,然后 FPM 会将它们传递给 perl。我发现这个页面(下面的链接)回答了我的问题并很好地澄清了问题。
为什么要将 Perl 脚本传递给 FPM,然后再传递给 Perl,而您可以使用包装器直接将其传递给 Perl!:D