执行exec函数的Apache权限

时间:2010-12-16 17:52:57

标签: php linux apache exec centos

我一直在尝试在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没有权限做某些事情,对吧?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

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

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

编辑:

你应该在这里检查su的正确用法: http://wiki.centos.org/TipsAndTricks/BecomingRoot

答案 1 :(得分:1)

哦&gt; _ __ _ &lt;

我的剧本末尾有这一行:

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

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