Docker 自动更改 URL 中的端口
Docker automatically changes port in URL
我建立了两个 WordPress 网站,一个绑定到端口 9000
,一个绑定到 8000
。它们都连接到同一个 MySQL 数据库。
当我访问端口 8000
时,它运行良好并连接到网站和数据库。
另一方面,当我访问端口 9000
时,它会自动将我重定向到端口 8000
及其网站。为什么会发生这种情况?
这是 docker-compose
文件:
尝试清除缓存并在 Firefox 上尝试过(默认浏览器是 Chrome),但它仍然发生。
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
second_wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "9000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
转到 http://localhost:9000/wp-admin/install.php 安装您的第二个实例。
请注意,配置存储在容器内的文件中(在 /var/www/html/ 中),当您停止容器时将会丢失。所以重启后需要重新安装。
如果你想保存配置,你可以创建一个卷并将其映射到 /var/www/html 使用这样的东西
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress:/var/www/html
和
volumes:
wordpress:
问题是两个站点在 mySQL 中使用相同的数据库,解决方案是在 mySQL 中创建不同的数据库并将每个网站分配给它。
然后 wordpress 站点将从不同的数据库获取信息而不是路由。
我建立了两个 WordPress 网站,一个绑定到端口 9000
,一个绑定到 8000
。它们都连接到同一个 MySQL 数据库。
当我访问端口 8000
时,它运行良好并连接到网站和数据库。
另一方面,当我访问端口 9000
时,它会自动将我重定向到端口 8000
及其网站。为什么会发生这种情况?
这是 docker-compose
文件:
尝试清除缓存并在 Firefox 上尝试过(默认浏览器是 Chrome),但它仍然发生。
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
second_wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "9000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
转到 http://localhost:9000/wp-admin/install.php 安装您的第二个实例。
请注意,配置存储在容器内的文件中(在 /var/www/html/ 中),当您停止容器时将会丢失。所以重启后需要重新安装。
如果你想保存配置,你可以创建一个卷并将其映射到 /var/www/html 使用这样的东西
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress:/var/www/html
和
volumes:
wordpress:
问题是两个站点在 mySQL 中使用相同的数据库,解决方案是在 mySQL 中创建不同的数据库并将每个网站分配给它。
然后 wordpress 站点将从不同的数据库获取信息而不是路由。