使用 apache2 服务器创建网站及其文件时,/var/www/html 内的权限被拒绝

Permission denied inside /var/www/html when creating a website and it's files with the apache2 server

更新** 屏幕截图在 atom 内,但是当我使用文件资源管理器导航到目录并右键单击时,重命名或创建新文件夹的选项受到限制,我无法单击它们。

我刚刚在我的 UBUNTU 18.04 安装中完成了 LAMP 堆栈的设置。我一切正常,Apache2 的默认 /var/www/html/index.html 页面在本地主机上提供,没有端口转发或任何唯一域名,我只想 运行 我的网络上的这个来自我的现在的电脑。

如果有一种简单的方法可以创建多个网站并轻松选择要提供服务的文件夹,那很好,但我现在只想提供一个网站。

当我转到 /var/www/html 文件夹并尝试编辑 index.html 文件时,它说权限被拒绝。我需要做什么才能在构建网站的剩余时间内在此目录中工作。我以 root 用户身份登录到我的系统。

此外,如果我确实更改了权限以允许我在此目录中工作,那么如果 public 可以访问我的服务器,这对试图访问我的服务器的人意味着什么? (现在就在本地主机上)。

如果您需要更多信息或解释,请告诉我,谢谢!

以根用户身份编辑文件。或者更好的是修复您的权限,这样您就不用担心了。

sudo chown -R $USER:$USER /var/www

这有效,它将所有者更改为我的用户而不是 root 用户。我仍然不明白,因为我的用户已经拥有 sudo 权限和所有这些权限。是我在ubuntu18.04设置时创建的用户,所以应该没有问题,或者idk。

出现权限错误是因为文件夹没有权限,权限被不同的用户保留。 (你可以通过 ls -l folderName 来检查)

您的问题的解决方案可以通过以下几种不同的方式处理:

方式一:

  1. 通过 运行 命令 apachectl 找出谁是 运行 apache -S
  2. 找到用户名(比如 www-data)
  3. 将您的文件夹的所有权更改为 chown -R www-data:www-data /var/www/html(这将只允许您的 apache 播放文件)
  4. 运行 下面的命令 ln -s /var/www/html /home/username/html (这将为你的文件夹创建一个软 link , 你可以在哪里 edit/delete/read 这将反映在你的 apache 上)

方式 2:

  1. 转到/var/www/
  2. sudo chown -R www-data:${USER} html (现在 apache 和您的登录用户都有权使用文件)。

文件所有权问题可以通过在命令行键入以下内容来解决:

sudo chmod 777 /var/www/html -R

一个警告来自 turnkeyLinux.com:

Changing file permissions is a trade off (often increasing security reduces user-friendliness and/or usability). For security 'best practice' only the folders that require write access by the webserver should be owned by the webserver. If your webserver has write access everywhere and your server is compromised it makes it easier to hack your WordPress install) but for ease of use giving the webserver ownership should resolve all your issues...


Understanding File Permissions 上的这篇文章也很棒。

这对你有帮助。

sudo chgrp -R www-data /var/www/html
sudo gpasswd -a username www-data
sudo chmod -R 777 /var/www/html

如果您不是 root ,则您没有对某些内容(文件夹、文件..)的权限,请注意您的操作是受限的。

以文件夹为例:

  • 首先验证你的文件夹的权限
    ==>ls -ld linkto/folder
    
  • 然后给它一个它需要的权限或者输入下面的命令来添加所有权限
    ==>sudo chmod -R 777 /var/www/html
    

再次验证您的文件夹的权限,如果正确则再次尝试复制

随便写

并赋予文件夹读写权限(非用户)