2014-05-06 65 views
1

我想在PHP中運行AppleScript。以下是我的代碼:如何在PHP中運行Shell腳本/ 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

據我所知,出於安全原因,您無法從網絡服務器執行AppleScript。問題是AppleEvents只能通過當前僅以windowserver用戶(控制檯用戶)或root用戶身份登錄的用戶通過窗口服務器發送。默認情況下,apache將運行爲_www,因爲它的shell和_www用戶不能在命令行上運行osascript。

解決方法是以控制檯用戶或root身份運行shell命令。