Php Exec функция не работает, как ожидалось - PullRequest
2 голосов
/ 09 марта 2011

Я использую функцию exec в скрипте php, если я запускаю скрипт в командной строке, такой как «php xx.php», функция exec будет выполнена, но если я получу доступ к странице php из браузера,функция exec не будет запущена.Кто-нибудь знает, как решить проблему?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 09 марта 2011

Сценарий пытается создать / редактировать / удалить файлы?Попробуйте сделать файлы и директорию с содержимым доступными для записи веб-сервером.Если вы пытаетесь добавить файл, перейдите в папку, в которую вы его добавляете, и выполните следующее: chmod go+w ..Если вы пытаетесь удалить / редактировать файл, попробуйте следующее: chmod go+w myfile.txt.

При запуске сценария из командной строки он запускается как вошедший в систему пользователь, тогда как при запуске его через браузерзапускается как пользователь веб-сервера (обычно это пользователь с именем www.) Этот пользователь обычно не имеет права записи доступа к файлам и каталогам, которые обслуживаются.

3 голосов
/ 09 марта 2011

Вы можете использовать " 2> & 1 " как успешное выполнение команды, которую вы пытаетесь выполнить с помощью exec ().

например: - exec (php xx.php 2> & 1 ", $ output);

Затем вы можете отследить проблему путем вывода на печать.

2 голосов
/ 09 марта 2011

Проверьте вывод phpinfo(), чтобы увидеть, включен ли безопасный режим. Также проверьте, включены ли suhosin или mod_security. Все это может ограничить вашу способность использовать exec() ...

0 голосов
/ 05 июля 2013

если вы используете MAMP (для WAMP и LAMP я думаю, что это должно быть похоже), попробуйте открыть файл MAMP / Library / bin / envvar и четыре строки if и else, которые должны выглядеть так:1001 *

#if test "x$DYLD_LIBRARY_PATH" != "x" ; then
#  DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
#else
#  DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib"

Это работает для меня!Удачи!

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