php – 如何调试exec()问题?

前端之家收集整理的这篇文章主要介绍了php – 如何调试exec()问题?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
exec命令在我的服务器上不起作用,它没有做任何事情,我已经关闭了safe_mode,并验证了所有的控制台命令是否正常工作,我已经尝试了绝对路径.我检查了应用程序的权限,我需要的所有应用程序都具有执行权限.我不知道还有什么要做,下面是我试过的代码的不足之处.
  1. echo exec('/usr/bin/whoami');
  2.  
  3. echo exec('whoami');
  4.  
  5. exec('whoami 2>&1',$output,$return_val);
  6. if($return_val !== 0) {
  7. echo 'Error<br>';
  8. print_r($output);
  9. }
  10.  
  11. exec('/usr/bin/whoami 2>&1',$return_val);
  12. if($return_val !== 0) {
  13. echo 'Error<br>';
  14. print_r($output);
  15. }

最后两个代码显示

  1. Error
  2. Array ( )

我已经联系了服务器服务,他们不能帮助我,他们不知道为什么exec命令不工作.
原谅我的英文不好

看看/etc/PHP.ini,下面有:
  1. ; This directive allows you to disable certain functions for security reasons.
  2. ; It receives a comma-delimited list of function names. This directive is
  3. ; *NOT* affected by whether Safe Mode is turned On or Off.
  4. ; http://www.PHP.net/manual/en/ini.sect.safe-mode.PHP#ini.disable-functions
  5. disable_functions =

确保exec不会像这样列出:

  1. disable_functions=exec

如果是这样,请将其删除并重新启动apache.

为了方便调试,我通常喜欢手动执行PHP文件(可以请求更多的错误,而不需要在主文件中设置).这样做添加标题

  1. #!/usr/bin/PHP
  2. ini_set("display_errors",1);
  3. ini_set("track_errors",1);
  4. ini_set("html_errors",1);
  5. error_reporting(E_ALL);

文件的开头,使用chmod x myscript.PHP给它权限并执行它./myscript.PHP.这是非常注意,特别是在一个繁忙的服务器上写了很多日志文件.

编辑

听起来像一个权限问题.创建一个bash脚本,做一些简单的回声“helo world”,并尝试运行它.确保您拥有该文件和包含该文件文件夹的权限.你只需要做chmod 755进行测试.

猜你在找的PHP相关文章