EC2重新启动后AWS Word Press网站缺少内容

时间:2019-02-21 20:18:37

标签: wordpress amazon-web-services amazon-ec2 amazon-rds

我在EC2上部署了wordpress网站,并使用RDS mysql将其连接。只要运行EC2和RDS,一切在首次运行时都可以完美运行。一旦我停止ec2和rds并尝试在第二天早上或立即重新启动它,我就可以到达Word Press网站,但是内容没有正确布置,图像也丢失了。我在互联网上进行搜索,发现了相关的问题,建议使用弹性ip,我也使用了弹性ip并将其分配给EC2,但仍缺少WP的内容。任何建议

2 个答案:

答案 0 :(得分:0)

Wordpress将您的网站URL或IP地址(如果您没有稳定的DNS名称)嵌入其配置文件和数据库中。

初始安装后对IP地址或DNS名称进行的任何更改都会导致您所看到的行为。

此页面文档包含解决此问题的步骤。 https://codex.wordpress.org/Changing_The_Site_URL

下面的脚本直接更改Wordpress数据库中的IP地址。确保更改DB_NAMEDB_USERDB_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'"

您可以在启动时自动运行此脚本,以将数据库调整为EC2实例的新IP地址。

请注意,长期解决方案有所不同:我建议使用两个EC2实例以提高可用性和负载均衡器。负载平衡器将具有稳定的DNS名称(您可以在域DNS中使用CNAME记录作为别名)。 Wordpress数据库将仅包含该CNAME名称。

有关在AWS上部署Wordpress的最佳实践,请参见本白皮书:https://aws.amazon.com/blogs/architecture/wordpress-best-practices-on-aws/

答案 1 :(得分:0)

我也遇到同样的问题,当我在aws ec2实例上安装wordpress时,我创建了一些帖子和页面,过了一段时间我就停止了ec2实例。启动ec2实例时,wordpress站点未显示内容。

所以我发现解决方案是,wordpress需要静态IP地址,因此我创建了新的ec2,为ec2实例分配了弹性IP地址,并创建了wordpress博客,即使多次重启ec2,它也对我来说很好。