На сайте прессы AWS отсутствует контент после перезагрузки EC2 - PullRequest
0 голосов
/ 21 февраля 2019

Я развернул сайт WordPress на EC2 и подключил его с помощью RDS mysql.Все отлично работает при первом запуске и до тех пор, пока работают EC2 и RDS.Как только я остановлю ec2 и rds и попытаюсь перезагрузить его на следующее утро или сразу же, я смогу перейти на сайт Word Press, но контент не выложен должным образом, и изображения также отсутствуют.Я искал в интернете и нашел тесно связанные вопросы, которые рекомендуют использовать эластичный IP, я также использовал эластичный IP и назначил его для EC2, но содержимое WP все еще отсутствует.Любое предложение

1 Ответ

0 голосов
/ 21 февраля 2019

Wordpress встраивает URL-адрес вашего веб-сайта или IP-адрес, если у вас нет стабильного DNS-имени, в файл конфигурации и базу данных.

Любое изменение IP-адресов или DNS-имени после начальной установки вызовет поведение, которое вы видите.

На этой странице документа есть шаги, чтобы это исправить.https://codex.wordpress.org/Changing_The_Site_URL

Приведенный ниже скрипт напрямую изменяет IP-адрес в базе данных Wordpress.Обязательно измените DB_NAME, DB_USER и DB_PASSWORD

#!/bin/bash

DB_HOSTNAME=`grep DB_HOST /var/www/html/wordpress/wp-config.php | cut -d ',' -f2 | awk -F "'"  '{ print $2 }'`
WP_URL="http://`curl http://169.254.169.254/latest/meta-data/public-hostname/`/wordpress"
DB_USER=wordpress
DB_PWD=password
DB_NAME=wordpress
mysql -u $DB_USER --password=$DB_PWD -h $DB_HOSTNAME $DB_NAME -e "UPDATE wp_options SET option_value='$WP_URL' WHERE option_name='siteurl' OR option_name='home'"

. Этот скрипт можно запускать автоматически во время загрузки, чтобы настроить DB для нового IP-адреса экземпляра EC2.

Обратите внимание, что долгосрочное решение отличается: я бы рекомендовал использовать два экземпляра EC2 для обеспечения доступности и балансировщик нагрузки.Балансировщик нагрузки будет иметь стабильное DNS-имя (вы можете использовать псевдоним с записью CNAME в DNS вашего домена).База данных Wordpress будет включать только это имя CNAME.

В этом техническом документе приведены рекомендации по развертыванию Wordpress на AWS: https://aws.amazon.com/blogs/architecture/wordpress-best-practices-on-aws/

...