Исправлен путь, используемый shebang #!/usr/bin/perl и #!/usr/local/cpanel/3rdparty/bin/perl

Вы можете использовать следующую команду для поиска файлов по их абсолютным путям. Например. Я пытаюсь найти файлы.sh с помощью cmd следующим образом:

find. -type f -iname "*.sh"
0
01.05.2020, 16:56
2 ответа

Исправление найдено:

в SSH как корень:

cd /usr/bin

rm -f perl

ln -s /usr/local/cpanel/3rdparty/bin/perl.

Это устанавливает шебанг для обоих

#!/usr/bin/perl

и

#!/usr/local/cpanel/3rdparty/bin/perl

для использования обновленного Perl cpanel, найденного в:

/usr/local/cpanel/3rdparty/bin/perl
-2
28.04.2021, 23:16

Если вы обнаружите, что строка#!-в Perl-скрипте не действует (, как это имеет место здесь ), то, вероятно, скрипты вызываются с явный интерпретатор, как в

perl somescript.pl

В этом случае строка#!-будет полностью проигнорирована, а фактический двоичный файлperlбудет первым найденным в $PATH.

Если вы можете изменить способ вызова сценариев, то в идеале вы должны изменить это, чтобы удалить явную команду perl. Это заставит строки#!-в скриптах действовать (при условии, что скрипты исполняемые ).

В качестве альтернативы вы можете организовать переменную $PATHтаким образом, чтобы первый найденный двоичный файл perlбыл тем, который, как вы знаете, вы хотите использовать. Например, вы можете установить

PATH=/usr/local/cpanel/3rdparty/bin:$PATH

для среды, в которой выполняется сценарий CGI. Это решило бы проблему , если только вызов явно не связан с usr/bin/perl.Поскольку в вопросе не указано, какое программное обеспечение или инфраструктура веб-сервера используется или как они настроены для запуска сценариев Perl, это все, что я могу сказать.

0
28.04.2021, 23:16

Теги

Похожие вопросы