Docker wordpress multisite - 要公开哪些端口?

Docker wordpress multisite - what ports to expose?

我正在尝试将 Wordpress 多站点设置为 Docker 容器中的网络。从文档中,我了解到多站点仅适用于端口 80 和 443。

如下wpmu服务使用8000端口时,可以访问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 站点网络

ERROR: You cannot install a network of sites with your server address.

您不能使用 :8000 等端口号。

如果我将端口从 8000 更改为 80 或 443,该服务将不再有效(我分别收到“此页面无效 - 本地主机未发送任何数据”和 404)。

知道如何为多站点设置端口吗?

我在 Docker 上使用 Wordpress 5.3.1 并设法通过将我的公开端口添加到 wp-admin/includes/network.[=24= 中的允许端口列表来修复它].
查找以下代码:

if ( ( false !== $has_ports && ! in_array( $has_ports, array( ':80', ':443') ) ) )

并将其更改为包含您的端口:

if ( ( false !== $has_ports && ! in_array( $has_ports, array( ':80', ':443', ':8000') ) ) )