#php #mysql #sql #amazon-web-services #mariadb
#php #mysql #sql #amazon-веб-сервисы #мариадб
Вопрос:
Я новичок в AWS и пытался развернуть свое веб-приложение, но продолжаю получать 504 Gate-way Timeout
. Однако после небольшой отладки и повторного развертывания я заметил, что это было вызвано сегментом PHP моего index.php файл:
lt;?php $dsn = 'mysql:host=lt;AWS database hostnamegt;; dbname=e-flash-card-schema'; $username = 'lt;usernamegt;'; $password = 'lt;passwordgt;'; $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-gt;prepare($query1); $statement1-gt;execute(); $front_text = $statement1-gt;fetch(); $statement1-gt;closeCursor(); $query2 = "SELECT Back_Text FROM `e-flash-card-schema`.`card_text` WHERE Username = '$user' AND Card_Number = '$card_number'"; $statement2 = $db-gt;prepare($query2); $statement2-gt;execute(); $back_text = $statement2-gt;fetch(); $statement2-gt;closeCursor(); ?gt;
В частности, когда я удалил все перед session_start();
строкой, веб-страница смогла загрузиться, хотя это было с ошибками, которые, как я предполагаю, были вызваны строками $query1 = ...
и ниже. Это навело меня на мысль, что произошла какая-то ошибка, вызванная моей попыткой подключиться к базе данных
Когда я запускаю один и тот же код с помощью XAMPP, подключаясь к одному и тому же серверу баз данных AWS на своем компьютере, все работает нормально. Кто-нибудь знает, что может быть причиной этого?
Я также использую движок MariaDB для базы данных AWS и Elastic Beanstalk для развертывания своего веб-приложения, если это поможет.
Редактировать: Если кто-то рассматривает этот вопрос, может ли это быть связано с тем, что он не может справиться с такого рода вещами?
Комментарии:
1. @KenLee Я только что попробовал это, но результат все тот же
2. @KenLee Он говорит, что успешно подключен, когда я запускаю на своем компьютере, но выдает еще одну ошибку в моем коде:
Fatal error: Uncaught Error: Call to a member function execute() on bool in C:xampphtdocsE-FlashCardE-Flash cards projectindex.php:26 Stack trace: #0 {main} thrown in C:xampphtdocsE-FlashCardE-Flash cards projectindex.php on line 26
я предполагаю, потому$statement1-gt;execute();
что не работает с mysqli?3. @KenLee Я снова перешел на использование PDO, и он отлично работает на моей машине.
Connected Succesfully
4. Значит, все улажено ?
5. @KenLee Не совсем, на моей машине это всегда нормально работало, но когда я пытаюсь развернуть в AWS, я все равно получаю
504 Gate-way Timeout
Ответ №1:
Наконец мне удалось заставить его работать, создав снимок исходной базы данных AWS RDB и настроив свою базу данных elastic beanstalk с помощью этого снимка. Затем я подключился к этой базе данных вместо этого, используя имя хоста базы данных elastic beanstalk в моем PHP-коде, где было исходное имя хоста RDB.
Таким образом, я не смог подключиться к внешней базе данных, поэтому я скопировал эту базу данных в свою конфигурацию elastic beanstalk и использовал ее вместо этого.
Надеюсь, это поможет любому, у кого может возникнуть та же проблема