【问题标题】:AWS does not load PHP webpage wherever I try to connect to database无论我尝试连接到数据库,AWS 都不会加载 PHP 网页
【发布时间】:2022-01-05 15:45:12
【问题描述】:

我是 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 应用程序。

编辑:如果有人在看这个问题,可能是因为无法处理这种类型的事情吗?

【问题讨论】:

  • @KenLee 我刚试过,结果还是一样
  • @KenLee 当我在我的机器上运行时它说连接成功,但在我的代码中出现另一个错误:Fatal error: Uncaught Error: Call to a member function execute() on bool in C:\xampp\htdocs\E-FlashCard\E-Flash cards project\index.php:26 Stack trace: #0 {main} thrown in C:\xampp\htdocs\E-FlashCard\E-Flash cards project\index.php on line 26 我猜是因为$statement1-&gt;execute(); 不适用于 mysqli?
  • @KenLee 我切换回使用 PDO,它在我的机器上运行良好。 Connected Succesfully
  • 一切都解决了吗?
  • @KenLee 不是真的,它在我的机器上一直运行良好,但是当我尝试部署到 AWS 时,我仍然收到 504 Gate-way Timeout

标签: php mysql sql amazon-web-services mariadb


【解决方案1】:

我终于设法通过创建原始 AWS RDB 的快照并使用该快照配置我的弹性 beanstalk 数据库来使其正常工作。然后我连接到该数据库,而不是在我的 PHP 代码中使用原始 RDB 主机名所在的弹性 beanstalk 数据库主机名。

总之,我无法连接到外部数据库,所以我将该数据库复制到我的弹性 beanstalk 配置中并改用它。

希望这可以帮助任何可能遇到相同问题的人

【讨论】:

    猜你喜欢
    • 2014-02-25
    • 2016-04-11
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 2017-10-27
    • 2016-05-13
    • 1970-01-01
    • 2017-01-12
    相关资源
    最近更新 更多