当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《使用PHP通过VPC从EC2连接到RDS实例》经验,为你挑选了1个好方法。

我一直在寻找stackoverflow很长一段时间,但我似乎无法找到解决方案......这就是我的情况:

us2-east-1b中的EC2实例(运行CentOS 6)

us-east-1b中的RDS实例(多重关闭)

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连接到RDS.

我开始认为它不再是安全组问题,而是我的EC2实例上的OS/PHP配置完全让我不知所措.

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



1> 小智..:

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

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

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

getsebool -a | grep httpd

你应该能够看到这个限制(你的网络服务器是否可以"网络".如果不能,那么运行这个,这应该可以解决你的问题:

setsebool -P httpd_can_network_connect 1

希望解决它,否则我不知道问题出在哪里,特别是因为你说你可以通过终端连接(所以AWS安全组不应该是问题).

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有