我应该将具有多个虚拟主机的网站文件放在哪里?

我应该将具有多个虚拟主机的网站文件放在哪里?

如果启用虚拟主机,我应该将网站文件放置在哪里?

  1. /home/aunser/www
  2. /var/www/site1,/var/www/site2
  3. /usr/local/website/site1,/usr/local/website/site2

系统是 CentOS 6.x/RHEL 6.x,启用了 SELinux。

答案1

对于apache来说没关系,你只需定义一个文档根目录指向文件所在的目录。

从实际角度来看,遵循您所使用的发行版的约定可能会更好,因为 SELinux 和可能的 AppArmor 等可能有默认策略,当 Apache 指向非默认位置时需要进行修改。

答案2

Apache 本身并不关心——它使用您在虚拟主机配置中编写的任何内容。然而,机器管理员关心:您应该遵循约定。如果您不遵循通常的约定,您可能会很难使用包管理器。

下面的数据/home应该属于特定用户。这通常不适合网站的内容。

该目录/usr用于存放已安装的程序。除非您安装或升级程序,否则它不会改变。不要在那里放置网络根目录。

Web 服务器根目录的两个正常位置是:

  • 在下面/srv,适用于此类内容;
  • 或以下/var,这意味着在系统正常生命周期内变化的数据——通常在/var/www/VHOST_NAME.

答案3

如果你的意思是您应该将文件放在哪里以便 apache 能够访问它们, 然后...

文件的放置位置完全取决于您。您可以使用指令将虚拟主机配置为使用您选择使用的任何路径DocumentRoot

除了正常的自主访问控制设置(用户和组)之外,根据您的发行版,您可能需要重新配置强制访问控制(SELinux 或 AppArmor 等)以允许 apache 对文档进行读或读/写访问。

相关内容