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。
我在 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。