PDO链接mysql失败,报500错误解决方案 - php

2020-06-12  本文已影响0人  饿肚子吃瓜子

由来

  今天在其他公司部署项目到服务器的时候遇到一个特基础的问题;尴尬的是我当时没想到解决方法。身为一个几年经验的攻城狮居然被这么一个基础的问题给秀到了,真是丢程序员的脸了。

问题

  在部署环境时前面的路是一路坎坷(内网,服务器系统版本也很低),总算是坚持下来了。在部署代码的时候,curl访问接口的时候报500的错误,很快就定位到PDO链接数据库的代码片段。当时链接不上一直以为是数据库的问题(数据库和接口是分开的两个服务器),但是通过命令行就可以直接链接mysql,所以只能看数据库的错误日志,可是找不到对应的错误日志,php也不报错,很多情况下没日志我就像无头苍蝇一样找不到方向不知道怎么搞了。

此时的我:焦急,心烦,抓耳挠腮。

到这里不知道有没有能想到怎么去解决的?
经过百度了一番,看到Exception才恍然大悟,感觉自己真的脑残了。

解决

有了Exception就能找到错误了啊,pdo在链接时如果链接失败会抛出异常,通过下面代码去捕获异常就好了。

try{
    ······
} catch(Exception $e) {
    echo $e->getMessage();
}

捕获到 SQLSTATE[HY000] [2002] Permission denied
最后定位到时因为 selinux 工作模式开启了 enforcing(强制模式)。
设置selinux工作模式为 permissive(宽容模式) 问题就解决了:setenforce permissive

最后友情提醒一下:在遇到问题心情一定不要急躁,因为这样问题并不能解决!!!😊😊😊

上一篇下一篇

猜你喜欢

热点阅读