问题: 把服务器A克隆到服务器B后,进入B的IP:80/wp-admin时却自动跳转到了A的wp-admin
是因为WordPress在配置中保存了原始服务器A的URL,而不是新服务器B的URL。当你尝试访问B服务器的/wp-admin
时,WordPress会尝试重定向你回到原始服务器A的登录界面,因为它认为它仍然运行在服务器A上。
为了解决这个问题,你需要更新WordPress中的URL设置,使其指向新的服务器B。以下是详细的解决方案:
- 登录到WordPress数据库
首先,你需要登录到服务器B上的MySQL数据库。你可以使用mysql
命令行工具来做这个。bash
mysql -u root -p
输入你的MySQL密码后,你将进入MySQL命令行。 - 选择WordPress数据库
假设你的WordPress数据库名为wordpress_db
,你需要选择这个数据库来执行接下来的操作。sql
SHOW DATABASES;
USE wordpress;
SHOW TABLES; - 先查看
wp_options
表中的siteurl
和home
字段进行确认
SELECT * FROM wp_options WHERE option_name=’siteurl’ OR option_name=’home’; - 更新
wp_options
表中的siteurl
和home
字段
这两个字段分别保存了WordPress站点的URL和主页URL。你需要将它们更新为服务器B的URL。sql
UPDATE wp_options SET option_value = 'http://your_server_b_domain_or_ip:80' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'http://your_server_b_domain_or_ip:80' WHERE option_name = 'home';
将your_server_b_domain_or_ip
替换成你的服务器B的实际域名或IP地址。 - 更新
wp_users
表中的user_login
和user_email
字段(如果需要)
如果你的用户登录或电子邮件地址包含服务器A的URL,你可能还需要更新这些字段。不过,这种情况较少见。 - 退出MySQL命令行
sql
EXIT;
- 重启WordPress容器
更新数据库设置后,你需要重启WordPress Docker容器来使这些更改生效。bash
docker restart your_wordpress_container_name
将your_wordpress_container_name
替换成你的WordPress容器的实际名称。 - 清理浏览器缓存和Cookies
最后,清除你浏览器中关于服务器A的WordPress站点的缓存和Cookies,以确保不会受到旧缓存的影响。
完成上述步骤后,你应该能够正常访问服务器B上的WordPress后台管理界面了。如果仍然遇到问题,请检查你的WordPress配置文件中是否有任何硬编码的URL,并确保它们也指向了正确的服务器B地址。