好的,我对 linux 和 apache 配置几乎完全陌生。
我的问题是,我让 apache 显示默认页面,但是当我尝试通过 sFTP 访问它时,它告诉我,在尝试写入 /var/www/html 时,写入权限被拒绝。
我可以通过 fileZilla 顺利登录服务器。当我使用命令 ls -l /var | grep www(我认为这是你检查权限的方法)时,它返回“drwxr-xr-x 6 root root 4096 Jul 15 7:18 www”。我一直在阅读,显然 www-data 应该位于 root 所在的位置,但我不知道。
我正在通过 ec2-user 使用 .pem 文件进行访问。
我想我应该将我的用户添加到负责 html 文件夹的组中,但它看起来像它的根,所以我不确定这有什么问题。
有什么办法可以解决这个问题吗?最好是安全的。
编辑
我可以使用相同的设置写入 /home/ec2-user 目录。所以我猜我只需要将 ec2-user 添加到某个组?我没有像某些人建议的那样有一个名为 www-data 的组,而且听起来授予 ec2-user 根权限是不明智的。这可能是错的。
答案1
如果您使用的是 Ubuntu,则 Apache 用户将是 www-data,但如果您使用的是 CentOS,则 webserver 用户将是 Apache,因此您可以 grep 并查看 Apache 用户是否存在:
grep apache /etc/passwd
如果 apache 用户存在,您可以使用:
chown -R apache:apache /var/www/html
答案2
使用 PuTTY 登录并运行sudo chown -R www-data /var/www/html
这将把目录所有者更改为www-data
。如果这不起作用,请确保这是正确的帐户。听起来不对。