在 Ubuntu 服务器上捕获/记录 MySQL 和 PHP 之间的事务的最佳方法是什么?

在 Ubuntu 服务器上捕获/记录 MySQL 和 PHP 之间的事务的最佳方法是什么?

我在 VPS 上运行 Ubuntu Server 12.04,并支持多个运行 LAMP 的网站。其中一个网站配置了 SSL,并运行使用 Cake PHP 框架构建的应用程序。该应用程序的管理界面与 MySQL 服务器(安装在同一台服务器上)交互,由于我们引入了 SSL(https),因此当用户使用 https 访问某些表单时,它们无法从 MySQL 数据库检索数据(这些是下拉列表,它们从数据库的表中提取列表)。如果放弃 SSL 并仅通过 http 访问相同的 URL,则不会出现问题。Apache 或 PHP 日志中没有显示任何具体内容。

我的开发人员认为这是服务器配置问题。但我不太确定。

我对从嗅探的角度可能发生的事情一无所知,但由于我可以轻松复制我们无法检索数据的用例,所以我很想找到一种方法来嗅探流量以揭示为什么我们无法从这些表单中检索数据。

有什么方法可以获取详细日志类型来显示应用程序的请求及其与 MySQL 的交互?

答案1

您可以使用通用查询日志在 MySQL 中。

答案2

我猜测您遇到的是跨域请求或混合内容(安全/不安全)问题。

再次强调,这只是猜测,因为你没有提供足够的细节,但如果你的表单通过 AJAX 动态加载下拉信息,如果他们在 AJAX URL 中硬编码了 http://(即你通过https://yourdomain.com但 ajax 正在尝试加载http://yourdomain.com) 那么它将无法工作,因为我上面提到的一个问题。

解决方案是确保 AJAX 调用使用与原始页面加载相同的协议。最简单的方法是在发出请求时完全省略协议(例如 //yourdomain.com)。

相关内容