返回博客

使用 Docker 本地设置 Drupal 或 WordPress 站点

2020-09-024 分钟阅读

本文无意解释我用于设置 Drupal/WordPress 站点的工具,我认为网上有很多关于它们的资料 DockerTraefikCompose。本文唯一的目的是记录我遵循的流程,因为它非常简单,并希望它也能帮助其他人。

先决条件:开始之前,您需要:

  1. 安装了 Docker
  2. Git 基础知识。
  3. 熟悉终端。
  4. 现有的 Drupal/WordPress 仓库/代码库。如果您只想尝试全新安装,请遵循 wodby.com 的官方原生安装文档,它们比这个更简单。网址是:DrupalWordPress

Drupal 7/8/9 的步骤:

  1. 创建一个文件夹,用于存放项目的相关文件。文件夹名称很重要,因为网络将基于此创建。请选择一个简短且最好是单个单词的名称。该名称也将用于 URL。在本教程中,我将创建一个名为 d8base 的文件夹。
  2. 在您在步骤 1 中创建的文件夹中克隆 Docker4Drupal 仓库。您可以在终端中运行此命令来完成此操作:git clone [email protected]:wodby/docker4drupal.git .
  3. 创建一个新文件夹,并将其命名为 web,放在您在步骤 1 中创建的文件夹内。在 docker-compose 文件中,Nginx 默认配置为使用 web 文件夹作为服务器根目录。我们也将在此文件夹中克隆 Drupal 代码库。
  4. 删除 docker-compose.override.yml 文件,您的文件结构应如下所示: Alt Text
  5. 在您喜欢的 IDE 中打开文件并编辑 .env 文件。我们需要更新的行是第 7 行和第 8 行。作为项目名称,我们应该使用与我们在步骤 1 中为文件夹使用的名称相同(在本例中为 d8base)。作为项目的 URL,我使用在步骤 1 中创建的文件夹名称作为前缀,并保留 docker.localhost 部分。这只是我的偏好。
PROJECT_NAME=d8base
PROJECT_BASE_URL=d8base.docker.localhost
  1. 编辑 docker-compose.yml 文件,并进行以下更新:*注释掉所有与 traefik 相关的行,因为我们稍后将创建一个全局的 traefik.yml 文件。
  2. Alt Text
    *取消注释与 PhpMyAdmin (pma) 相关的行,以便我们可以使用它来导入我们的数据库:Alt Text
  3. 在步骤 3 中创建的 web 文件夹中,克隆您的 Drupal 代码库。请确保 Drupal 代码位于此文件夹本身而不是子文件夹中。
  4. 在终端中,在步骤 1 中创建的文件夹内,运行以下命令来启动服务:
make up

配置 Traefik

  1. 创建一个新文件夹,我建议将其命名为 traefik,并在其中创建一个 traefik.yml 文件,文件内容应如下:
version: '3'
services:
  traefik:
    image: traefik:v2.0
    command: --api.insecure=true --providers.docker
    networks:
      - d8base
    ports:
      - '80:80'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
networks:
  d8base:
    external:
      name: d8base_default

如果您有更多需要设置的项目,只需将它们添加到 traefik.yml 中,如下所示:
Alt Text

  1. 在终端中,在 traefik 文件夹中运行以下命令:

docker-compose -f traefik.yml up -d

WordPress 的步骤

  1. 过程与我们为 Drupal 所遵循的相同,唯一的区别在于步骤 2,我们必须克隆 Docker4Wordpress 而不是。

重要提示:确保此行未被注释:NGINX_SERVER_ROOT: /var/www/html/web

注意事项:

  1. 您可以从 http://pma.d8base.docker.localhost/ 导入数据库 将 d8base 替换为步骤 1 中创建的文件夹名称
  2. 您的站点应可通过 http://d8base.docker.localhost/ 访问 将 d8base 替换为步骤 1 中创建的文件夹名称
  3. 在遵循本教程之前,请确保您的计算机的端口 80 未被任何其他应用程序/站点使用。
  4. Drupal:如果您需要运行 drush、composer 或 drupal console 命令,请运行命令 docker exec -it d8base_php /bin/bashcd web 将 d8base 替换为步骤 1 中创建的文件夹名称
  5. 如果您需要将 composer 版本降级到版本 1,请运行:composer self-update --1
  6. 您可能需要编辑 /etc/hosts 文件并添加一个条目,例如:127.0.0.1 d8base.docker.localhost
  7. 重要提示:每次重启 docker 时,您都需要从 traefik 文件夹运行 docker-compose -f traefik.yml up -d
  8. Drupal:请确保您的 settings.php 文件中的数据库信息正确。.env 文件包含此信息,默认信息应如下所示:
$databases['default']['default'] = array (
  'database' => 'drupal',
  'username' => 'drupal',
  'password' => 'drupal',
  'prefix' => '',
  'host' => 'mariadb',
  'port' => '3306',
  'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
  'driver' => 'mysql',
);