繁体   English   中英

Centos 7,PHP 7.2的权限通过Apache2.4被拒绝

[英]Centos 7, PHP 7.2 Permission denied via Apache2.4

当我尝试通过apache执行到db的连接时,我无法通过pdo登录到mysql,但在cli上它可以正常工作

symfony 4.1 controller我已插入此字符串

new PDO('mysql:host=db;dbname=test_db', 'xyz', 'uzzzxxxx');

它给出异常,但在Symfony4.1 command ,同一行有效,并且我可以查询db。 是什么原因造成的? 控制器和命令合而为一

我相信对于Apache,您正在寻找localhost作为主机。

 new PDO('mysql:host=localhost;dbname=test_db', 'xyz', 'uzzzxxxx');

虽然我不熟悉Symfony,但可能是它使用了不同的凭据,或者可能是当它检测到错误时将其设置为localhost,而Apache没有。

您必须让Apache启用写入日志文件和文件上传的功能吗? 让我们与SELinux一起玩。 并设置适当的所有权和权限

# Ownership

sudo chown apache:apache -R / data / www / html / sites / mysite cd / data / www / html / sites / mysite

文件权限,递归

找 。 -type f -exec chmod 0644 {} \\;

目录权限,递归

找 。 -type d -exec chmod 0755 {} \\;

SELinux从Apache递归提供文件

须藤chcon -t httpd_sys_content_t / data / www / html / sites / mysite -R

只允许写入特定目录

sudo chcon -t httpd_sys_rw_content_t / data / www / html / sites / mysite / logs -R sudo chcon -t httpd_sys_rw_content_t / data / www / html / sites / mysite / uploads -R

httpd_sys_content_t –用于允许Apache提供这些内容,而httpd_sys_rw_content_t –用于允许Apache写这些路径。

而已! 我喜欢,你们分享!

在我的情况下,错误的是通过禁用SELinux,现在它可以工作,以防有人想要查看教程https://linuxize.com/post/how-to-disable-selinux-on-centos-7/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM