我在EC2上部署了wordpress站点,并使用RDS mysql连接它。只要EC2和RDS在运行,在第一次运行时,一切都运行得很好。只要我停止ec2和rds,并尝试第二天早上或直接重启它,我就可以访问word press网站,但内容布局不正确,图像也丢失。我在互联网上搜索了一下,发现推荐使用弹性ip的相关问题很密切,我也使用了弹性ip,并将其分配给了EC2,但WP的内容仍然缺失。任何建议
发布于 2019-02-22 04:58:23
Wordpress会在其配置文件和数据库中嵌入您的网站URL,如果您没有稳定的DNS名称,则会嵌入IP地址。
在初始安装之后,对IP地址或DNS名称的任何更改都会导致您看到的行为。
此页面文档包含修复该问题的步骤。https://codex.wordpress.org/Changing_The_Site_URL
下面的脚本直接更改Wordpress数据库中的IP地址。请务必更改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调整为EC2实例的新IP地址。
请注意,长期解决方案是不同的:我建议使用两个EC2实例实现可用性和一个负载均衡器。负载均衡器将有一个稳定的DNS名称(您可以在域DNS中使用CNAME记录作为该名称的别名)。Wordpress数据库将只包含CNAME名称。
有关在亚马逊网络服务上部署Wordpress的最佳实践,请参阅此白皮书:https://aws.amazon.com/blogs/architecture/wordpress-best-practices-on-aws/
发布于 2020-05-29 11:24:34
我也遇到了同样的问题,当我在亚马逊ec2实例上安装wordpress时,我创建了一些帖子和页面,一段时间后我停止了ec2实例。当启动ec2实例时,wordpress站点不显示内容。
所以我找到的解决方案是,wordpress需要静态IP地址,所以我创建了新的ec2,为ec2实例分配了弹性IP地址,并创建了wordpress博客,它对我来说工作得很好,甚至多次重启ec2。
https://stackoverflow.com/questions/54815567
复制相似问题