修改WordPress域名后无法访问网站及wp-admin,求恢复旧域名方案
恢复Docker部署的WordPress旧域名
操作前提
你需要明确自己的旧域名、之前错误设置的新域名,同时找到home/ubuntu/site-docker目录下的.env或docker-compose.yml文件,从中获取数据库用户名、密码、数据库名(一般对应MYSQL_ROOT_PASSWORD、MYSQL_DATABASE字段)。
步骤1:查看Docker容器列表
在服务器终端执行:
sudo docker ps
找到两类容器并记下名称:
- 数据库容器(镜像名通常是
mysql/mariadb,容器名类似site-docker_db_1) - WordPress容器(容器名类似
site-docker_wordpress_1)
步骤2:进入数据库容器修改域名数据
- 进入数据库容器:
sudo docker exec -it [数据库容器名] bash
将[数据库容器名]替换为你记下的实际名称。
- 登录MySQL:
mysql -u root -p
输入.env文件中MYSQL_ROOT_PASSWORD对应的密码,回车进入数据库命令行。
- 切换到WordPress专属数据库:
use [数据库名];
将[数据库名]替换为.env里MYSQL_DATABASE对应的名称(比如wordpress)。
- 执行SQL替换域名:
把以下命令中的新域名换成你错误设置的域名,旧域名换成原本的正确域名,依次执行:
UPDATE wp_options SET option_value = REPLACE(option_value, '新域名', '旧域名') WHERE option_name = 'siteurl' OR option_name = 'home'; UPDATE wp_posts SET guid = REPLACE(guid, '新域名', '旧域名'); UPDATE wp_posts SET post_content = REPLACE(post_content, '新域名', '旧域名');
每条命令执行后会提示影响行数,确认无误后继续。
- 退出数据库与容器:
连续执行两次exit,回到服务器终端。
步骤3:清理之前的无效修改
- 打开
home/ubuntu/site-docker/src/wp-config.php,把之前添加的两行define( 'WP_SITEURL', ...)和define( 'WP_HOME', ...)改成旧域名,或者直接在行前加//注释掉。 - 进入
home/ubuntu/site-docker/src/wp-content/themes下的所有主题文件夹,打开functions.php,删掉之前添加的update_option('siteurl', ...)和update_option('home', ...)两行代码。
步骤4:重启WordPress容器
sudo docker restart [WordPress容器名]
替换为你记下的WordPress容器名称。
现在用旧域名访问网站和wp-admin后台,即可恢复正常。
内容的提问来源于stack exchange,提问作者Arthur
相关产品推荐
相关产品推荐

