温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - NGINX not executing perl scripts?
centos nginx perl fastcgi centos8

其他 - NGINX不执行perl脚本吗?

发布于 2020-04-10 11:34:02

我跑NGINXCentos 8,我不能让它执行一个perl脚本,它只是不断下载脚本。

我在这台服务器上有几个域,它运行php脚本,效果很好。

我已经安装perl在服务器上,

"This is perl 5, version 26, subversion 3 (v5.26.3) built for x86_64-linux-thread-multi"

我尝试将此服务器块添加到conf.d文件中:

location ~ \.pl|cgi$ {
        try_files $uri =404;
        fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.cgi;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

没有将此位添加到服务器块中,它仅下载文件;将此位添加到服务器块后,我得到一个502 bad gateway因此,我确定其中有些错误。

我几乎完全是从PHP版本中获得的,它看起来像这样:

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

有什么想法我做错了吗?谢谢!!!

查看更多

提问者
Joshua Alayon
被浏览
120
Steffen Ullrich 2020-02-01 23:59

您正在尝试通过使用与PHP完全相同的FastCGI后端来使用PHP执行Perl脚本。这是行不通的。用于PHP的FastCGI后端将仅查找PHP代码,并且由于Perl脚本中没有任何内容,因此它将仅提供与处理HTML文件相同的内容。

相反,您需要具有另一个专门用于Perl的FastCGI后端。有关如何执行此操作的示例,请参见此处,或者是涵盖此主题的众多其他网站之一