【问题标题】:Permissions issue for Symfony on Centos vmCentos vm 上 Symfony 的权限问题
【发布时间】:2015-02-06 16:17:39
【问题描述】:

晚上好。 我以为我永远不必问这个问题……但我不知道该去哪里找了。

这就是问题所在。

我在运行 hyper v 的全新 Centos 7 虚拟机上安装了 Symfony。

我的 apache 用户是 apache。 我的 app/cache 和 app/logs 目录归 apache 用户和 apache 组所有。 我什至将这两个文件夹和子文件夹的权限设置为 777。

但 Symfony 仍然无法写入缓存或日志。

这怎么可能?我很想就这个问题获得一些指导。

谢谢

【问题讨论】:

标签: php apache symfony permissions


【解决方案1】:

在 CentOS 中,您必须以 root 身份登录并写下:

sudo chcon -t httpd_sys_rw_content_t .../cache -R
sudo chcon -t httpd_sys_rw_content_t .../logs -R

【讨论】:

    【解决方案2】:

    尝试禁用 selinux : [https://www.centos.org/docs/5/html/5.1/Deployment_Guide/sec-sel-enable-disable.html][1].那解决了我的问题。

    1- 打开 /etc/sysconfig/selinux 并将 SELINUX 的值从 permissive(或 enforcing)修改为 disabled

    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #       enforcing - SELinux security policy is enforced.
    #       permissive - SELinux prints warnings instead of enforcing.
    #       disabled - SELinux is fully disabled.
    SELINUX=permissive
    # SELINUXTYPE= type of policy in use. Possible values are:
    #       targeted - Only targeted network daemons are protected.
    #       strict - Full SELinux protection.
    SELINUXTYPE=targeted
    
    # SETLOCALDEFS= Check local definition changes
    SETLOCALDEFS=0
    

    2- 重新启动计算机并进行测试。

    【讨论】:

    • 能否请您粘贴回答问题所需的配置或命令的 sn-p,以防外部链接关闭或移动。谢谢
    【解决方案3】:

    对我来说,这是设置权限的最佳方式:

    http://symfony.es/documentacion/como-solucionar-el-problema-de-los-permisos-de-symfony2/

    永远为我工作。

    该链接是西班牙语,但我相信您可以通过命令(如果不会说西班牙语)理解它。

    【讨论】:

    • 您好@mangelsnc,感谢您的回答。我已经尝试过了,因为这与 Symfony 文档的提议非常一致。由于某些原因,它不适用于我的 centos 版本。也许我的 VM 上的 setfacl 实现存在问题......但是我通过全新安装的 ubuntu 解决了这个问题
    【解决方案4】:

    这不是真正的解决方案,而是一种解决方法。 我已经用 ubuntu 替换了 centos vm,现在一切运行顺利,只是确保文件夹归 apache 用户所有。 这对我来说真的是个谜。而且我意识到我以前从未在 centos 上部署过 symfony 应用程序。我相信应该有一个解释,但显然不是那么容易找到。

    感谢大家的帮助。

    【讨论】:

    • 由于 SELinux 而更换整个操作系统并不是一种解决方法。它一起避免了系统安全。您可能只是禁用了 SELinux。 @Libor 注释是配置 SELinux 以允许 Apache 写入文件系统的正确方法。
    【解决方案5】:

    查看http://symfony.com/doc/current/book/installation.html中的“设置权限”部分

    【讨论】:

    • 是的...我已经尝试了这三种解决方案。它们都不起作用。
    • 你没有任何来自 Symfony 的日志消息吗?
    • 是的,但仅此而已。
    猜你喜欢
    • 2016-09-12
    • 2021-12-16
    • 2016-05-07
    • 2017-03-18
    • 2014-04-02
    • 2020-02-17
    • 2018-10-30
    • 1970-01-01
    • 2017-06-07
    相关资源
    最近更新 更多