NGINX не выполняются perl сценарии? - PullRequest
1 голос
/ 01 февраля 2020

Я запускаю 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;
    }

Есть идеи, что я делаю неправильно? Спасибо !!!

1 Ответ

1 голос
/ 01 февраля 2020

Вы пытаетесь выполнить Perl сценарии с PHP, используя тот же самый бэкэнд FastCGI, который вы используете для PHP. Так не пойдет. Бэкэнд FastCGI для PHP будет искать только код PHP, и поскольку в сценариях Perl его нет, он просто доставит содержимое так же, как и для файлов HTML.

Вместо этого вам нужно иметь другой бэкэнд FastCGI специально для Perl. См. здесь для примера того, как это сделать, или один из многих других сайтов, посвященных этой теме c.

...