注意:php
有什么不对的地方请大神们多多指教!!!
今天发布代码的时候,使用小伙伴搭建的lamp环境遇到这样的一个问题: 使用Thinkphp5,链接mysql服务失败mysql
下面开始查找缘由和解决问题的过程:linux
开始的时候怀疑是 网络问题 和 mysql的 端口被禁了web
测试:sql
1.在web 服务器上ping mysql 服务ip;结果发现ping通了thinkphp
2.而后尝试用mysql 客户端,远程链接mysql 服务;结果发现竟然成功了centos
结论:安全
1.应该跟网络,端口,mysql用户无关(毕竟用的是同一台服务器,同一个帐户,同一个端口)服务器
既然提供的服务是正常的,可是php链接失败(不是代码问题);那个会不会是由于php的扩展问题网络
测试:
php -m 看了下发现该有的扩展都有
结论:
1.估计应该跟代码 和 扩展没有多大关系了
忽然想起了 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.经过了。。。