Возможный дубликат:
Вызов Perl-скрипта из PHP и передача в переменных, а также использование имени переменной perl-скрипта
Я хочу выполнить скрипт perl через PHP. Я использую exec()
для выполнения скрипта perl. Он работает на моей машине, но не работает на сервере. Сервер основан на CentOS Linux.
Я дал полное разрешение (777) как для PHP, так и для файла сценария perl. Когда я пытаюсь выполнить, я получаю следующую ошибку в error_log
sh: /perl: No such file or directory
Я попытался выполнить следующие действия
exec("perl -w Script.pl $username $password",$output); exec("/usr/bin/perl -w Script.pl $username $password",$output); exec("/usr/bin/perl Script.pl $username $password",$output);
Я также попытался использовать system
функцию
$output = system("perl Script.pl $username $password");
Ничего не происходит, когда я пытаюсь это сделать.
Я также попытался выполнить perl, используя функцию passthru()
passthru("/usr/bin/perl -w Script.pl $username $password",$output);
Когда я выполняю эту строку, $output
выводит 127 и ничего не происходит в скрипте.
Я проверил, является ли файл исполняемым или нет с is_executable()
. Он показывает, что файл не является исполняемым.
Код ниже
$file = 'Script.pl'; if (is_executable($file)) { echo $file.' is executable'; } else { echo $file.' is not executable'; }
Если я выполняю perl через терминал, он работает нормально, но когда я пытаюсь выполнить через PHP, он не работает.
Используйте полный путь для выполнения скрипта.
exec("/usr/bin/perl /full/path/to/Script.pl $username $password",$output);
С Уважением,