использование shell_exec для вызова perl-скрипта из php

#php

#php

Вопрос:

У меня возникла проблема с выполнением perl-скрипта из php с использованием функции shell_exec().

Это то, что я пробовал (и это работало раньше).

 $perl = shell_exec("/usr/bin/perl cbh_script_clean.pl");
echo ($perl);
  

Это не сработает, поскольку $ perl ничего не содержит после выполнения this.

Мысли?

Любая помощь приветствуется!

Спасибо.

Комментарии:

1. Что происходит, когда вы запускаете /usr/bin/perl cbh_script_clean.pl прямо из командной строки?

2. Но что происходит? Что вы видите на экране после выполнения команды?

3. Попробуйте добавить 2>amp;1 после команды. Скорее всего, путь к perl-скрипту просто неверен. Также загляните в error.log, который в противном случае содержит соответствующее сообщение.

4. @webbie: скрипт запущен полностью. он успешно запускает скрипт

5. @mario: что именно это делает?

Ответ №1:

Тогда я сделаю это ответом.

Часто можно добавить, 2>amp;1 чтобы перенаправить вывод stderr в обычный поток stdout. Таким образом, вы получаете любые сообщения об ошибках в переменной PHP. (В противном случае они будут потеряны с помощью system / exec / shell_exec , вот почему люди иногда используют proc_open вместо этого явные каналы).

 $perl = shell_exec("/usr/bin/perl cbh_script_clean.pl 2>amp;1");
echo ($perl);
  

Ответ №2:

Попробуйте это:

$perl = shell_exec(«/usr/bin/perl cbh_script_clean.pl 2>/dev/null >/dev/null amp;»); echo ($ perl);