从用户主目录运行子域站点

从用户主目录运行子域站点

我有一个关于在 Ubuntu 服务器上运行的 Apache 的问题。默认情况下,我的服务器存储 Apache 提供的所有 Web 文件/var/www/html,其中我存储了我的服务器提供服务的所有域的 Web 根目录(使用协议<VirtualHost>)。

对于我的一个子域,我尝试将其设置/home/%user&/example.com/htdocs为 webroot,但似乎不起作用。当我这样做时,Apache 给出了 403 错误。我尝试将所有权home/%user%(用户和组)更改为www-data,但不起作用!/home/%user%/example.com是一个mount --bind文件/var/www/html/example.com夹,但网站本身似乎只有在我使用/var/www/html/example.com而不是前者时才有效。

知道为什么吗?我将 webroot 放入用户的主目录中,因为我已将他们限制在他们的主目录中,因为我不想让他们窥探我的其余文件夹。

PS这不是我的主要问题,但我也很感激对此的任何见解:中的所有文件/home/%user%/example.com都归 拥有%user%:%user%,但即使 Apache 正在运行www-data:www-data,它似乎也没有遇到读取和运行 的%user%:%user%文件的任何问题。是不是因为这些文件的读取权限都设置为允许所有用户读取?

答案1

您可以发布实际配置吗?

这可能是由于 Apache 未配置为提供 /home 外的文件服务所致;尝试a2enmod userdir启用该组权限,并查看/etc/apache2/mods-enabled/userdir它的作用(它将是一个<Directory>块和一些allow指令)。

如果网站使用 PHP,您可能/etc/apache2/mods-enabled/php*.conf也需要编辑并注释掉主目录中禁用 PHP 的行。

/home/%user%/example.com 归 %user%:%user% 所有,但即使 Apache 使用 www-data:www-data 运行,它似乎也没有遇到读取和运行 %user%:%user% 文件的问题。是不是因为这些文件的读取权限都设置为允许所有用户读取?

是的;那里有“所有用户”权限。Apache就权限而言,您无需执行任何 PHP 文件。

相关内容