我跑NGINX
的Centos 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;
}
有什么想法我做错了吗?谢谢!!!
您正在尝试通过使用与PHP完全相同的FastCGI后端来使用PHP执行Perl脚本。这是行不通的。用于PHP的FastCGI后端将仅查找PHP代码,并且由于Perl脚本中没有任何内容,因此它将仅提供与处理HTML文件相同的内容。
相反,您需要具有另一个专门用于Perl的FastCGI后端。有关如何执行此操作的示例,请参见此处,或者是涵盖此主题的众多其他网站之一。
我确实看到了第一个链接,但是说明是针对Debian的,我无法整理列出的软件包的RHEL / Centos版本。我要查找信息的问题基本上是我在网上找到的所有教程都针对Ubuntu / Debian
我确实找到了这个,因为它使用了yum,因此看起来像是在使用RHEL / Centos,并完成了这封信的教程设置,但仍然收到502错误的网关。链接
@JoshuaAlayon:对不起,但是无法根据您的信息说出您的实际所作所为(以及您做错了什么)。请检查您的Nginx的error.log,以了解可能失败的原因。
得到它了!!!是SELINUX阻止了它。需要注意的是,这里的说明起作用了,毕竟,我必须将chown nginx:nginx设置到测试文件和文件夹:server-world.info/en/note?os=CentOS_8& p=nginx& f=6 我希望这会有所帮助任何遇到此问题的人!