脚本宝典收集整理的这篇文章主要介绍了php无法连接mysql(selinux),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
php无法连接MySQL(selinux)
注意:
有什么不对的地方请大神们多多指教!!!
今天发布代码的时候,使用小伙伴搭建的lamp环境遇到这样的一个问题: 使用Thinkphp5,连接mySQL服务失败
1.ip和端口禁用问题
开始的时候怀疑是 网络问题 和 mysql的 端口被禁了
测试:
1.在web 服务器上ping mysql 服务ip;结果发现ping通了
2.然后尝试用Mysql 客户端,远程连接mysql 服务;结果发现居然成功了
结论:
1.应该跟网络,端口,mysql用户无关(毕竟用的是同一台服务器,同一个账户,同一个端口)
2.php 扩展问题
测试:
php -m 看了下发现该有的扩展都有
- 因为开始用的是thinkphp5,所以怀疑了下,这个框架(虽然有点太天真了)。。。看了下,发现Tp用的是pdo;就自己写个pdo连接,发现出现相同的问题;
- 查了下,有人说可能是扩展有问题。。。 于是我用原生的 和 mysqli 的方式连接测试下;出现相同的问题
结论:
1.估计应该跟代码 和 扩展没有多大关系了
3.seLinux
突然想起了 seLinux 这个东西;依稀记得 centos 6 后面就搞了这个东西进去;会不会是这个东西搞怪呢?
小插曲:
什么是 seLinux?(百度的)
SELinux(SecurITy-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 red hat Enterprise Linux 上。虽然SELinux很好用,但是在多数情况我们还是将其关闭,因为在不了解其机制的情况下使用SELinux会导致软件安装或者应用部署失败。
测试:
1.看了下服务器的系统信息:centos 7 感觉像了。。。
2.看了下seLinux的状态:
# /usr/sbin/sestatus -v
查看selinux的详细状态,如果为enable则表示为开启;结果发现 果然开着
3.关掉它试试。。。
临时性关闭(立即生效,但是重启服务器后失效)
# setenforce 0 @H_152_126@#设置selinux为PErmissive模式(即关闭)
# setenforce 1 #设置selinux为enforcing模式(即开启)
永久性关闭(这样需要重启服务器后生效)
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
结论:
1.通过了。。。
以上是脚本宝典为你收集整理的php无法连接mysql(selinux)全部内容,希望文章能够帮你解决php无法连接mysql(selinux)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。