使用 Docker 本地设置 Drupal 或 WordPress 站点
2020-09-02•4 分钟阅读
本文无意解释我用于设置 Drupal/WordPress 站点的工具,我认为网上有很多关于它们的资料 Docker、Traefik、Compose。本文唯一的目的是记录我遵循的流程,因为它非常简单,并希望它也能帮助其他人。
先决条件:开始之前,您需要:
- 安装了 Docker。
- Git 基础知识。
- 熟悉终端。
- 现有的 Drupal/WordPress 仓库/代码库。如果您只想尝试全新安装,请遵循 wodby.com 的官方原生安装文档,它们比这个更简单。网址是:Drupal 或 WordPress
Drupal 7/8/9 的步骤:
- 创建一个文件夹,用于存放项目的相关文件。文件夹名称很重要,因为网络将基于此创建。请选择一个简短且最好是单个单词的名称。该名称也将用于 URL。在本教程中,我将创建一个名为 d8base 的文件夹。
- 在您在步骤 1 中创建的文件夹中克隆 Docker4Drupal 仓库。您可以在终端中运行此命令来完成此操作:
git clone [email protected]:wodby/docker4drupal.git .
- 创建一个新文件夹,并将其命名为 web,放在您在步骤 1 中创建的文件夹内。在 docker-compose 文件中,Nginx 默认配置为使用 web 文件夹作为服务器根目录。我们也将在此文件夹中克隆 Drupal 代码库。
- 删除 docker-compose.override.yml 文件,您的文件结构应如下所示:
- 在您喜欢的 IDE 中打开文件并编辑 .env 文件。我们需要更新的行是第 7 行和第 8 行。作为项目名称,我们应该使用与我们在步骤 1 中为文件夹使用的名称相同(在本例中为 d8base)。作为项目的 URL,我使用在步骤 1 中创建的文件夹名称作为前缀,并保留 docker.localhost 部分。这只是我的偏好。
PROJECT_NAME=d8base
PROJECT_BASE_URL=d8base.docker.localhost
- 编辑 docker-compose.yml 文件,并进行以下更新:*注释掉所有与 traefik 相关的行,因为我们稍后将创建一个全局的 traefik.yml 文件。
*取消注释与 PhpMyAdmin (pma) 相关的行,以便我们可以使用它来导入我们的数据库:- 在步骤 3 中创建的 web 文件夹中,克隆您的 Drupal 代码库。请确保 Drupal 代码位于此文件夹本身而不是子文件夹中。
- 在终端中,在步骤 1 中创建的文件夹内,运行以下命令来启动服务:
make up
配置 Traefik
- 创建一个新文件夹,我建议将其命名为 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 中,如下所示:
- 在终端中,在 traefik 文件夹中运行以下命令:
docker-compose -f traefik.yml up -d
WordPress 的步骤
- 过程与我们为 Drupal 所遵循的相同,唯一的区别在于步骤 2,我们必须克隆 Docker4Wordpress 而不是。
重要提示:确保此行未被注释:NGINX_SERVER_ROOT: /var/www/html/web
注意事项:
- 您可以从 http://pma.d8base.docker.localhost/ 导入数据库 将 d8base 替换为步骤 1 中创建的文件夹名称
- 您的站点应可通过 http://d8base.docker.localhost/ 访问 将 d8base 替换为步骤 1 中创建的文件夹名称
- 在遵循本教程之前,请确保您的计算机的端口 80 未被任何其他应用程序/站点使用。
- Drupal:如果您需要运行 drush、composer 或 drupal console 命令,请运行命令
docker exec -it d8base_php /bin/bash
并cd web
将 d8base 替换为步骤 1 中创建的文件夹名称 - 如果您需要将 composer 版本降级到版本 1,请运行:
composer self-update --1
- 您可能需要编辑 /etc/hosts 文件并添加一个条目,例如:
127.0.0.1 d8base.docker.localhost
- 重要提示:每次重启 docker 时,您都需要从 traefik 文件夹运行
docker-compose -f traefik.yml up -d
。 - 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',
);