【发布时间】:2015-05-01 20:50:33
【问题描述】:
如果有运行 php 5.5 和 apache2 的亚马逊 ec2 实例。我正在使用一个简单的 test.php 脚本连接到我的 RDS 数据库。当我以 ec2-user 或 root 身份运行脚本时,我能够获得连接。 当我通过我的网络服务器运行相同的脚本时,我得到了
连接无法连接到 'ip' (13) 上的 MySQL 服务器。
我已经尝试过公共和私有 IP 地址。这个脚本可以在我的其他非亚马逊网络服务器上运行相同的 php 和 apache。不确定接下来要看什么,因为它可以在命令行上运行。这是 test.php 脚本的示例,非常简单。
define("DB_IP”,”ip”);
define("DB_USERNAME”,”username”);
define("DB_PASSWORD”,”password”);
define("DB_DATABASE”,”database”);
echo "Connecting...\n";
$conn = new mysqli(DB_IP, DB_USERNAME, DB_PASSWORD, DB_DATABASE, 3306);
// Check connection
if ($conn->connect_error) {
die(date('H:i:s')." Connection " . $conn->connect_error);
}
echo date('H:i:s')." Connected successfully\n";
为什么连接可以在命令行上工作,但从 Web 服务器调用时却不能工作?
【问题讨论】:
-
检查您的安全组的入站和出站设置。
-
感谢 zairwolf...它能够使用 test.php 脚本从命令行连接。从 apache web 服务器调用 php 会使用不同的网络权限吗?
-
如何从命令行运行它?
-
php test.php。我可以从我的 ec2 用户和超级用户执行此操作。
标签: php apache amazon-web-services mysqli amazon-ec2