作为一名 Drupal 开发者,你是否经历过这样的痛苦:
* 电脑上装了 PHP 7.4,结果项目需要 PHP 8.1,升级又怕影响其他项目。
* 每次换电脑或新同事入职,光是配置 Nginx、MySQL、Composer 就要折腾一整天。
* 本地跑得好好的代码,推到线上因为环境差异突然报错。
如果你被这些问题困扰,那么 **DDEV** 将是你眼中的“救星”。它已成为 Drupal 社区推荐的标准本地开发工具。今天我们就来聊聊 DDEV 到底是什么,以及如何在 Drupal 开发中熟练使用它。
---
## 一、 什么是 DDEV?
简单来说,DDEV 是一个基于 **Docker** 的本地 PHP 开发环境管理工具。
你不需要去写复杂的 `docker-compose.yml` 文件,也不需要手动配置虚拟主机。DDEV 把这一切都封装好了。它为你提供了:
* **隔离性:** 项目 A 用 PHP 8.1,项目 B 用 PHP 8.3,互不干扰。
* **一致性:** 你的本地环境和生产服务器保持高度一致。
* **开箱即用:** Nginx/Apache、MySQL/MariaDB、PHP、Composer、Drush、Node.js 全部帮你配好。
## 二、 上车前的准备
在开始之前,你的电脑只需要安装两样东西:
1. **Docker Desktop**:DDEV 的底层引擎。
* Mac/Windows 用户直接去官网下载安装包即可。
* Linux 用户需安装 Docker Engine。
2. **DDEV 客户端**:
* **Mac (Homebrew):** `brew install ddev/ddev/ddev`
* **Windows (Chocolatey):** `choco install ddev`
* **Linux:** 官方提供脚本安装,非常简单。
安装完成后,在终端输入 `ddev --version`,看到版本号即代表就绪。
## 三、 五分钟启动一个 Drupal 站点
让我们通过一个实战案例,看看 DDEV 有多快。
### 1. 创建项目目录
无论你是新建项目还是克隆现有代码,第一步都是进入项目根目录。
```bash
mkdir my-drupal-site
cd my-drupal-site
```
### 2. 初始化配置(核心步骤)
在目录下运行:
```bash
ddev config
```
DDEV 会自动检测到这是一个 Drupal 项目,并询问你几个简单问题:
* **Project name:** 随便起,这将决定你的本地域名(如 `my-drupal-site.ddev.site`)。
* **Docroot Location:** Drupal 通常默认是 `web` 目录。
* **Project Type:** 自动识别为 `drupal10` 或 `drupal11`。
完成后,目录下会生成一个 `.ddev` 文件夹。这就是 DDEV 的核心配置所在。
### 3. 一键安装 Drupal
如果你是从零开始,直接运行以下命令,DDEV 会帮你下载 Drupal 核心并完成安装:
```bash
# 下载 Drupal 代码
ddev composer create drupal/recommended-project
# 使用 Drush 安装站点(数据库自动创建)
ddev drush site:install --account-name=admin --account-pass=password
```
### 4. 启动引擎
见证奇迹的时刻:
```bash
ddev start
```
终端会滚动一堆日志,最后自动打开浏览器,访问 `https://my-drupal-site.ddev.site`。你的 Drupal 站点已经跑起来了,甚至自带了 HTTPS 证书!
---
## 四、 常用命令速查表
日常开发中,你只需要记住这几个命令:
| 命令 | 作用 | 备注 |
| :--- | :--- | :--- |
| `ddev start` | 启动项目 | 自动在浏览器打开 |
| `ddev stop` | 停止项目 | 容器停止,数据保留 |
| `ddev poweroff` | 彻底关闭 | 停止所有项目,释放 Docker 资源 |
| `ddev ssh` | 进入容器 | 进入 Web 容器内部执行 Linux 命令 |
| `ddev drush <cmd>` | 执行 Drush | 例如:`ddev drush cr` |
| `ddev composer <cmd>`| 执行 Composer | 例如:`ddev composer require devel` |
| `ddev describe` | 查看详情 | 查看数据库端口、URL 等信息 |
| `ddev log` | 查看日志 | 排查服务器报错必备 |
---
## 五、 那些让人“真香”的隐藏功能
DDEV 不仅仅是跑代码,它还集成了很多开发神器。
### 1. 数据库管理
不需要额外安装 Navicat 或 Sequel Pro(当然你愿意也可以)。
运行 `ddev describe`,你会看到 `phpMyAdmin` 的链接,点击即可进入图形化管理界面。
### 2. 邮件测试
本地开发发邮件是个大坑。DDEV 内置了 **Mailhog**。
所有通过 Drupal 发出的邮件,都会被 Mailhog 拦截。你可以通过 `ddev describe` 里的链接查看邮件内容,再也不用担心开发环境误发邮件给真实用户了。
### 3. Xdebug 调试
很多开发者配置 Xdebug 很头疼。在 DDEV 里,只需要一句话:
```bash
ddev xdebug on
```
打开你的 IDE(VS Code 或 PhpStorm),配置好监听端口 9003,断点调试立即可用。调试完记得 `ddev xdebug off` 关闭,以免占用资源。
### 4. 数据库导入导出
团队协作时,同步数据库结构非常方便:
```bash
# 导入数据库(支持 .sql, .sql.gz, .tar)
ddev import-db --file=/path/to/db.sql.gz
# 导出数据库
ddev export-db --file=/path/to/backup.sql.gz
```
---
## 六、 进阶技巧:配置文件
如果你想修改 PHP 版本或者安装额外的 PHP 扩展,不需要去改 Dockerfile,直接编辑 `.ddev/config.yaml` 文件。
例如,将 PHP 版本改为 8.2:
```yaml
name: my-drupal-site
type: drupal10
docroot: web
php_version: "8.2" # 修改这里
database:
type: mysql
version: "8.0"
```
修改后,运行 `ddev restart` 即可生效。
---
## 七、 结语
DDEV 彻底改变了 Drupal 的开发体验。它让开发者从繁琐的环境配置中解脱出来,把精力集中在编写代码和构建功能上。
**最佳实践建议:**
将 `.ddev` 目录提交到你的 Git 仓库中。这样,当团队新成员克隆代码后,只需运行 `ddev start` 就能立刻进入开发状态,真正做到了“代码即环境”。
如果你还在用 XAMPP 或手动配置 Vagrant,不妨现在就试试 DDEV,相信你会爱上它的!
评论