PHP没有正确执行bash脚本

时间:2012-10-22 18:31:40

标签: php macos bash applescript osascript

我正在创建一个简单的网页,允许用户在基本的php页面上选择一个选项,点击提交,然后后端PHP应该执行一个bash脚本,它将执行一些AppleScript。

我可以从终端运行bash脚本,并使用osascript运行Applescript文件,但是当我尝试从php执行bash脚本时,它将运行echo命令,但不会执行{{1}行。我想这是一个权限问题,但是我使用osascript将所有内容更改为完全权限(诚然不是最好的主意,但这不是重点)

我有什么遗失的吗?奇怪的是它似乎完全跳过chmod 777线。有什么建议?提前谢谢!

CODE:

PHP

osascript

BASH

<?php
if (isset($_POST['submit'])) {
    $username =  $_POST['username'];
    if (strcasecmp($username, 'user1') == 0) {
        echo 'test1';
    } else if (strcasecmp($username, 'user2') == 0) {
        echo 'test2';
    } else if (strcasecmp($username, 'user3') == 0) {
        echo 'test3';
    } else if (strcasecmp($username, 'user4') == 0) {
        shell_exec('cd ~/Sites;./a.out');
    }
}
?>

1 个答案:

答案 0 :(得分:0)

您的apache $ PATH变量可能无法查看/usr/bin/。如果你在PHP文件中回显shell_exec('which osascript');,你可能看不到任何东西,但你会在终端上看到结果。

您可以向Web服务器$ PATH变量添加路径,也可以尝试使用脚本上可执行文件/usr/bin/osascript的完整路径。