我有一個小蘋果腳本如下: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