【问题标题】:how to create multiple wordpress sites on docker如何在 docker 上创建多个 wordpress 站点
【发布时间】:2021-09-30 20:37:01
【问题描述】:

我使用 docker 创建了一个 wordpress 网站。要打开它,我需要打开浏览器到 localhost:8000。但是,如果我想制作多个 wordpress 网站,我需要如何、在哪里以及需要配置什么来分别访问它们中的每一个,因为我无法仅使用相同的链接访问它们。我是 docker 的菜鸟。

我已经从 youtube 的教程中创建了 .yaml 文件

version: '3'

  # Database
services:
  db:
    image: mysql:5.7
    platform: linux/amd64
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wpsite
  # phpmyadmin
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - '8080:80'
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: password 
    networks:
      - wpsite
  # Wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - '8000:80'
    restart: always
    volumes: ['./:/var/www/html']
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    networks:
      - wpsite
networks:
  wpsite:
volumes:
  db_data:

然后我运行 docker 命令

docker-compose up -d 这使得所有的wordpress文件

要打开它,我需要打开链接 localhost:8000

如何打开另一个 wordpress 网站?因为我不能用同一个链接打开它们。

【问题讨论】:

    标签: wordpress docker localhost


    【解决方案1】:

    如果您希望能够访问多个服务,那么只需为它们分配不同的端口即可。

    在您的示例中,您将 wordpress 配置为在端口 8000 上使用:

    ports:
      - '8000:80'
    

    所以只需分配给另一个wordpress实例不同的端口(例如80018002,...)使用:

    ports:
      - '8001:80'
    

    例如docker-compose.yaml

    version: '3'
    
    services:
      db:
        image: mysql:5.7
        platform: linux/amd64
        volumes:
          - db_data:/var/lib/mysql
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: password
          MYSQL_DATABASE: wordpress-site1
          MYSQL_USER: wordpress-site1
          MYSQL_PASSWORD: wordpress-site1
        networks:
          - wpsite
    
      phpmyadmin:
        depends_on:
          - db
        image: phpmyadmin/phpmyadmin
        restart: always
        ports:
          - '8080:80'
        environment:
          PMA_HOST: db
          MYSQL_ROOT_PASSWORD: password 
        networks:
          - wpsite
    
      wordpress-site1: # Wordpress site 1
        depends_on:
          - db
        image: wordpress:latest
        ports:
          - '8000:80' # This site will be accessible on localhost:8000
        restart: always
        volumes: ['./site-1:/var/www/html'] # Set different path on host
        environment:
          WORDPRESS_DB_HOST: db:3306
          WORDPRESS_DB_NAME: wordpress-site1
          WORDPRESS_DB_USER: wordpress-site1
          WORDPRESS_DB_PASSWORD: wordpress-site1
        networks:
          - wpsite
      wordpress-site2: # Wordpress site 2
        depends_on:
          - db
        image: wordpress:latest
        ports:
          - '8001:80' # This site will be accessible on localhost:8001
        restart: always
        volumes: ['./site-2:/var/www/html'] # Set different path on host
        environment:
          WORDPRESS_DB_HOST: db:3306
          WORDPRESS_DB_NAME: wordpress-site2
          WORDPRESS_DB_USER: wordpress-site2
          WORDPRESS_DB_PASSWORD: wordpress-site2
        networks:
          - wpsite
      # Other wordpress instances
    
    networks:
      wpsite:
    volumes:
      db_data:
    

    不要忘记每个 wordpress 服务都需要它自己的数据库。 您可以为每个 wordpress 服务定义它自己的数据库服务,也可以使用单个(共享)数据库服务并在其上创建多个数据库(每个 wordpress 服务一个)。

    为此,首先仅使用 dbphpmyadmin 服务启动:

    $ docker-compose up -d db phpmyadmin
    

    由于 PhpMyAdmin 设置为在端口 8080 上公开,请转到 http://localhost:8080,登录并为每个 wordpress 服务创建它自己的数据库和用户。

    完成后,更新 docker-compose.yaml 中的 WORDPRESS_DB_* 环境变量(如果需要)以匹配您刚刚创建的数据库和用户凭据,如果一切正常,则启动所有 wordpress 服务。

    根据示例docker-compose.yaml,您应该能够访问:

    • wordpress-site1 在hppt://localhost:8000
    • wordpress-site2 在hppt://localhost:8001
    • ...

    【讨论】:

      猜你喜欢
      • 2017-09-10
      • 2019-04-20
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      相关资源
      最近更新 更多