我有一个 Debian 6 VPS,我想用它来托管自己和朋友的一些网站。将我们自己的网站托管在我们的主目录(例如 /home/user/sites/mysite.com)中并将其创建为虚拟主机是一个好主意吗?
我是否必须让 www-data 帐户也成为“用户”组的一部分,以便它能够执行/创建目录(例如为 wordpress 执行)?
或者您建议我们将网站托管在 /var/www/ 之外?
我非常想学习一种简单有效的方法来实现这一目标,因此非常感谢任何反馈或建议。
答案1
在您的主目录中托管网站并不危险;您所要做的就是a+x
允许 Apache 进入用户的主目录,这在任何意义上都不是安全风险。为了获得更好的安全性,请为任何动态内容创建单独的用户,这样动态站点中的安全问题就不会对您的所有其他站点造成破坏风险。
此外,不要将其mod_php
用于运行多个站点的任何系统,因为(如您所指出的)您需要玩弄权限游戏,以使 Web 服务器能够编写动态生成的内容。相反,使用 suPHP(或 FCGI 或 suExec 用于一般 CGI 内容)之类的东西来运行每个用户的 PHP 代码他们自己而不是 Web 服务器。这样可以提供更好的隔离和避免了复杂的权限游戏(比如放入组www-data
中users
,这很不干净)。
答案2
出于安全原因,最好将文件放在 /home 目录之外。如果不更改 /home 目录的权限,您将无法读取目录 /home/user/sites/mysite.com。您可以做的是做一个符号链接,例如:
/var/www/html/user1 -> /home/user1/sites
并且您的 DocumentRoot 将是带有 allowsymlinks 标志的 /var/www/html/user1。