私は次のような小さなAppleスクリプトを持っています:
beep
delay 2
tell application "Finder" to activate
音が鳴り、2秒待ってから、「Finder」ウィンドウを前面に表示します。
コマンドラインから実行すると、正常に動作します。
次に、PHPがexec()php関数を使用してそのスクリプトを呼び出すようにします。
<?
$cmd = "/usr/bin/osascript \"myscript.scpt\"";
exec($cmd);
?>
それでも問題なく動作します。
しかし、同じPHPスクリプトをブラウザーから呼び出すと、機能しません。PHPが起動し、ビープ音が聞こえるのでAppleスクリプトも起動しますが、最後の行は実行されません。
それは環境変数になると思ったので、それらがすべてターミナルと同じようになっていることを確認しました。
$cmd = "HOME='/Users/mikael' && … && /usr/bin/osascript \"myscript.scpt\"";
変数は適切に設定されていますが(env | sortで確認)、ブラウザーに表示されたphpスクリプト内でAppleスクリプトを実行し、標準のMacOSapacheのものを使用してもうまくいきません。
何か案が?