我有一个关于 Apache 的问题,在 Ubuntu 服务器上运行。默认情况下,我的服务器存储 Apache 服务的所有 Web 文件,/var/www/html
其中我存储了我的服务器服务的所有域的 webroot(使用<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%
文件时没有任何问题. 是不是因为这些文件的读取权限都设置为允许所有用户访问?
能发一下实际配置吗?
这可能是由于 Apache 未配置为从 /home 提供文件所致;尝试
a2enmod userdir
启用该组权限,并/etc/apache2/mods-enabled/userdir
查看它的作用(它将是一个<Directory>
块和一些allow
指令)。如果站点使用 PHP,您可能还需要编辑
/etc/apache2/mods-enabled/php*.conf
并注释掉主目录中禁用 PHP 的行。是的; 这是那里的“所有用户”权限。就权限而言,Apache读取PHP 文件而不是执行它们。