我的PHP程序里,通过system()调用某一系统的程序(是另外安装的一个程序,非系统ls类命令),调用方式为:
system("/usr/bin/xxx xxx xxx > /dev/null &");
当通过系统命令行,比如php /xxx/xxxx/xxx.php执行此程序时,没有任何问题,但是通过浏览器执行此程序,没有任何报错,但是无法生成所要的結果,感觉就是system没有起作用,不知道为什么,请教各位是什么原因?

解决方案 »

  1.   

    权限问题,浏览器执行PHP的程序时的用户和你命令行的用户是不一样的。检查用户的权限
      

  2.   

    已将些PHP程序的权限放到777,仍然不行
    PHP程序里调用的外部程序的权限也放到777,还是不行
      

  3.   

    不是PHP文件的权限,是运行apache/iis的帐户的权限
      

  4.   

    最直接的办法,运行NGINX的用户我都放成ROOT了,现在是ROOT用户在运行NGINX,但仍然不行
      

  5.   

    试试, 在php文件的顶部加上shell的头好像是. #sh!, 不记得怎么写了, 
      

  6.   

    php -r 试一试
    另外注意一下,命令行调试使用的php命令未必就是apache载入的php
      

  7.   

    无语了,php -r下,直接执行程序里想要调用的指令exec部分,也是没有问题,就是通过浏览器访问不可以。。
      

  8.   

    检查你的php.ini,安全模式是不是关好了。
      

  9.   

    非安全模式问题我尝试调用过其它的指令,比如wget ,都是可以的,但就是这个不行,这个命令非系统本身指令,是另外安装的应用程序,不知道为什么就是不行???