无论我尝试连接到数据库,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 配置中并改为使用它。

希望这对遇到同样问题的人有所帮助