Docker部署双WordPress共享MySQL 访问9000端口自动跳转8000问题
问题根本原因
你部署的两个WordPress容器共用了同一个MySQL数据库,且没有配置独立的表前缀,两个站点会读取同一份wp_options表配置:
- 优先启动的8000端口WordPress在初始化安装时,已经将站点根地址
siteurl和首页地址home两个配置项写入数据库,默认值为http://localhost:8000 - 9000端口的WordPress读取到这份写死的8000端口配置后,会自动执行WordPress内置的canonical重定向逻辑,将所有访问跳转到配置的站点地址
解决方案
根据使用需求可选择以下任意一种方案:
方案1:搭建两个完全独立的WordPress站点
两种实现方式二选一:
- 为第二个WordPress创建独立的数据库,修改
second_wordpress的数据库连接配置指向新库 - 共用现有数据库的情况下,给第二个WordPress配置独立的表前缀,在
second_wordpress的environment配置块下新增参数:
WORDPRESS_TABLE_PREFIX: wp2_
修改后重启容器,9000端口的WordPress会自动初始化新前缀的独立表,不会和8000端口的站点共用配置。
方案2:两个站点共用内容,支持多端口访问
如果需要两个端口访问的是同一份站点内容,可在两个WordPress的environment配置块中都新增动态地址配置,覆盖数据库中的写死配置:
WORDPRESS_CONFIG_EXTRA: | define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']); define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
修改后重启容器即可,WordPress会自动适配当前访问的域名和端口,不会强制跳转到固定地址。
内容的提问来源于stack exchange,提问作者ben shalev
相关产品推荐
相关产品推荐

