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
    • 最新
    • 标签
主页 / server / 问题 / 828988
Accepted
Andrew
Andrew
Asked: 2017-01-28 05:56:09 +0800 CST2017-01-28 05:56:09 +0800 CST 2017-01-28 05:56:09 +0800 CST

Apache 权限被拒绝

  • 772

我正在尝试使用 CentOS 6 和 Apache 启动网络服务器。网站文件托管在 Windows 文件共享中。这是fstab文件中用于挂载 Web 文件的行: \\192.168.1.10\apache /var/www/html cifs credentials=/root/secret.txt,uid=apache,gid=apache 0 0. 这似乎工作正常。

这是 vhost.conf 文件:

Listen 80
<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName sub.domain.com
    DocumentRoot "/var/www/html/domain.com/sub/public_html"
    #ErrorLog /var/www/html/domain.com/sub/logs/error.log
    #CustomLog /var/www/html/domain.com/sub/logs/access.log combined
</VirtualHost>

我运行了命令ls -l /var/www/html/domain.com/sub/public_html,这是输出:

total 1
-rwxr-xr-x. 0 apache apache  0 Jan 26 20:43 index2.txt
-rwxr-xr-x. 0 apache apache 45 Jan 26 19:33 index.html

命令ls -l /var/www/html/domain.com/sub输出为:

total 0
drwxr-xr-x. 0 apache apache 0 Jan 26 20:00 logs
drwxr-xr-x. 0 apache apache 0 Jan 26 20:43 public_html

当我访问http://sub.domain.com时,我会看到通用的 Apache 屏幕。一时兴起,我去了网址http://sub.domain.com/index.html;并且浏览器说我无权访问该页面-对于http://sub.domain.com/index2.txt也是如此。对于网址http://sub.domain.com/index2.html,浏览器表示该文件不存在。这告诉我我的“手指”都指向正确的方向。 知道我的问题可能是什么吗?

文件中的日志行vhost.conf被注释掉,因为httpd不会重新启动。我认为这是同样的问题。

apache-2.2 permissions centos6
  • 3 3 个回答
  • 2805 Views

3 个回答

  • Voted
  1. yunzen
    2017-01-31T01:23:52+08:002017-01-31T01:23:52+08:00

    既然Apache设置本身没有明显问题,那肯定是操作系统设置的权限有问题。

    Apache 要求 apache 用户也可以访问父目录。

    由于 CentOS 带有 SELinux,这也可能是问题所在。也许您没有对 SELinux 进行主动权限设置,但 Linux 本身具有用于远程挂载的默认 SELinux 设置。

    您可以使用ls -Z.

    这是 askubuntu 中一个有趣的 OP:https ://askubuntu.com/questions/451922/apache-access-denied-because-search-permissions-are-missing

    • 3
  2. Michael Hampton
    2017-01-31T04:59:07+08:002017-01-31T04:59:07+08:00

    我们可以在您的问题中看到您正在运行 SELinux,并试图让 Apache 从 CIFS 共享中读取 Web 内容。默认情况下,SELinux 不允许这样做,但您可以通过设置适当的布尔值来启用它。

    setsebool -P httpd_use_cifs 1
    
    • 1
  3. Best Answer
    Andrew
    2017-01-31T05:38:33+08:002017-01-31T05:38:33+08:00

    问题出在 SELinux 上。我挂载共享的方式,SELinux 安全上下文不允许 Apache 访问共享中的文件。SELinux How Tos中的示例恰好是针对 Apache 的。

    我使用了命令ls -Z,不只是ls -l,我看到挂载文件的 SELinux 安全上下文是错误的。我将fstab文件中的行更改为

    \\192.168.1.100\apache /var/www/html cifs credentials=/root/apache.pass,uid=apache,gid=apache,context=‌​system_u:object_r:ht‌​tpd_sys_content_t:s0 0 0
    

    我需要 SELinux 允许 Apache 访问文件的这个添加的上下文参数。

    • 1

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve