AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 26848
Accepted
richzilla
richzilla
Asked: 2011-02-18 10:15:48 +0800 CST2011-02-18 10:15:48 +0800 CST 2011-02-18 10:15:48 +0800 CST

权限问题:Apache 如何访问我的主目录中的文件?

  • 772

我知道文件权限之前已经在这里介绍过,但是我很难理解我的场景的概念。

  • 我在旧的 ubuntu 安装上创建了这些文件。
  • 我已经将文件复制到我的新 ubuntu 安装中,并将它们放在我的 webroot 中。
  • 当我尝试运行文件(它们是 PHP 文件)时,出现与权限相关的错误

为了解决这个问题,我假设它们必须仍然由以前的所有者拥有,所以我chown -R在目录上运行,使用我的用户名作为参数,以便获得目录中所有文件的所有权。应该注意的是,新旧 ubuntu 安装之间的用户名是相同的。

当我尝试再次运行文件时,同样的问题:由于权限问题导致 500 错误。谁能告诉我我应该采取哪些其他步骤?

我的 apache 安装的 webroot 位于我的主文件夹中。如果我在我的 webroot 中创建新文件,它们也会按预期工作,它只是导致问题的旧文件。

permissions
  • 4 4 个回答
  • 166807 Views

4 个回答

  • Voted
  1. Marko
    2011-10-09T16:28:35+08:002011-10-09T16:28:35+08:00

    如果您的服务器文档在/home/$USER/public_html您需要运行的目录中

    sudo chown -R www-data:www-data /home/$USER/public_html
    

    将 DocumentRoot 文件夹的所有权授予用户www-data和组www-data。

    然后您可以将自己添加到组中www-data

    sudo adduser $USER www-data
    

    最后,您需要使 DocumentRoot 文件夹可由所有者(www-data 用户)和您自己(作为www-data组的一部分)写入:

    sudo chmod -R 775 /home/$USER/public_html
    

    为方便起见,您可以public_html_fix.sh使用内容命名脚本:

    #!/bin/bash
    
    sudo adduser $USER www-data
    sudo chown -R www-data:www-data /home/$USER/public_html
    sudo chmod -R 775 /home/$USER/public_html
    

    将其保存在内部/home/$USER/bin并使用以下命令使其可执行:

    sudo chmod +x /home/$USER/bin/public_html_fix.sh
    

    然后,您可以在需要时调用它,从文件系统上的任何地方,您碰巧发现自己是这样的:

    public_html_fix.sh
    
    • 45
  2. Best Answer
    Lekensteyn
    2011-02-18T10:35:50+08:002011-02-18T10:35:50+08:00

    您的 webroot 上方的目录应该设置执行位以允许 Apache 进入目录。

    如果您的 webroot 位于/home/user/htdocs、/、和 ,/home则应该设置执行位。/home/user/home/user/htdocs


    上述解决方案“有效”,但并不理想。如果您创建了一个文件夹,Apache 将无法写入该文件夹。反过来也会发生。

    这可以通过设置 umask 0007 并将自己添加到 Apache 组(如果我没记错的话,请访问 www-data)来“修复”,以便该组可以写入新创建的文件和文件夹。

    或者,您可以安装替代的 Apache MPM:Apache2 MPM ITK(配置信息)并调整配置,以便 Apache 在您的用户下运行。

    • 15
  3. alexg
    2015-04-30T10:02:55+08:002015-04-30T10:02:55+08:00

    除了 chmoding 文件和编辑 apache .conf 文件之外,我想说没有什么对我有用,因为我的文件位于我通过 nautilus 自动挂载的分区上。这仅限制您的用户的分区。

    要检查您的文件是否对www-root运行 apache 的用户或任何用户可见(运行ps -aux | grep apache2以检查),请运行以下命令:

    sudo su -l www-data -s /bin/bash
    

    并尝试从您的文档根目录读取文件。

    如果文件不可读,请检查:

    1)您已设置所有其他文件权限

    2)如果需要,您已FollowSymlinks在.conf文件中使用

    3)你已经设置了 DocumentRoot

    3)为所有用户安装您的分区。我必须/etc/fstab通过它的 UUID 编辑和指定我的分区:

    UUID=afdee1d3-5bb8-4652-892f-e83a9b5ff72e /mnt/4tb      ext4    rw,nosuid,nodev,errors=remount-ro
    

    然后通过 nautilus 卸载分区并执行sudo mount -a. 如果一切顺利,您的文件现在位于/mnt. 更新您的符号链接,一切顺利。

    • 1
  4. user458431
    2015-10-07T17:47:32+08:002015-10-07T17:47:32+08:00

    我发现始终设置它的最佳方法是 VirtualMin 的方式。

    创建用户和组“myhome”

    使 apache 用户成为“myhome”组的成员。不像这里描述的一些解释那样相反

    因此,除了 /home/myhome/www 之外,现在 apache 还具有对 /home/myhome 的读取和执行访问权限

    “myhome”用户具有写入权限

    • 1

相关问题

  • 访问启用的虚拟主机时出现 403 禁止错误

  • WINE 用户配置

  • 无法更新雷鸟

  • Ubuntu 在什么许可证下?可以合法修改和分发吗?

  • 文件权限如何工作?文件权限用户和组

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve