【问题标题】:PHP shell_exec will not run lsPHP shell_exec 不会运行 ls
【发布时间】:2015-03-23 21:41:59
【问题描述】:

我正在运行以下 php 脚本:

<?php

ini_set('display_errors', 'On');
error_reporting(E_ALL);

date_default_timezone_set('UTC');

echo nl2br("Before\n\n");

$out = shell_exec("ls -lart");
echo "<pre>$out</pre>";

echo nl2br("After\n\n");


?>

我根本无法让shell_execexec 工作。上面的脚本产生:

Before
After

但两者之间没有任何关系。

【问题讨论】:

  • ls 在 $PATH 上吗? uid 有壳吗? php 正在运行 chroot 吗?
  • “uid 有壳”是什么意思?什么是chroot。请您进一步解释一下
  • 这里有(健壮的)函数stackoverflow.com/a/12980534/3896852

标签: php exec


【解决方案1】:

我认为 shell_exec 功能在您的 php.ini 中被禁用。您可以通过

查看
if(function_exists('shell_exec')) {
    echo "shell_exec is enabled";
} else {
    echo "shell_exec is disabled";
}

打开你的 php.ini 并导航到 disable_functions 部分

如果 shell_exec 在下面列出,请将其删除。

然后重启apache/php handler。

此外,如果启用了安全模式,此功能将不可用。您需要禁用它。

【讨论】:

    猜你喜欢
    • 2015-05-26
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 2018-12-08
    • 1970-01-01
    相关资源
    最近更新 更多