在php页面中执行脚本aa.shecho "Hello 1";
system('/usr/bin/sudo /root/aa.sh', $status);
print_r($status);
echo "Hello 1";结果页面中可以见到“Hello 1”、“1”、“Hello 2”
但是发现其实脚本没有执行成功
请教大家是什么原因呢?

解决方案 »

  1.   

    网上讲apache权限的问题,具体怎么操作不清楚
      

  2.   

    1 $status只是执行命令返回的状态值。
    2 sudo,你得查看apache执行用户有没有sudo的权限,
      

  3.   

    sudo执行任何命令后,还要输入密码,除非你在几分钟内输入过一次。
    你那个$status返回的状态只是sudo命令本身的执行状态,而非,运行/root/aa.sh的状态。
      

  4.   

    你在调用的时候,实际上是以apache/www-data用户的权限在调用system函数,
    所以你可以把apache/www-data加入suders
    还得检查你的php是不是出于安全模式,或者禁止使用系统调用函数