关于 ddev-expert
ddev-expert 是管理 DDEV 开发环境的技能参考,提供项目、数据库、调试、Xdebug 和自定义服务的命令与配置示例,适用于使用 DDEV 的开发者,包括 Drupal 项目开发者。
主要功能
- 01项目生命周期命令
- 02DDEV 配置示例
- 03数据库与容器故障排查
- 04Mutagen 同步诊断
- 05Xdebug 控制与设置
- 06自定义服务和命令
适用场景
- 01启动或重启 DDEV 项目
- 02诊断容器和数据库问题
- 03检查 Mutagen 文件同步
- 04配置 Xdebug 或自定义服务
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ edutrul/ drupal-ai --skill ddev-expert安装后在 Claude Code 中输入/ddev-expert确认已加载。
附带文件README.md
详细介绍
DDEV 专家
常用命令
# Project
ddev start | stop | restart | poweroff | delete
# Execute
ddev drush <cmd> | ddev composer <cmd> | ddev exec <cmd> | ddev ssh
# Database
ddev mysql | ddev export-db | ddev import-db --file=dump.sql
ddev snapshot | ddev restore
# Utilities
ddev describe # URLs and project info
ddev logs -f # Follow logs
ddev launch # Open in browser
ddev launch -m # Open Mailpit UI
配置(.ddev/config.yaml)
name: my-project
type: drupal # auto-detects version; or drupal11/drupal10
docroot: web
php_version: "8.3"
webserver_type: nginx-fpm
database:
type: mariadb
version: "10.11"
additional_hostnames:
- api.my-project.ddev.site
webimage_extra_packages: [php8.3-imagick]
mutagen_enabled: true # macOS/Windows performance
覆盖配置: .ddev/config.local.yaml(已加入 gitignore 的个人配置)
PHP 覆盖配置: .ddev/php/*.ini
故障排除
ddev composer create-project 失败(“not allowed to be present”):
暂时将额外目录(.claude/、.git/)移走,运行 create-project,再移回。
端口冲突:
ddev poweroff && sudo lsof -i :80
容器问题:
ddev restart
ddev debug refresh # Rebuild containers
ddev delete && ddev start # Nuclear option
数据库: 主机为 db(在容器内)或 127.0.0.1:PORT(在容器外)。使用 ddev describe 检查端口。
权限: ddev exec chown -R $(id -u):$(id -g) .
Drush 中的 PHP 弃用警告 — 创建 .ddev/php/drush.ini:
[PHP]
error_reporting = 22527 ; E_ALL & ~E_DEPRECATED
display_errors = Off
log_errors = On
error_log = /tmp/php-errors.log
Docker Desktop overlay2 I/O 错误 — 普通重启并不足够:
killall -9 Docker # then relaunch Docker Desktop
Docker 崩溃后 Mutagen 同步卡住:
ddev poweroff && ddev start
# If still stuck:
ddev stop
~/.ddev/bin/mutagen daemon stop
~/.ddev/bin/mutagen daemon start
ddev mutagen reset && ddev start
ddev mutagen status -l # Detailed sync status
ddev mutagen monitor # Real-time progress
调试命令:
ddev debug capabilities | ddev debug router
ddev exec env
Xdebug
ddev xdebug on | off | status
.ddev/php/xdebug.ini:
[xdebug]
xdebug.mode=debug,develop,coverage
模式:debug(单步调试)、develop(增强错误信息)、coverage、profile。
完整的 IDE 设置请参阅 README.md(VS Code / PHPStorm)。
自定义服务
添加 .ddev/docker-compose.<service>.yaml。常见模式:
services:
redis:
image: redis:7-alpine
container_name: ddev-${DDEV_SITENAME}-redis
labels:
com.ddev.site-name: ${DDEV_SITENAME}
com.ddev.approot: $DDEV_APPROOT
expose:
- "6379"
Solr、Elasticsearch、Redis 的完整配置以及 Drupal settings.php 片段请参阅 README.md。
自定义命令
创建 .ddev/commands/web/<name>(或 host/、db/):
#!/bin/bash
## Description: Full site refresh
## Usage: refresh
set -e
drush sql:drop -y && drush sql:cli < /var/www/html/reference.sql
drush config:import -y && drush updatedb -y && drush cache:rebuild
执行 chmod +x,然后运行 ddev <name>。
性能(macOS/Windows)
ddev config global --mutagen-enabled # Enable globally
ddev mutagen status | sync | reset
NFS、tmpfs 和文件同步排除模式请参阅 README.md。