21.04 中发生了一些变化。多年来在 Ubuntu 的多个版本中安装了 Apache 后,我在主目录中为 public_html 设置 mod userdir 时遇到了这个问题。
mod userdir 已安装并且我运行了以下步骤:
cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/userdir.load
sudo ln -s ../mods-available/userdir.conf
sudo chmod -R 750 ~/public_html
sudo apache2ctl restart
检查 http://localhost/~username 返回:
Forbidden
You don't have permission to access this resource.
Apache/2.4.46 (Ubuntu) Server at localhost Port 80
答案1
这是你造成的:
sudo chmod -R 750 ~/public_html
由于 Apache 会将用户切换为www-data
来root
提供网页服务,因此文件权限由第三位数字控制(既不是用户、组也不是根)。 里面的文件public_html
需要可读(4
),目录需要可执行( + 1
= 5
)
修复:
chmod -R 755 ~/public_html
您也不需要sudo
这里,因为这些文件都应该归用户所有。
如果您只希望 Apache 而不是所有其他用户能够进入该目录,那么也运行:
chacl u::rwx,u:www-data:r-x,g::r-x,m::r-x,o::--- ~/public_html