我有一个网页试图读取文件但出现权限被拒绝错误。我写了一个非常简单的页面来重现这个问题。
<?php
echo exec('whoami');
echo "<br>";
echo exec('cat /var/svn/aaa/format 2>&1');
?>
作为测试,我尝试将 svn 目录和以下所有内容的权限设置为荒谬的 777,将所有权更改为 apache 并尝试将 apache 用户添加到不同的组。我已经确认它以 apache 用户身份运行(即上面的 whoami 调用)。如果我尝试在命令行上将上述命令作为 apache 运行,那么它可以正常工作,例如
sudo -u apache cat /var/svn/aaa/format 2>&1
为什么这不符合我的预期?我希望给文件 777 会给予“其他”完全权限,我希望将所有者更改为 apache 也可以解决问题。我希望执行 sudo,因为如果 php 失败,apache 用户会失败。
顺便说一句,为了完整起见,这是我正在运行 WebSVN 的一个问题,但它似乎是 apache 问题而不是 WebSVN 问题。