繁体   English   中英

PHP无法正确执行bash脚本

[英]PHP not properly executing bash script

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

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

我有什么想念的吗? 似乎完全跳过了osascript行很奇怪。 有什么建议么? 提前致谢!

码:

的PHP

<?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');
    }
}
?>

重击

#!/bin/bash
echo "test String"
cd /Users/Zimmerman/Library/Scripts
osascript /Users/Zimmerman/Library/Scripts/testscript.scpt
echo "test String"

您的apache $ PATH变量可能不在/usr/bin/ 如果您回声shell_exec('which osascript'); 在PHP文件中,您可能看不到任何内容,但是会在终端上看到结果。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM