如何在PHP中运行Shell Script / AppleScript?

时间:2014-05-06 04:03:44

标签: php applescript

我正在尝试用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命令)根本没有输出结果。我不明白。

2 个答案:

答案 0 :(得分:2)

据我所知,出于安全原因,您无法从网络服务器执行AppleScript。问题是AppleEvents只能由当前仅作为windowserver用户(控制台用户)或root用户登录的用户通过窗口服务器发送。默认情况下,apache将作为_www运行,因为它的shell和_www用户无法在命令行上运行osascript。

解决方法是以控制台用户或root用户身份运行shell命令。

答案 1 :(得分:1)

创建一个AppleScript应用程序并将其保存为应用程序扩展名,然后从PHP页面进行链接。我在localhost上的某些项目上使用了它,