【问题标题】:PHP exec/shell_exec/system not working through browserPHP exec/shell_exec/system 不能通过浏览器工作
【发布时间】:2011-07-15 10:03:58
【问题描述】:

我正在运行带有 apache 1.3.33 版和 PHP 4.4 版的 SCO Unix 机器。我可以通过 cli 正确执行 exec 命令,但在尝试通过浏览器执行脚本时遇到了麻烦。我的设置是:

  • 安全模式关闭
  • 完整的读/写/执行权限
  • 显示所有错误
  • 没有禁用的功能

我的代码:htdocs 目录中的 test_script.php

<?php
exec('ls',$out,$rval);
echo "Output:<hr />";
print "<pre>"; print_r($out); print "</pre>";
echo "Return Value:<hr />";
echo $rval;
?>

我也尝试过明确设置可执行二进制路径。测试脚本与 apache 的用户/组相同。我也尝试将 2>&1 添加到 arg 中,但没有看到任何变化。提前谢谢你。

here for similar.

【问题讨论】:

  • 你的脚本的输出是什么?
  • @mario,是的,我已尝试明确设置路径。
  • @AbiusX,浏览器中的输出是一个空数组。返回值为 1。
  • 请注意,PHP 开发人员自己在几年前就停止了对 PHP4 的支持,而 Apache 1.3 实际上是史前的。如果您还不知道自己正处于使用 SCO Unix 的石器时代,那么请将此作为适当的通知。 :)
  • 你能试试proc_open 看看会发生什么吗?使用起来很复杂,但文档中有一个很好的例子应该适合你。

标签: php apache system exec shell-exec


【解决方案1】:

试试

$output = shell_exec('ls /tmp/ 2>&1')

您可能对运行网页的用户的当前目录的权限有问题。

你也可以试试whoami 命令。

【讨论】:

    【解决方案2】:

    有时这些功能被禁用,您必须在 php.ini 中启用它们

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      • 2014-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多