У меня есть команда exec () в моем коде, которая запускает яблочный скрипт с рабочего стола
$cmd = "osascript /Users/***/Desktop/script.app";
exec($cmd, $output);
print_r($output);
На одном компьютере он работает без ошибок, на втором — пустой массив. Они находятся точно в одном каталоге, кроме имени пользователя, которое я изменил на правильное. Я также проверил права доступа к файлам.
Я был бы признателен, если бы кто-то мог пролить свет на этот.
PATH
то, что исполняемые скрипты могут отличаться на двух машинах.
Исполняемый файл osascript
живет по адресу:
/usr/bin/osascript
Я думаю, что машина, которая работает, включает в себя /usr/bin
в PATH
и тот, который не работает, не включает его.
TL; DR
Дайте полный путь:
$cmd = "/usr/bin/osascript /Users/***/Desktop/script.app";
exec($cmd, $output);
Других решений пока нет …