刚刚安装了一个带有 ubuntu 11.04 的 nginx 服务器,在加载我正在编写的 php 程序后,我注意到没有 MYSQL 查询运行。无论是 PHP 还是 MYSQL,我都没有收到任何错误。
- 我的 PDO 连接使用的用户拥有所有权限。
- 当我将主机更改为任何值时,我也没有收到任何错误。
我相信 mysql 没有显示任何连接错误。我如何检查它是否已启用?刚刚检查了 mysql.conf,我没有看到任何与错误报告相关的内容。还查看了 php.ini 并启用了所有错误选项,我还在代码中启用了它。
我不知道,没有任何错误报告,工作是没有用的!
谢谢!
最佳答案
你的 nginx 错误日志在哪里?你看过那些吗? mysql 正在运行吗?试试service mysql status
。如果 PHP 无法连接到数据库,它仍然会给出错误。您如何知道查询没有运行?我的意思是,有什么症状?也许查询正在运行,但您的输入错误?
最重要的是尝试隔离问题。 1)使用curl -v <a href="http://your" rel="noreferrer noopener nofollow">http://your</a>_server
确保 nginx 实际上正在为页面提供服务。 2) 在根Web目录中使用<? phpinfo(); ?>
设置phpinfo.php文件并检查 mysql 设置并验证 php 日志文件的写入位置 3) 尝试安装 phpmyadmin 并查看是否可以使用它连接到数据库。
上述每一项都至少消除了 1 个元素(您的程序、PHP、nginx、mysql),帮助您缩小问题原因的范围。
编辑:第 2 项的附加说明。您正在寻找 php error_log
环境。如果没有设置,错误应该发送到 stderr,在这种情况下我认为这将是你的 nginx 日志文件(至少对于 apache 来说是这样)。您还可以检查 error_reporting 是否设置为某个合理的值(现在尝试 error_reporting=E_ALL )。您可以在 php.ini 文件或程序中设置这两个选项。请参阅手册中的 PHP Error Handling Runtime Configuration 部分。我将通过在程序开始时触发程序中的错误并确保错误显示在日志文件中来进行完整性检查:
trigger_error('Want to be a rock star test message', E_USER_WARNING);
如果你看到你的消息,你就有了正确的日志文件,你应该找到你的其他错误(如果有的话 - mysql 可能不是问题,可能是错误的输入,正如我之前提到的)。
关于php - MYSQL 查询未执行或未显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5853201/