我有一个小苹果脚本如下:PHP exec和OSASCRIPT?
beep
delay 2
tell application "Finder" to activate
它只是发出声音,等待2秒钟,然后把“查找”窗口前台。
当我从命令行运行它时,它工作正常。
然后,我希望PHP使用exec()php函数调用该脚本。
<?
$cmd = "/usr/bin/osascript \"myscript.scpt\"";
exec($cmd);
?>
它仍然正常工作。
但是当我从浏览器调用相同的PHP脚本时,它不起作用! PHP启动后,Apple脚本也启动了,因为我可以听到哔声,但它的最后一行不会被执行。
我认为这将是一个环境变量的事情,所以我确信他们都以同样的方式在终端:
$cmd = "HOME='/Users/mikael' && … && /usr/bin/osascript \"myscript.scpt\"";
的变量设置正确(如支票与ENV |排序),但仍没有运气,在浏览器中显示的php脚本中运行我的苹果脚本,并使用标准的MacOS apache的东西。
有什么想法?
谢谢,甚至不知道在macOS中有什么叫做Login contexts会检查出来。您如何看待我在下面提到的解决方法? – MikaelW
这不是一个非常好的解决方法。这基本上取决于MAMP启动程序与登录上下文一起运行的事实;因此,在生产中难以可靠地工作。 – duskwuff