【问题标题】:You don't have permission to access / on this server ubuntu 14.04您无权访问此服务器上的 / ubuntu 14.04
【发布时间】:2015-07-23 10:39:23
【问题描述】:

议程:在 Linux 和 Windows 之间建立一个通用的项目文件夹

我已在我的 ubuntu 机器 14.04 中将我的文档根目录从:/var/www/html 更改为 /media/mithun/Projects/test

我得到错误:

禁止

您无权访问此服务器上的 /。

Apache/2.4.7 (Ubuntu) 服务器在 localhost 端口 80

所以我添加了一些脚本到:sudo gedit /etc/apache2/sites-available/000-default.conf

# DocumentRoot /var/www/html
  DocumentRoot /media/mithun/Projects/test

但是Document Root /var/www/test 可以工作,但不能用于Windows NTFS 分区驱动器

即使参考了:

  1. Error message "Forbidden You don't have permission to access / on this server"
  2. Issue with my Ubuntu Apache Conf file. (Forbidden You don't have permission to access / on this server.)

没有成功:(所以请帮助我...

注意: Projects新卷(内部驱动器:在 Windows 中为 E:/ 驱动器)

@Lmwangi -请在下方查看我的更新以供参考:

输出: ls /etc/apparmor.d/

abstractions    lightdm-guest-session  usr.bin.evince         usr.sbin.cupsd
cache           local                  usr.bin.firefox        usr.sbin.mysqld
disable         sbin.dhclient          usr.lib.telepathy      usr.sbin.rsyslogd
force-complain  tunables               usr.sbin.cups-browsed  usr.sbin.tcpdump

我尝试杀死 apparmor:

sudo /etc/init.d/apparmor kill

我收到的输出为: Usage: /etc/init.d/apparmor {start|stop|restart|reload|force-reload|status|recache}

在此之后,我也能够成功重启 apache

【问题讨论】:

  • 第一步是读取error_log。
  • 以单处理器/调试模式启动您的 apache 服务器。将 strace 附加到它并找出引发错误的确切系统调用。您可以将其粘贴到您的问题中吗?
  • 另一方面,您可以尝试类似 sudo -u www-data "ls /media/mithun/Projects/test" 之类的方法。我的直觉是你有 apparmor 或 selinux 或类似的东西阻止你:)
  • 嗨@Lmwangi - 我试过sudo -u www-data "ls /media/mithun/Projects/test"。它抛出命令未找到错误。
  • 糟糕,只需删除引号。应该是 sudo -u www-data ls /media/mithun/Projects/test 或更好 sudo -u www-data strace ls /media/mithun/Projects/test

标签: linux apache ubuntu configuration mount


【解决方案1】:

在 windows 上使用 ubuntu 时,我遇到了同样的问题,通过重新安装具有读写访问权限的驱动器解决了这个问题。下面的命令将帮助您做到这一点:

sudo mount -o remount,rw /disk/location /disk/new_location

如果还是不行,那么在windows操作系统中,进入电源选项并禁用快速启动。

当您关闭启用了快速启动的计算机时,Windows 会锁定 Windows 硬盘。如果您将计算机配置为双启动,您将无法从其他操作系统访问它。更糟糕的是,如果您启动到另一个操作系统,然后访问或更改休眠 Windows 安装使用的硬盘(或分区)上的任何内容,则可能会导致损坏。如果你是双启动,最好不要使用快速启动或休眠。

原文:https://www.howtogeek.com/243901/the-pros-and-cons-of-windows-10s-fast-startup-mode/

【讨论】:

    【解决方案2】:

    我怀疑您有阻止 Apache 读取未列入白名单的目录路径的 apparmor 强制规则。我建议你

    1. 编辑 Apache 的 apparmor 配置以访问您的自定义路径。您需要四处寻找 /etc/apparmor.d/ 。您可能还会发现在非强制模式下使用 apparmor 很有帮助。

      $ sudo aa-complain /etc/apparmor.d/*

    2. 使用 mod_apparmor?见this

    3. 或者完全禁用apparmor。见this

    我的偏好顺序是 1,3,2。那应该可以为您解决这个问题:)

    【讨论】:

    • 嗨@Lmwangi - 当我尝试按照您的步骤操作时。第一步是抛出错误,如this
    • 你有任何关于 /etc/apparmor.d/* 的 apache 相关内容吗?你能发布 ls /etc/apparmor.d/ 的输出吗
    • 另外,要知道我们是否走在正确的兔子洞里,请在停止 arparmor 后检查 Apache 是否工作。像这样停止它:sudo /etc/init.d/apparmor kill
    • Apache 在运行 1. /etc/init.d/apparmor stop 然后 2. /etc/init.d/apache restart 后是否为您的目录提供服务?
    • 不是自定义目录.. 它仍然抛出相同的错误
    【解决方案3】:

    正如您现在所发现的,您不能只操纵 NTFS 分区上的权限(使用像 chmod 这样的工具)

    但是,您可以尝试在挂载整个分区时强制使用给定的所有者/权限。

    现在执行此操作的方法取决于您实际使用的 NTFS 实用程序(我不知道,所以我假设您使用的是ntfs-3g

    例如使用以下参数挂载分区(将dev/sdX替换为您的实际分区,并将/path/to/wheredrive/is/mounted`替换为您的目标路径):

      mount -o gid=www-data /dev/sdX /path/where/the/drive/is/mounted 
    

    应该使分区上的所有文件都属于www-data组。

    如果文件系统明确设置组所有权,这仍然可能不起作用。 在这种情况下,您可能需要设置一个usermap,将您的 Windows 用户/组(在分区上找到)映射到您的 linux 用户/组。

    ntfs-3g.usermap 实用程序将帮助您生成初始用户映射文件,然后您可以根据需要对其进行编辑:

     ntfs-3g.usermap /dev/sdX
    

    然后将用户映射传递给挂载选项:

      mount -o usermapping=/path/to/usermap.file /dev/sdX /path/where/the/drive/is/mounted 
    

    【讨论】:

    • 我尝试了mount -o gid=www-data /dev/sdX /path/where/the/drive/is/mounted 的第一步,但在第二步中失败了 - 它抛出了Could not open "/dev/sda1" Make sure "/dev/sda1" is not mounted 的错误。我还使用 Gparted 卸载了
    • 由于努力,我接受了答案,但尚未解决。请帮忙,因为我的赏金积分今天就要到期了。所以想着不要白白浪费了
    【解决方案4】:

    也许问题很简单:www-data 用户可以访问您的新根目录吗? 试试看:

    $ chown -R www-data:www-data /media/mithun/Projects
    

    【讨论】:

    • 您好尝试了您的代码。它的抛出错误为:“chown:更改'/media/mithun/Projects'的所有权:不允许操作”
    • 在根目录下试试。此外,如果您想查看这是否是真正的问题,请尝试 ls -la /media/mithun/Projects 并查看第三和第四列是否设置为 www-data(对 Projects 中的文件夹执行相同操作)跨度>
    • 我没有看到它是一个 Windows 分区...这会更复杂...您的项目可以在线访问吗?如果不尝试 chmod 777 你的所有文件
    • 很抱歉没有早点把它作为windows分区。在否决票之后,我分析它是干净和清晰的,并付出了所有可能的努力。我尝试使用 777 设置权限,仍然没有骰子 :( 我是否需要为 /media/mithun/Projects 完整目录或 /media/mithun/Projects/test (存在项目文件夹)分配 777 权限
    • 现在很明显它应该是一个正确的问题,因为 NTFS 分区。也许您应该在这里尝试以下解决方案之一:stackoverflow.com/questions/14864944/…
    猜你喜欢
    • 2013-06-30
    • 2019-02-22
    • 2013-02-19
    • 2014-05-24
    • 2017-05-04
    • 2015-10-06
    • 2015-10-07
    相关资源
    最近更新 更多