无论我尝试连接到数据库,AWS 都不会加载 PHP 网页
AWS does not load PHP webpage wherever I try to connect to database
我是 AWS 的新手,我已经尝试部署我的 Web 应用程序,但一直收到 504 Gate-way Timeout
。然而,经过一些调试和重新部署后,我注意到这是由我的 index.php 文件的 PHP 段引起的:
<?php
$dsn = 'mysql:host=<AWS database hostname>; dbname=e-flash-card-schema';
$username = '<username>';
$password = '<password>';
$db = new PDO($dsn, $username, $password);
session_start();
$user = @$_SESSION['Username'];
$card_number = @$_SESSION['Card_number'];
$query1 = "SELECT Front_Text FROM `e-flash-card-schema`.`card_text` WHERE Username = '$user' AND Card_Number = '$card_number'";
$statement1 = $db->prepare($query1);
$statement1->execute();
$front_text = $statement1->fetch();
$statement1->closeCursor();
$query2 = "SELECT Back_Text FROM `e-flash-card-schema`.`card_text` WHERE Username = '$user' AND Card_Number = '$card_number'";
$statement2 = $db->prepare($query2);
$statement2->execute();
$back_text = $statement2->fetch();
$statement2->closeCursor();
?>
特别是当我删除了 session_start();
行之前的所有内容时,网页能够加载,尽管我假设错误是由行 $query1 = ...
及以下行引起的。这让我相信我尝试连接到数据库时出现了一些错误
当我 运行 相同的代码使用 XAMPP 连接到我机器上的同一个 AWS 数据库服务器时,一切正常。有谁知道这可能是什么原因造成的?
如果有帮助,我还使用 AWS 数据库的 MariaDB 引擎和 Elastic Beanstalk 来部署我的 Web 应用程序。
编辑:如果有人在看这个问题,会不会是因为无法处理这类事情?
我终于设法通过创建原始 AWS RDB 的快照并使用该快照配置我的弹性 beanstalk 数据库来让它工作。然后,我连接到该数据库,而不是在原始 RDB 主机名所在的 PHP 代码中使用弹性 beanstalk 数据库主机名。
总而言之,我无法连接到外部数据库,所以我将该数据库复制到我的弹性 beanstalk 配置中并改为使用它。
希望这对遇到同样问题的人有所帮助
我是 AWS 的新手,我已经尝试部署我的 Web 应用程序,但一直收到 504 Gate-way Timeout
。然而,经过一些调试和重新部署后,我注意到这是由我的 index.php 文件的 PHP 段引起的:
<?php
$dsn = 'mysql:host=<AWS database hostname>; dbname=e-flash-card-schema';
$username = '<username>';
$password = '<password>';
$db = new PDO($dsn, $username, $password);
session_start();
$user = @$_SESSION['Username'];
$card_number = @$_SESSION['Card_number'];
$query1 = "SELECT Front_Text FROM `e-flash-card-schema`.`card_text` WHERE Username = '$user' AND Card_Number = '$card_number'";
$statement1 = $db->prepare($query1);
$statement1->execute();
$front_text = $statement1->fetch();
$statement1->closeCursor();
$query2 = "SELECT Back_Text FROM `e-flash-card-schema`.`card_text` WHERE Username = '$user' AND Card_Number = '$card_number'";
$statement2 = $db->prepare($query2);
$statement2->execute();
$back_text = $statement2->fetch();
$statement2->closeCursor();
?>
特别是当我删除了 session_start();
行之前的所有内容时,网页能够加载,尽管我假设错误是由行 $query1 = ...
及以下行引起的。这让我相信我尝试连接到数据库时出现了一些错误
当我 运行 相同的代码使用 XAMPP 连接到我机器上的同一个 AWS 数据库服务器时,一切正常。有谁知道这可能是什么原因造成的?
如果有帮助,我还使用 AWS 数据库的 MariaDB 引擎和 Elastic Beanstalk 来部署我的 Web 应用程序。
编辑:如果有人在看这个问题,会不会是因为无法处理这类事情?
我终于设法通过创建原始 AWS RDB 的快照并使用该快照配置我的弹性 beanstalk 数据库来让它工作。然后,我连接到该数据库,而不是在原始 RDB 主机名所在的 PHP 代码中使用弹性 beanstalk 数据库主机名。
总而言之,我无法连接到外部数据库,所以我将该数据库复制到我的弹性 beanstalk 配置中并改为使用它。
希望这对遇到同样问题的人有所帮助