如何从php调用shell脚本

时间:2013-11-18 12:05:43

标签: javascript php jquery ajax shell

我正在尝试使用php调用shell脚本。

这里我有一个ajax代码可以获得下拉值和&将值发送到另一个php页面(deleteslide.php)。

deleteslide.php从此页面获取值,并使用带有从主页获取的值的参数调用delete-slide.sh脚本。

但是当我运行代码时,它不会调用脚本......

如何解决这个问题

这就是我所做的:

主页(index.php)

AJAX代码:

$("#deleteslide").click(function()
    {
        var prjid=document.getElementById("project-list").value;
        var unitid=document.getElementById("unit-list").value;
        var slidid=document.getElementById("slide-list").value;
           var d ='deleteslide.php?projectId='+prjid+'&unitNo='+unitid+'&slideNo='+slidid;
            $.ajax({                   
        url:d,                                           
        success:function(output)
        {              
            alert(output);              
        }           
    });
    });

deleteslide.php代码:

<?php
$prtId =$_GET["projectId"];
$utNo=$_GET["unitNo"];
$sdeNo=$_GET["slideNo"];
 $c='/var/www/createslides/gen-json-data/delete-slide.sh '.$prtId.' '.$utNo.' '.$sdeNo;
 //print("$c");
$output=shell_exec($c );
print("$output"); 
?>

这里deleteslide.php正在调用delete-slide.sh脚本,但脚本没有运行....

可能是什么问题?

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

可能是您的脚本没有执行权限: -

1)给你的sctipt执行权限: - linux_shell&GT; chmod + x /var/www/createslides/gen-json-data/delete-slide.sh

2)使用“sh”运行脚本: -

$ c =' sh /var/www/createslides/gen-json-data/delete-slide.sh '。$ prtId。' '$ utNo。' ” $ sdeNo;

注意: - 当你在linux shell中测试shell脚本时,它会以登录用户权限执行,但是当你通过web运行它然后它作为apache用户权限运行,所以apache应该有权执行该脚本...

答案 1 :(得分:0)

尝试添加error_reporting(-1);可能shell_exec已停用。