php - 当数据通过Web服务器防火墙传输时检索BLOB MySQL PHP问题

标签 php mysql apache amazon-ec2 firewall

我们面临着一个关键问题,即使用 PHP 从 MySQL DB 检索 BLOB 并通过防火墙进行传输。当直接从本地主机绕过 Web 层访问数据库时,相同的 PHP 代码可以正常工作。

详细说明问题 -

我们在 MySQL 数据库中存储了 BLOB,这些 BLOB 可以使用简单的 PHP 代码进行检索,该代码在 Godaddy 共享主机上运行良好。我们最近转移到设置了防火墙的 Amazon EC2/RDS,我们注意到这个问题:PHP 代码检索正确的 BLOB,但通过防火墙从 Apache 发出的响应收到垃圾 BLOB 数据。当直接连接到 RDS 并提取相同的 BLOB 时,相同的代码可以很好地检索和显示。

在数据库中存储 BLOB 的代码以前可以正常工作,现在可以正常工作,因为可以使用 DB Connect 直接访问存储的图像。

我对此非常困惑,为什么当 BLOB 作为响应的一部分通过 Web 服务器出现时,只显示垃圾。我尝试添加 header 等,但当响应通过 Web 服务器时,一切都不起作用。我认为问题不在于在 MySQL 中存储和检索 BLOB 的 PHP 代码。

EC2 上的防火墙设置或 Apache 配置是否会损坏正在传输的 BLOB 数据?请帮忙。

最佳答案

从您在问题中发布的内容来看,这看起来像是数据库客户端(您的网络服务器)和数据库服务器(亚马逊 EC2)之间的编码问题。只需仔细检查数据库客户端和服务器设置,并确保数据库中存储的数据也正确编码。

我这样写是因为查询通过了,只有 BLOB 数据被破坏了。所以对我来说这看起来不像是防火墙问题。

提供更多信息和链接 in the similar issue

关于php - 当数据通过Web服务器防火墙传输时检索BLOB MySQL PHP问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6360788/

相关文章:

php - 减少大型数据库调用 php 的内存使用

php - 如何使用类似于pdo的mysqli一次插入多条记录

apache - 将两个 solr 核心合并为一个

regex - apache .htaccess 重写不应包含 www

php - 如何在查询生成器中使用条件

php - Laravel 4 - 文件上传

php - ORDER BY MAX (`field_name` ) 使用 GROUP BY

php - 制作 "hashtag"系统的最佳方法

mysql - 将 CSV 加载到 CloudSQL

PHP 警告 : Unknown: failed to open stream: Permission denied in Unknown on line 0