授予 apache 写入 /home/*/www/ 目录的权限

授予 apache 写入 /home/*/www/ 目录的权限

LAMP 服务器新手在这里:

我有一个网络服务器(在具有完全根访问权限的 VPS 上),我正在其中为一些用户设置网站。

我已经设置了 apache2 和 php,并且在 /etc/apache2/sites-enables 目录下为它们手动指定了一些站点(按照常规,从 sites-available 中对它们进行符号链接)。

我实际上并不使用 /var/www/ 目录,而是选择以下设置:

/home/user1/www/websiteone.com/
/home/user1/www/subdomain.websiteone.com/
/home/user1/www/differentwebsiteone.com/
/home/user2/www/websitetwo.com/
/home/user3/www/websitethree.com/

等等等等。我希望你能明白我的意思。

但我有两个问题:

  1. Apache 无法写入这些目录。有没有简单明了的解释,说明如何实现所有 /home/*/www/ 目录仅(并递归)可由 www-data 写入,而无需授予 user1 写入权限给 user2 等等?最好采用一种可追溯适用于所有未来用户的简单步骤,但如果不可能,我也不介意手动设置。

  2. 其次:在某些情况下,我想让 user2 有权访问 differentwebsiteone.com 文件(位于 user1 的主目录中),但不授予他们访问其他任何文件的权限(因此,某种符号链接显示为 /home/user2/www/differentwebsiteone.com)。我可以轻松实现这一点吗?也许将站点文件移动到 /var/www/ 并符号链接到它们各自的主目录?或者其他什么?非常感谢您的建议!

谢谢!

答案1

Apache 以单个用户身份运行所有网站,因此如果您授予它写入 /home/user1/www 的权限,则 user2 也能够编写可写入 /home/user1/www 的 PHP 脚本。您需要在常规方法之外运行 PHP 才能区分用户。

这里有一篇关于各种方法优点的很好的文章:

http://boomshadow.net/tech/php-handlers/

我自己喜欢 fastcgi,但如果你不需要性能,suPHP 可能是你想要的。

另一个有趣的新功能是 LXC 容器,虽然在 10.04 中它并不是那么有用,但从那时起已经相当成熟。它允许您在 VPS 中创建看起来像另一个服务器的东西,但它不是虚拟化的……它只是包含在自己的进程空间中。

相关内容