在使用apache2服务器创建网站及其文件时,位于/var/www/html内部出现了“Permission denied”错误。

25

Atom内部截图 更新** 截图在Atom中,但当我使用文件浏览器导航到目录并右键单击时,重命名或创建新文件夹的选项受限制,我无法点击它们。

我刚刚在新安装的UBUNTU 18.04上设置了LAMP堆栈。我已经让所有东西都运行正常,Apache2默认的/var/www/html/index.html页面正在本地主机上提供服务,没有端口转发或任何唯一的域名,现在我只想从我的计算机上在网络上运行此网站。

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

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

此外,如果我更改权限以允许我在此目录中工作,那么对于尝试访问我的服务器的人意味着什么,如果它向公众开放。 (现在只在本地主机上)。

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


1
您以root身份登录,仍然收到权限被拒绝的消息? - tkausl
是的,没错。我也尝试在我将要在我的网站上使用的 ATOM 编辑器中打开它,但它不允许我进行编辑。 - jose reyes
8个回答

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

这个命令可以使得文件的所有者变成我的用户而不是root用户。我仍然不太理解,因为我的用户已经有sudo权限和所有的权限了。这是我在安装Ubuntu18.04时创建的用户,所以不应该有问题,但也不确定。


这个有效,谢谢。 - NMukama
2
适用于我,在运行在AWS LightSail实例上的Ubuntu 20上,2022年可用。 - Charles
它对我也有效,更短的语法是 sudo chown -R $USER /var/www/html - Lameck Meshack
这对我没用,Ubuntu 22 @ localhost。 - Marco Floriano

13

输入以下命令可以通过命令行解决文件所有权的问题:

sudo chmod 777 /var/www/html -R

来自turnkeyLinux.com的一个注意事项:

更改文件权限是一种权衡 (通常增加安全性会降低用户友好性和/或可用性)。对于安全性的“最佳实践”,只有需要Web服务器写访问权限的文件夹才应该由Web服务器拥有。 如果您的Web服务器在任何地方都有写入权限,并且您的服务器已被入侵,则容易黑客入侵您的WordPress安装),但为了使用方便,将Web服务器的所有权授予Web服务器应该解决您的所有问题...


这篇理解文件权限的文章也很不错。


这是一个临时解决方案还是永久解决方案?我想让我的浏览器在我使用HTML文件时一直运行。是否有权限可以在下次每个新的浏览器启动、每次重新启动或屏幕解锁时自动重置? - ansh sachdeva
8
哦,我的天啊!对于一个面向公众的网站来说,将执行权限开放给全世界是一个可怕的想法! - chiddidilikahrn

5

这将有助于你。

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

谢谢。这让我省去了很多烦恼! :-) - luisdev
工作正常。这是相关的答案。 - Nisar Ahmed
7
工作正常- 直到您的网络服务器被黑客攻击并被劫持要求支付比特币赎金! - chiddidilikahrn

3
权限错误是因为文件夹没有权限,而权限被不同的用户保留。您可以通过运行“ls -l folderName”命令来检查。
解决问题的方法有多种,以下是其中几种: 方法1:
  1. 运行命令“apachectl -S”查找正在运行的apache用户。
  2. 找到用户名(比如www-data)。
  3. 将文件夹的所有权更改为“chown -R www-data:www-data /var/www/html”(这将只允许您的Apache操作文件)。
  4. 运行命令“ln -s /var/www/html /home/username/html”(这将为您的文件夹创建一个软链接,在该链接上进行的编辑/删除/读取将反映在您的Apache上)。
方法2:
  1. 进入/var/www/目录。
  2. 运行“sudo chown -R www-data:${USER} html”(现在Apache和您登录的用户都有操作文件的权限)。

1
如果您不是root或者没有对某些事物(文件夹,文件等)的权限,请注意您的操作会受到限制。
以文件夹为例:
  • first of all verify permissions of your folder
    ==>ls -ld linkto/folder
    
  • and after give it a permissions it need or type the command bellow to add all permissions
    ==>sudo chmod -R 777 /var/www/html
    

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


0

只需写

Blockquote

并且给予该文件夹读写权限(不是用户)


0

尝试使用以下命令

读写:

sudo chmod -R a+rw /var/www

对于读、写和执行:

sudo chmod -R a+rwx /var/www

-1

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


我该如何正确地更改我的权限?我知道这与chmod有关,但我找不到正确的协议来执行此操作。 - jose reyes
肯定有人在他们的机器上设置过LAMP堆栈,考虑到有数百万个站点正在运行它,为什么这是个问题? - jose reyes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接