Я не знаю, в чем здесь дело ...
Итак, я хочу запустить яблочный скрипт: sudo osascript myscript.scpt
Это прекрасно работает в терминале, но не тогда, когда я запускаю его через PHP exec()
; Ничего не произошло. Консоль говорит
no tty present and no askpass program specified ; TTY=unknown ; …
Я провел исследование и, похоже, мне не хватает пароля для команды sudo
. Я попробовал несколько разных способов обойти это, в том числе:
- написание
%admin ALL=(ALL) ALL
в /etc/sudoers
- и
proc_open()
вместо exec()
ни один из которых, кажется, не работает, следовательно, сводит меня с ума!
Так в принципе, есть ли четкий способ заставить PHP выполнить простую терминальную команду?
РЕДАКТИРОВАТЬ: для уточнения, myscript.scpt
- это простой appleScript, который изменяет экранный интерфейс (для более крупного проекта). Теоретически достаточно просто osascript myscript.scpt
, однако по какой-то причине sudo
необходимо для вызова некоторого ответа системы. Если бы sudo
можно было как-то устранить, я не думаю, что у меня возникнет эта проблема с разрешениями.