【问题标题】:mkdir command doesn't work using exec() in PHPmkdir 命令在 PHP 中使用 exec() 不起作用
【发布时间】:2011-08-03 21:56:45
【问题描述】:

这很奇怪。尽管 ls、date、whoami 等基本命令正在运行。我似乎无法使用 exec 使用 mkdir 命令创建目录

$output=exec("mkdir helloworld");

另外值得一问的是,是否发生了这样的错误。是否有任何参数或者我可以用来捕获这个错误。像下面的例子吗?

exec("mkdir helloworld 2>&1",$output,$return_val)
if($return_val !== 0) 
echo "there was an error"

【问题讨论】:

  • 有什么理由不使用mkdir (php.net/manual/en/function.mkdir.php)?
  • 请定义:doesn't work。你检查权限了吗?你检查过路径吗?
  • 我正在制作一个基于 Web 的终端..在浏览器上执行 UNIX 命令
  • @Bobby 我可以在终端中使用 mkdir helloworld 命令创建目录。为什么不使用 exec() ?也许是因为我在终端中使用 root。和 www-data 使用浏览器中的 exec 命令?
  • 你检查 $output 了吗?它应该为您提供有关那里发生的事情的更多信息。我赌的是特权不足。

标签: php shell unix scripting exec


【解决方案1】:

这很可能是由于缺少正在执行代码的用户(在许多情况下是 apache 用户)的文件权限。 如果在命令中添加“2>&1”,还可以在 $output 中看到错误输出

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    相关资源
    最近更新 更多