Не могу запустить скрипт оболочки из php web скрипта - PullRequest
2 голосов
/ 09 июля 2011

Я пытаюсь запустить скрипт оболочки из php-скрипта.

У меня полный контроль над средой (unix на mac), у меня должны быть все права доступа и т. Д. Установлены правильно.

Веб-скрипт находится в /htdocs/

Сценарий оболочки может быть выполнен из любого места, поэтому, когда я захожу в / htdocs / в оболочке, я могу легко запустить его так: $ my_shellscript

.. но когда мой php-скрипт (который находится в htdocs) пытается вызвать его:

shell_exec('my_shellscript');

Я ничего не получаю.

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

Если вам известен какой-либо другой способ запуска сценария оболочки через Интернет, это было бы хорошо.

Заранее спасибо.

Ответы [ 4 ]

1 голос
/ 09 июля 2011

ну у меня несколько недель та же проблема, решение - проверить, есть ли у apace разрешение на выполнение вашего скрипта.Вы также можете попробовать запустить скрипт в php cli.

0 голосов
/ 09 июля 2011

Попробуйте сделать

echo shell_exec('my_shellscript 2>&1');

, который перехватит вывод скрипта stderr и распечатает его. Если что-то внутри скрипта дает сбой, этот вывод в противном случае будет потерян, если не будет запущен в интерактивном режиме.

0 голосов
/ 09 июля 2011

Первое: убедитесь, что php не работает в Безопасный режим

Следующее: попробуйте запустить его с функцией exec () и использовать полнуюпуть (например, / var / www / htdocs / my_shellscript)

0 голосов
/ 09 июля 2011

Поскольку это шеллскрипт, его необходимо вызывать с префиксом пути. Я думаю, вам нужно сделать это:

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