我正在尝试用PHP运行AppleScript。以下是我的代码:
<?php
echo "Hello World!";
shell_exec('osascript -e \'tell app "Finder" to make new Finder window\'');
shell_exec('osascript -e \'display dialog "hello" \'');
shell_exec('osascript ~/openExcel.scpt');
echo "DONE";
?>
当我在终端中单独运行每个命令时,我可以得到预期的结果。但是,当我在服务器中将此.php文件作为网页打开时,我只能获得"Hello World!DONE"
。中间部分(3 exec
命令)根本没有输出结果。我不明白。
答案 0 :(得分:2)
据我所知,出于安全原因,您无法从网络服务器执行AppleScript。问题是AppleEvents只能由当前仅作为windowserver用户(控制台用户)或root用户登录的用户通过窗口服务器发送。默认情况下,apache将作为_www运行,因为它的shell和_www用户无法在命令行上运行osascript。
解决方法是以控制台用户或root用户身份运行shell命令。
答案 1 :(得分:1)
创建一个AppleScript应用程序并将其保存为应用程序扩展名,然后从PHP页面进行链接。我在localhost上的某些项目上使用了它,