Docker wordpress 多站点 - 要公开哪些端口?
Posted
技术标签:
【中文标题】Docker wordpress 多站点 - 要公开哪些端口?【英文标题】:Docker wordpress multisite - what ports to expose? 【发布时间】:2019-12-22 22:59:10 【问题描述】:我正在尝试将 Wordpress 多站点 / 设置为 Docker 容器中的网络。从文档中,我了解到多站点仅适用于端口 80 和 443。
当我将端口 8000 用于 wpmu 服务时,我可以访问 wordpress
docker-compose.yml
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: wpmu_db
MYSQL_USER: wpmu_db_user
MYSQL_PASSWORD: wpmu_db_user_password
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- "8080:80"
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: root_password
wpmu:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
volumes:
- ".wp/:/var/www/html"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wpmu_db_user
WORDPRESS_DB_PASSWORD: wpmu_db_user_password
WORDPRESS_DB_NAME: wpmu_db
WORDPRESS_CONFIG_EXTRA: define('WP_ALLOW_MULTISITE', true );
volumes:
db_data:
当我导航到 http://localhost:8000/wp-admin/network.php
时,我得到了
创建 WordPress 网站网络
错误:您无法使用您的服务器地址安装站点网络。
您不能使用端口号,例如:8000。
如果我将端口从 8000 更改为 80 或 443,该服务将不再工作(我分别收到“此页面无法正常工作 - localhost 未发送任何数据”和 404)。
知道如何设置多站点工作的端口吗?
【问题讨论】:
【参考方案1】:我在 Docker 上使用 Wordpress 5.3.1 并设法通过将我的公开端口添加到 wp-admin/includes/network.php 中的允许端口列表来修复它。 查找以下代码:
if ( ( false !== $has_ports && ! in_array( $has_ports, array( ':80', ':443') ) ) )
并将其更改为包含您的端口:
if ( ( false !== $has_ports && ! in_array( $has_ports, array( ':80', ':443', ':8000') ) ) )
【讨论】:
对于本地设置,这应该是公认的答案!以上是关于Docker wordpress 多站点 - 要公开哪些端口?的主要内容,如果未能解决你的问题,请参考以下文章
将 Wordpress 站点移动到 Docker:建立数据库连接时出错