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 / 问题 / 642353
Accepted
Grant_Bailey
Grant_Bailey
Asked: 2014-11-06 16:11:58 +0800 CST2014-11-06 16:11:58 +0800 CST 2014-11-06 16:11:58 +0800 CST

SELinux 干扰 Apache / PHP [重复]

  • 772
这个问题在这里已经有了答案:
两个相同的文件;Apache 说禁止使用 1 个回答
7年前关闭。

在我安装的 CentOS 7 中,SELinux 默认是启用的。这会阻止 Apache 正确读取标准 /var/www/html 文档根目录中的 PHP 文件(在显示包含 PHP 脚本的网页时,浏览器是空白的)。当我禁用 SELinux 时,页面正常显示。

是否有某种方法可以设置 SELinux 以允许 Apache 从文档根目录访问 PHP 文件?我宁愿不完全禁用 SELinux,因为 CentOS 显然认为它是一个可取的安全添加。

apache-2.2
  • 2 2 个回答
  • 12204 Views

2 个回答

  • Voted
  1. Best Answer
    bhavicp
    2014-11-06T16:16:59+08:002014-11-06T16:16:59+08:00

    我做的SELinux不多,但你可以试试

    semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html(/.*)?'
    
    restorecon -R -v /var/www/html/
    

    这允许 Apache 在该目录中执行 PHP 脚本,并在重新启动后持续存在。

    如果您使用 MySQL,您可能必须为此做同样的事情。SELinux:让 Apache 在 CentOS 上与 MySQL 对话可能会有所帮助

    • 3
  2. Grant_Bailey
    2014-11-07T01:07:29+08:002014-11-07T01:07:29+08:00

    运行audit2allow < /var/log/audit/audit.log确认 httpd 被 SELinux 阻止(请参阅此链接)。解决方案是使用以下步骤创建和应用策略模块:

    1. 以 root 身份运行命令audit2allow -a -M my_httpd(将“my_httpd”替换为您喜欢的任何名称)。
    2. 再次以 root 身份运行命令semodule -i my_httpd.pp以安装模块。

    在我按照这些步骤操作之后,Apache 能够毫无困难地在我的服务器上运行 PHP 脚本。重新启动服务器不会破坏更改。

    模块文件(my_httpd.te)的内容:

    module my_httpd 1.0;
    require {
        type admin_home_t;
        type httpd_t;
        class file { read getattr open };
    }
    #============= httpd_t ==============
    allow httpd_t admin_home_t:file { read getattr open };
    
    • 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