Docker Wordpress多站点——需要暴露哪些端口?

3

我正在尝试在Docker容器中设置WordPress多站点/网络。从文档中,我了解到多站点只适用于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站点组网络

错误:您无法使用服务器地址安装站点网络。

您不能使用诸如:8000这样的端口号。

如果我将端口从8000更改为80或443,则服务将无法工作(分别会出现“此页面无法正常工作-本地主机没有发送任何数据”和404)。

有什么办法可以设置多站点工作的端口吗?

1个回答

3
我正在使用基于 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') ) ) )

对于本地设置,这应该是被接受的答案! - Giorgio25b

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接