【问题标题】:Apache permissions to execute the exec function执行 exec 函数的 Apache 权限
【发布时间】:2011-05-26 17:11:55
【问题描述】:

我一直在尝试在 CentOS 上运行这个 php 代码:

<?php

$command = "diff file1 file2 > file3";
exec($command, $output, $error_code);

if ($error_code != 0) {
    echo "Error: $error_code";
}

?>

它总是回显“错误:1”。错误 1 ​​是“不允许操作”http://www.pegasoft.ca/resources/boblap/99_b.html。看起来 apache 没有权限做某些事情,对吧?我该如何解决?

【问题讨论】:

  • 尝试ps aux | grep http以确保apache以用户apache身份运行
  • 我认为是img704.imageshack.us/i/isit.png 那个回复和那些 cmets 发生了什么?

标签: php linux apache exec centos


【解决方案1】:

我认为这是因为您没有使用正确的命令。您正在像在终端中一样运行 $command,因此您需要添加一个指示您拥有权限的命令。我认为在 CentOS 上是 su。例如,在 Ubuntu 中,您会执行 sudo -command-。

所以尝试在 diff 之前添加 su。

编辑:

您应该在此处检查 su 的正确用法: http://wiki.centos.org/TipsAndTricks/BecomingRoot

【讨论】:

    【解决方案2】:

    哦>____

    我的脚本末尾有这一行:

    exec("rm -f /var/local/out/upload/example_word/word/diff.diff");
    

    文件被创建然后被删除...这就是为什么我永远看不到它。对不起。

    【讨论】:

      猜你喜欢
      • 2018-05-11
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      • 2014-12-22
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多