0

I am trying to get a PHP script to execute an Applescript which opens an application.*

PHP is running under the _www user. And while it can execute Applescripts with the osascript command, it can't run my Applescript program, because _www has no desktop environment.

So I thought: I'll just use sudo to run the AppleScript under my user. I used visudo to add an entry for _www which would allow it run my script without a password (sudo -u myUser ...). This worked great! sudo switched the user to me and ran most commands without a hitch. Except I still didn't have a desktop environment! I could run shell-only commands; whoami returned my username, not _www. But AppleScript failed to work. I had switched the user, but had not switched into a desktop environment.

So, my question: is there a way that PHP can execute programs in another user's desktop environment? I suspect not...


As an alternative, I thought I might establish a local-socket link between my PHP program (running as _www) and another program running under my user. The latter program will listen on the socket until PHP sends a message. Perhaps I'll do this if the above doesn't work.


*In the interest of full transparency, what I'm actually trying to do: I want to send an iMessage to myself. Apple being Apple, the only way of programmatically send iMessages is through AppleScript-ing the Messages app. Messy, but it works.

If there is no way to do either of the above, I'll just use SMS and forget iMessage.

3
  • Similar question: stackoverflow.com/questions/11236431/…
    – baum
    Dec 31, 2014 at 22:39
  • I'm not an apple person (but I am a Linux person). I'm pretty sure the issue you are having relates to the application not knowing how to connect to the X Window (ie the screen driver). (See stackoverflow.com/questions/20607777/…) "DISPLAY=:0 ; sudo -u myUser ..."
    – davidgo
    Dec 31, 2014 at 23:51
  • huh, I've done that a million times on linux but never thought to do it on OSX (because it doesn't quite use X in the same way). I'll take a look.
    – baum
    Jan 1, 2015 at 0:00

0

You must log in to answer this question.

Browse other questions tagged .