NGINX 不执行 perl 脚本?

NGINX not executing perl scripts?

我在 Centos 8 上 运行 NGINX,但我无法让它执行 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;
    }

知道我做错了什么吗?谢谢!!!

您正在尝试使用与 PHP 完全相同的 FastCGI 后端来执行带有 PHP 的 Perl 脚本。这是行不通的。 PHP 的 FastCGI 后端将仅查找 PHP 代码,并且由于 Perl 脚本中有 none,它将简单地传递与 HTML 文件相同的内容.

相反,您需要有另一个专门用于 Perl 的 FastCGI 后端。参见 here for an example on how to do this or one of the many other sites which cover this topic