我有一个关于在 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 文件。