博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php无法连接mysql(selinux)
阅读量:5973 次
发布时间:2019-06-19

本文共 1187 字,大约阅读时间需要 3 分钟。

php无法连接mysql(selinux)

注意:

有什么不对的地方请大神们多多指教!!!

今天发布代码的时候,使用小伙伴搭建的lamp环境遇到这样的一个问题: 使用Thinkphp5,连接mysql服务失败

下面开始查找原因和解决问题的过程:

1.ip和端口禁用问题

开始的时候怀疑是 网络问题 和 mysql的 端口被禁了

测试:

1.在web 服务器上ping mysql 服务ip;结果发现ping通了

2.然后尝试用mysql 客户端,远程连接mysql 服务;结果发现居然成功了

结论:

1.应该跟网络,端口,mysql用户无关(毕竟用的是同一台服务器,同一个账户,同一个端口)

2.php 扩展问题

既然提供的服务是正常的,但是php连接失败(不是代码问题);那个会不会是因为php的扩展问题

测试:

php -m 看了下发现该有的扩展都有

  1. 因为开始用的是thinkphp5,所以怀疑了下,这个框架(虽然有点太天真了)。。。看了下,发现Tp用的是pdo;就自己写个pdo连接,发现出现相同的问题;
  2. 查了下,有人说可能是扩展有问题。。。 于是我用原生的 和 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 #设置selinux为permissive模式(即关闭)# setenforce 1 #设置selinux为enforcing模式(即开启)

永久性关闭(这样需要重启服务器后生效)

修改/etc/selinux/config 文件将SELINUX=enforcing改为SELINUX=disabled

结论:

1.通过了。。。

转载地址:http://wfdox.baihongyu.com/

你可能感兴趣的文章
版本控制系统git
查看>>
从月薪5k到5w的过来人 给大学生程序员们的一点建议
查看>>
Android开发之 .9PNG 的使用
查看>>
D2 日报 2019年5月8日
查看>>
武汉区块链软件技术公司:区块链和比特币
查看>>
学习笔记(3.27)
查看>>
ecshop ajax无刷新登陆_无需整理
查看>>
Android中隐藏标题栏和状态栏
查看>>
浅显c#连接数据库
查看>>
15. SQL -- 游标(实例)
查看>>
plsql9.0.6.1665版本注册码
查看>>
Linux入门基础之grep命令详解及正则表达式
查看>>
Git 分布式版本控制 实战
查看>>
Linux之Find命令详解
查看>>
crysis2 video&cryengine3 editor show
查看>>
数据挖掘 numpy之数组定义
查看>>
Hibernate学习之SessionFactory的opensession 和 getCu...
查看>>
web网站服务(二)
查看>>
【第一期】网站打开错误问题解决方法集合
查看>>
j2ee开发防范URL攻击是个重要话题
查看>>