php - 使用PHP从EC2通过VPC连接到RDS实例

标签 php mysql amazon-web-services amazon-ec2

我已经在 stackoverflow 上寻找了很长一段时间,但我似乎找不到解决方案...这是我的情况:

  • us-east-1b 中的 EC2 实例(运行 CentOS 6)
  • us-east-1b 中的 RDS 实例(multi-az 已关闭)
  • EC2 和 RDS 实例都在同一个 VPC 中
  • EC2 和 RDS 实例使用相同的安全组
  • 我可以通过终端从 EC2 登录 RDS
  • 我的安全组设置允许使用 TCP 端口 3306 (MySQL) 的任何入站 IP 地址
  • 希望不大,但我还在 EC2 上禁用了 SELINUX

现在这是我的问题:

我似乎无法弄清楚如何通过简单的 PHP 脚本从 EC2 连接到 RDS。每当我尝试连接时,我都会收到错误代码 13。由于 EC2 可以通过终端连接,我猜这是因为位于同一子网中;然而,当我尝试通过 PHP 连接时(我假设此时它正在尝试连接 EIP 地址)我收到错误消息。

奇怪的是我可以通过 Sequel Pro(Mac 相当于 Navicat 或 phpMyAdmin)连接到 RDS,但不能通过 EC2。

我开始认为这不再是安全组问题,而是我完全忘记了 EC2 实例上的操作系统/PHP 配置问题。

有什么想法吗?提前致谢!

最佳答案

我从另一个线程重新发布我的答案,因为你的答案是相关的:

您在 EC2 上运行什么?只是询问它是否是 SELinux(安全增强型 Linux),在这种情况下它可能是安全限制。

在您的终端,如果您运行:

getsebool -a | grep httpd

您应该能够看到此限制(您的网络服务器是否可以“联网”。如果不能,则运行此命令,这应该可以解决您的问题:

setsebool -P httpd_can_network_connect 1

希望能解决问题,否则我看不出问题出在哪里,尤其是因为您说您可以通过终端连接(所以 AWS 安全组不应该是问题所在)。

关于php - 使用PHP从EC2通过VPC连接到RDS实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22742453/

相关文章:

hadoop - AmazonS3Exception 错误请求 : distcp from frankfurt s3 to emr hdfs failing

python - 如何在 AWS 中获取实例的公共(public) DNS

node.js - 如何为正在访问 aws 资源的函数编写单元测试?

php - 如何在 laravel 4.2 中使用带有自定义预过滤器的 AJAX 上传 CSV 文件

mysql - 将 mysql 查询结果转换为 CSV(使用复制/粘贴)

php - 使用 PHP 重新排序 mysql 行

python - 属性错误 : 'tuple' object has no attribute 'encode' when inserting data using mysql-connector

php - 如何设置 Apache 以区分两个域?

php - 需要有关 php 中调节值的帮助

php - 如何确定您是否在没有 $_SERVER ['HTTPS' 的情况下使用 HTTPS]