Запуск shell_exec () в Symfony - PullRequest
1 голос
/ 28 июня 2010

У меня есть программа, которая возвращает разделенную запятыми строку чисел после некоторой фоновой обработки. Я собирался запустить это в Symfony, используя shell_exec; Тем не менее, все, что я получаю, это NULL (раскрывается через var_dump(). Я попробовал следующие шаги отладки.

Я запустил файл (это класс PHP) через модульный тест командной строки извести в Symfony - он работает и дает правильный результат там.

Просто чтобы проверить, я попробовал простую команду ls -l в том же месте, чтобы посмотреть, получу ли я что-нибудь. Опять же, у меня была та же проблема - var_dump в браузере показывал NULL, но он работал через командную строку.

В чем может быть проблема? Существуют ли ограничения для запуска shell_exec() в браузере?

РЕДАКТИРОВАТЬ: просто чтобы уточнить, команды shell_exec () работают, когда я запускаю их как автономные сценарии php на веб-сервере (например, помещая их в корень моего документа. Похоже, они не работают в рамках symfony по какой-то причине.

Ответы [ 3 ]

3 голосов
/ 28 июня 2010

Я наконец решил это, и оказалось, что это что-то довольно простое и совершенно не связанное.

Команда оболочки, которую я запускал, была в следующем формате: face_query -D args. Я не осознавал, что Apache будет выполнять PHP как пользователь www-data, и поэтому программа face_query не будет находиться в PATH (каталог на самом деле ~/bin). Изменение имени программы на полный путь к программе решило ее.

Я также понял из этого, что можно запускать только те команды, которые www-data имеют разрешение на выполнение. В этом случае www-data находится в той же группе, что и мой пользователь, но в противном случае это может быть проблемой.

0 голосов
/ 28 июня 2010

Ваш веб-сервер работает в безопасном режиме php?

Примечание: эта функция отключена, когда PHP работает в безопасном режиме. От: http://php.net/manual/en/function.shell-exec.php

0 голосов
/ 28 июня 2010

Вы пробовали использовать exec?Или один из других вариантов.Я никогда не уверен, какой из них использовать, и всегда смешиваюсь с exec.

http://uk.php.net/manual/en/function.exec.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...