跳转到主要内容
你行网

Main navigation

  • 首页
  • Drupal
  • 编程与开发
  • 数据库
  • 操作系统与应用
  • 服务器与运维
  • 社区
User account menu
  • 登录

面包屑

  1. 首页

【Drupal 开发实战】告别环境配置噩梦:DDEV 使用全攻略

由 hrs, 14 三月, 2026

作为一名 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,相信你会爱上它的!

  • 登录或注册以发表评论
  • 10 次浏览
内容类型分类
drupal cms
文章归类
drupal

文章标签

  • DDEV

评论

最新文章

  • 内容审核通知 content_moderation_notifications 模块简介
  • 调度程序 scheduler 模块简介
  • 工作流当中的草稿,已发布,很好理解,已归档是怎么理解。
  • 你行网 https://www.dwoke.com seo 关键词
  • brew 是什么命令
  • drupal 9 或 drpal 10 国内内容分享模块 Will Nice social share
  • Views Slideshow - Views Vanilla JavaScript Slideshow (VVJS) 简介和安装方法
  • drupal 11 安装statistics 统计模块
  • drupal11 扩展中找不到Statistics模块
  • drupal11 设置中的“总结摘要”和“切边的” 有什么区别

标签云

adsenseAIapacheaptbadblocksbreadcrumbbrewcentoscertbotckeditorcommandcomposercookiecsharpCSScurlC语言DDEVdiffdnsdockerDreamweaverDrupaldrupal 7drupal 8drupal 9drupal10drupal 11drushExcelfirewalldfirmwareflameshotformgimpgitgzipHTMLHTML5httpdhttp验证inputipjavaJavaScriptJavaSrciptkernelKVMLinuxmavenmbstringmod_expires 模块Mysqlnerdtreenetstatnetworknginxnpmpasswordphpphpmyadminphp扩展RFIDRSSselinuxSEOsharesimple_adsensesshsslStatisticssuperfishsurroundtagcloudstitleubuntuuploadprogressvimVPNVUEWireGuardwpsxdebugyoutubeyumzip主题(theme)二进制五笔分类术语压缩解压哈希值声音字段密码工作流快捷键摄影权限果树种植标签优化模块(module)源地址版本号电子秤电脑基础电脑技巧短信验证端口简介算法网站备份网站运营翻译英语表单视图(views)计算机基础赚钱超五类线网线邮件验证重定向重定向,301错误颜色

相关文章

  • 内容审核通知 content_moderation_notifications 模块简介
  • 调度程序 scheduler 模块简介
  • 工作流当中的草稿,已发布,很好理解,已归档是怎么理解。
  • 你行网 https://www.dwoke.com seo 关键词
  • drupal 9 或 drpal 10 国内内容分享模块 Will Nice social share
  • Views Slideshow - Views Vanilla JavaScript Slideshow (VVJS) 简介和安装方法
  • drupal 11 安装statistics 统计模块
  • drupal11 扩展中找不到Statistics模块
  • drupal11 设置中的“总结摘要”和“切边的” 有什么区别
  • ddev 基本命令中文对照表
RSS源

关于我们

  • 你行网简介
  • 关于我们
  • 版权声明

网站相关

  • 社区论坛
  • 网址导航
  • 网站地图
  • 联系我们

友情链接

  • 英文学习

友情链接2

  • drupal 大学
  • 水滴间
  • 爱码网
  • Apache

友情链接3

  • MySQL
  • php
  • drupalcode

友情链接4

  • Drupal 中国
  • Drupal 老葛
  • 宁浩网
  • drupal 台湾
Copyright © 2019 - 2021 你行网 版权所有  粤ICP备19072650号-1