2012-05-17 4 views
2

Я полный PHP (LAMP/WAMP/MAMP) noob, и я сталкиваюсь с тем, что, как представляется, является распространенной проблемой среди noob, пытающихся запустить команды оболочки с веб-сервера. У меня есть настройки MAMP на Mac Mini, и я хочу, чтобы собрать вывод из команды Android,PHP shell_exec работает только для определенных команд

adb devices 

так что я могу отобразить список устройств, подключенных к моему Mac Mini. всякий раз, когда я передаю команду shell_exec в моем PHP-скрипте, я получаю пустую строку. Я не могу понять, как решить проблему после нескольких поисков в Интернете. Я пробовал работать

shell_exec("who am i") 

, который возвращает «Клифтон», имя учетной записи пользователя, которая запустила MAMP. Я подтвердил, что эта же учетная запись пользователя может выполнять команду «adb devices». Инструменты Android устанавливаются в домашней папке этой учетной записи. Я также пробовал передать абсолютный путь к команде. На этом этапе я уверен, что это проблема конфигурации, но я не знаю, что настроить или где.

ответ

6

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

shell_exec("adb devices 2>&1") 

Источник: http://www.php.net/manual/en/function.shell-exec.php#106250

+0

Это полностью открывает жалюзи! Теперь я получаю: dyld: Символ не найден: __cg_jpeg_resync_to_restart Реферанс из: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib Ожидается в:/Applications/MAMP/Library/lib/libJPEG.dylib в /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib, что предполагает, что либо мой PATH, либо DYLIB_PATH (что бы это ни называлось) неправильно. – Cliff

+0

Извините, я понятия не имею, как это исправить ... – Jeroen

+0

Не стоит беспокоиться, я, вероятно, могу это понять. Это в основном проблема DY_LIBRARY_PATH, в которой процесс должен запускаться правильно. Исполняемый файл dab динамически загружает библиотеки, которые текущий процесс не может найти. Как только я выясню, как правильно запустить MAMP с надлежащими env vars, я буду настроен. – Cliff

1

Вы должны попытаться открыть файл/Applications/MAMP/Library/bin/envvars, а затем комментарий четыре строки, если и еще. Это выглядит так:

#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" 

Это прекрасно работает для меня! Надеюсь, вы сможете наслаждаться этим. Удачи!