2015-05-31 2 views
1

Я пытаюсь запустить исполняемый файл myapp, сделанный с помощью единства, используя следующий код в php, но я получаю ошибки.php exec не работает на mamp

<?php 
echo "yo"; 
echo exec('whoami',$output,$retval); 
echo $retval; 
echo exec('myapp.app',$output,$retval); 
echo $retval; 
echo exec('/Applications/MAMP/htdocs/myapp.app/',$output,$retval); 
echo $retval; 
?> 

В результате получается yodan127127. 127 Я искал код ошибки, потому что процедура не найдена.

Я также прокомментировал некоторые строки в приложениях/Mamp/Library/bin/envvars_ , которые были рекомендованы в других сообщениях.

Я разместил myapp.app в нескольких каталогах htdocs, bin, cgi-bin, но дает ту же ошибку.

#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" 
#fi 
#export DYLD_LIBRARY_PATH 
# 
+0

Путь к вашему двоичному файлу должен быть '/ Applications/MAMP/htdocs/myapp.app/Contents/MacOS/myapp'. '/ Applications/MAMP/htdocs/myapp.app /' - это просто каталог. – VolenD

+1

Прохладный. Я бы никогда не подумал об этом. Спасибо. – techdog

ответ

-1

Excel Commend используются в PHP, так это требуется установка на сервер, оценивает как магики изображения и т.д., то вы используете функцию EXEC().

+0

Дамп от эха четко указывает, что у него есть функция 'exec' (и что его имя пользователя равно dan). Кроме того, в [php manual for exec] (http://php.net/manual/en/exec.installation.php) говорится: «Для использования этих функций не требуется установка, они являются частью ядра PHP». –

0

Вы должны указать exec на двоичный код, а не на контейнер.

.app - это только контейнерный каталог, который имеет внутреннюю структуру, двоичный код находится где-то в пути, который должен выглядеть как /Applications/MAMP/htdocs/myapp.app/Contents/MacOS/myapp. Точное расположение двоичного файла находится в файле /Applications/MAMP/htdocs/myapp.app/info.plist. Вы можете щелкнуть правой кнопкой мыши по приложению и выбрать отображение содержимого пакета для просмотра структуры.

Но самый простой способ, чтобы запустить приложение, чтобы открыть его с помощью команды open:

open '/Applications/MAMP/htdocs/myapp.app/' 

Он должен быть работоспособным с PHP в качестве аргумента exec.

Смежные вопросы