
Comment utiliser DDEV pour démarrer rapidement Craft CMS et d'autres plateformes populaires
Les environnements de développement local peuvent être un véritable casse-tête. Vous êtes probablement déjà passé par là - passer des heures à essayer de faire correspondre les versions PHP, configurer les bases de données et comprendre pourquoi la configuration de votre collègue fonctionne mais pas la vôtre. Notre expérience démontre que les environnements locaux incohérents sont l'une des plus grandes pertes de temps pour les équipes de développement, causant souvent des retards qui auraient pu être consacrés à créer des fonctionnalités.
DDEV change complètement la donne. Cet outil basé sur Docker vous offre des environnements de développement cohérents et reproductibles pour Craft CMS, WordPress, Drupal et des dizaines d'autres plateformes. Dans ce guide, vous apprendrez exactement comment configurer DDEV, démarrer un nouveau projet Craft CMS 5 en quelques minutes et le configurer selon vos besoins spécifiques.
Prérequis
Avant de commencer, vous aurez besoin de trois éléments installés sur votre machine :
1. Docker Desktop - La fondation sur laquelle DDEV fonctionne
- Téléchargez depuis docker.com/products/docker-desktop/
- Assurez-vous qu'il fonctionne avant de continuer
2. DDEV lui-même - L'outil que nous utiliserons
- L'installation varie selon le système d'exploitation
- Guide complet sur ddev.readthedocs.io/en/stable/#installation
3. Composer - Pour gérer les dépendances PHP
- Requis pour installer Craft CMS et ses extensions
- Obtenez-le sur getcomposer.org
Une fois ces éléments installés, vérifiez que tout fonctionne en exécutant :
docker version ddev version composer --version
Si les trois commandes retournent des informations de version, vous êtes prêt à commencer.
Étape par étape : Configurer Craft CMS 5 avec DDEV
Parcourons la création d'un tout nouveau projet Craft CMS 5. Ces mêmes principes s'appliquent à d'autres plateformes, que nous couvrirons plus tard.
Étape 1 : Créer le répertoire de votre projet
Commencez par créer un nouveau répertoire pour votre projet et naviguez-y :
mkdir my-craft-site cd my-craft-site
Étape 2 : Configurer DDEV pour Craft CMS
Maintenant, indiquez à DDEV quel type de projet c'est :
ddev config --project-type=craftcms --docroot=web --create-docroot
Cette commande fait trois choses importantes :
- Définit le type de projet à craftcms, ce qui indique à DDEV d'utiliser les paramètres spécifiques à Craft
- Définit web comme votre répertoire public (par défaut pour Craft)
- Crée le répertoire web s'il n'existe pas déjà
Étape 3 : Démarrer l'environnement DDEV
ddev start
Ceci télécharge les conteneurs Docker nécessaires et les démarre. Vous verrez la sortie montrant la création de la base de données et le démarrage des services. La première fois que vous exécutez ceci, cela peut prendre quelques minutes pendant que Docker télécharge les images requises.
Étape 4 : Installer Craft CMS
Avec DDEV en marche, installez Craft CMS en utilisant Composer :
ddev composer create -y "craftcms/craft"
Ceci télécharge Craft CMS 5 et toutes ses dépendances. Le drapeau -y répond automatiquement "oui" aux invites de Composer concernant la suppression des fichiers existants.
Étape 5 : Compléter l'assistant de configuration
Après que Composer ait terminé, l'assistant de configuration de Craft démarrera automatiquement dans votre terminal. On vous demandera de :
- Définir votre nom d'utilisateur et mot de passe administrateur
- Configurer le nom et l'URL de votre site
- Choisir votre langue préférée
DDEV a déjà configuré votre connexion à la base de données, donc vous n'avez pas à vous soucier de ces détails.
Étape 6 : Accéder à votre nouveau site
Votre site est maintenant prêt ! Accédez-y à :
https://my-craft-site.ddev.site
Ou exécutez simplement :
ddev launch
Ceci ouvre votre navigateur par défaut à la bonne URL.
Configurer d'autres plateformes populaires
Le processus pour d'autres SGC suit le même modèle. Voici des configurations rapides pour les plateformes les plus communes :
WordPress
mkdir my-wordpress && cd my-wordpress ddev config --project-type=wordpress --docroot=public --create-docroot ddev start ddev composer create "johnpbloch/wordpress" . ddev launch
WordPress utilise public comme racine de document par convention lorsqu'installé via Composer.
Drupal 11
mkdir my-drupal && cd my-drupal ddev config --project-type=drupal11 --docroot=web --create-docroot ddev start ddev composer create "drupal/recommended-project:^11" . ddev launch
Drupal 11 nécessite PHP 8.2 ou supérieur, ce que DDEV gère automatiquement quand vous spécifiez le type de projet drupal11.
Laravel
mkdir my-laravel-app && cd my-laravel-app ddev config --project-type=laravel --docroot=public --create-docroot ddev start ddev composer create "laravel/laravel:^12" . ddev launch
Les commandes artisan de Laravel fonctionnent parfaitement dans DDEV en utilisant ddev exec.
Exemples de code et configuration
Comprendre la configuration de DDEV vous aide à personnaliser les environnements selon vos besoins spécifiques. Regardons le fichier de configuration principal et quelques exemples pratiques.
Le fichier de configuration principal
Après avoir exécuté ddev config, vous trouverez un fichier .ddev/config.yaml dans votre projet. Voici à quoi ressemble une configuration typique de Craft CMS :
name: my-craft-site type: craftcms docroot: web php_version: "8.2" router_http_port: "80" router_https_port: "443" xdebug_enabled: false additional_hostnames: [] additional_fqdns: [] database: type: mariadb version: "10.6"
Vous pouvez modifier ce fichier pour changer les versions PHP, ajouter des noms d'hôte personnalisés ou ajuster les paramètres de base de données.
Ajouter Vite pour la compilation des ressources
Plusieurs projets Craft CMS utilisent Vite pour gérer JavaScript et CSS. Voici comment configurer DDEV pour exécuter Vite automatiquement :
# Ajouter à .ddev/config.yaml
nodejs_version: '20'
web_extra_exposed_ports:
- name: vite
container_port: 3000
http_port: 3000
https_port: 3001
web_extra_daemons:
- name: 'vite'
command: 'npm install && npm run dev'
directory: /var/www/htmlCette configuration :
- Installe Node.js 20 dans votre conteneur
- Expose les ports du serveur de développement de Vite
- Exécute automatiquement npm install et démarre le serveur de développement
Paramètres PHP personnalisés
Besoin d'ajuster les limites de mémoire PHP ou le temps d'exécution ? Créez .ddev/php/custom.ini :
memory_limit = 512M max_execution_time = 120 upload_max_filesize = 100M post_max_size = 100M
DDEV applique automatiquement ces paramètres lorsque vous redémarrez.
Importations et exportations de base de données
Travailler avec des projets existants signifie souvent importer des bases de données. DDEV rend cela simple :
# Importer une base de données ddev import-db --file=backup.sql.gz # Exporter la base de données actuelle ddev export-db --file=backup.sql.gz # Accéder directement à la base de données ddev mysql
La commande d'importation gère divers formats incluant .sql, .sql.gz et .zip.
Erreurs courantes à éviter
Nous avons constaté que les développeurs novices avec DDEV rencontrent souvent les mêmes problèmes. Voici comment les éviter :
1. Oublier de démarrer Docker Desktop
DDEV nécessite que Docker soit en marche. Si vous obtenez des erreurs indiquant que Docker n'est pas disponible, vérifiez que Docker Desktop fonctionne dans votre barre d'état système ou barre de menu.
2. Conflits de ports
Si un autre service utilise les ports 80 ou 443, DDEV ne démarrera pas. Vous avez deux options :
Arrêter le service en conflit :
# Sur macOS, arrêter Apache sudo apachectl stop # Sur Windows, arrêter IIS iisreset /stop
Ou changer les ports de DDEV dans .ddev/config.yaml :
router_http_port: "8080" router_https_port: "8443"
3. Mauvaises informations d'identification de base de données dans .env
DDEV crée automatiquement les informations d'identification de base de données. Utilisez toujours ces valeurs dans votre fichier .env :
DB_SERVER=db DB_PORT=3306 DB_DATABASE=db DB_USER=db DB_PASSWORD=db
Exécutez ddev describe pour voir tous les détails de connexion.
4. Ne pas enregistrer la configuration .ddev
Votre répertoire .ddev devrait être dans le contrôle de version. Cela garantit que tous les membres de votre équipe utilisent des environnements identiques. Ajoutez ceci à votre .gitignore :
.ddev/db_snapshots .ddev/import-db
Mais enregistrez tout le reste dans .ddev/.
5. Exécuter des commandes en dehors de DDEV
Exécutez toujours les commandes Composer, npm et artisan dans DDEV :
# Incorrect composer require craftcms/commerce # Correct ddev composer require craftcms/commerce
Ceci garantit que vous utilisez la bonne version PHP et avez accès à toutes les dépendances.
Étapes de test et de vérification
Après avoir configuré votre projet, vérifiez que tout fonctionne correctement :
1. Vérifier l'état des services
ddev describe
Ceci affiche tous les services en cours d'exécution, les URL et les informations d'identification de base de données. Tous les services devraient apparaître comme "running".
2. Tester la connexion à la base de données
ddev mysql -e "SHOW TABLES;"
Ceci liste toutes les tables de base de données. Pour une nouvelle installation Craft, vous devriez voir des tables comme craft_elements, craft_users, etc.
3. Vérifier la version PHP
ddev exec php -v
Assurez-vous d'exécuter la version PHP attendue pour votre projet.
4. Tester la fonctionnalité de courriel
DDEV inclut Mailhog pour intercepter les courriels :
https://my-craft-site.ddev.site:8025
Envoyez un courriel test depuis votre application et vérifiez qu'il apparaît dans Mailhog.
5. Vérifier l'accès au site
Essayez d'accéder à votre site via :
- L'URL HTTPS : https://my-craft-site.ddev.site
- L'URL HTTP : http://my-craft-site.ddev.site
- Le port direct si personnalisé : http://localhost:8080
Tous devraient fonctionner, HTTPS étant le défaut.
6. Valider les dépendances Composer
ddev composer validate ddev composer check-platform-reqs
Ces commandes garantissent que votre composer.json est valide et que toutes les exigences de plateforme sont satisfaites.
Conseils de configuration avancée
Une fois à l'aise avec l'utilisation de base de DDEV, ces techniques avancées peuvent améliorer votre flux de travail :
Utiliser les hooks DDEV
Automatisez les tâches répétitives avec des hooks dans .ddev/config.yaml :
hooks:
post-start:
- exec: composer install
- exec: php craft migrate/all
- exec: php craft project-config/applyCes commandes s'exécutent automatiquement après ddev start.
Ajouter Redis pour la mise en cache
Installez l'extension Redis :
ddev get ddev/ddev-redis
Puis configurez Craft pour l'utiliser dans config/app.php :
'components' => [
'redis' => [
'class' => yii\redis\Connection::class,
'hostname' => 'redis',
'port' => 6379,
'database' => 0,
],
],Configurer plusieurs sites
Exécutez plusieurs projets simultanément en garantissant des noms uniques :
# Projet 1 ddev config --project-name=client-site # Projet 2 ddev config --project-name=internal-tool
Chacun obtient sa propre URL et base de données.
Partager votre site local
Besoin de montrer à un client votre travail en cours ? Utilisez ngrok :
ddev share
Ceci crée une URL publique qui tunnel vers votre site local. Parfait pour des démos rapides ou tester des webhooks.
Travailler avec des projets existants
Les équipes avec qui nous travaillons rapportent que la migration de projets existants vers DDEV est souvent plus facile que prévu. Voici un flux de travail de migration typique :
1. Cloner votre dépôt
git clone https://github.com/your-org/your-project.git cd your-project
2. Configurer DDEV
Si le projet a déjà .ddev/config.yaml, exécutez simplement :
ddev start
Sinon, configurez-le :
ddev config --project-type=craftcms --docroot=web
3. Installer les dépendances
ddev composer install ddev npm install # si vous avez des outils de build frontend
4. Importer la base de données
Obtenez une sauvegarde de base de données depuis votre environnement de préproduction ou de production :
ddev import-db --file=production-backup.sql.gz
5. Mettre à jour les variables d'environnement
Copiez .env.example vers .env et mettez à jour avec les informations d'identification de base de données de DDEV :
cp .env.example .env # Éditer .env avec les informations d'identification de DDEV
6. Appliquer la configuration du projet
Pour les projets Craft CMS :
ddev exec php craft project-config/apply
7. Compiler les ressources frontend
Si votre projet utilise des outils de build :
ddev npm run build # ou ddev npm run dev # pour le mode développement
Votre projet existant devrait maintenant fonctionner localement avec DDEV.
Considérations de performance
DDEV fonctionne bien dès le départ, mais vous pouvez le rendre encore plus rapide :
Utiliser Mutagen pour la synchronisation de fichiers (macOS)
Sur macOS, activez Mutagen pour une meilleure performance du système de fichiers :
ddev config --performance-mode=mutagen ddev start
Ceci accélère considérablement les opérations sur les projets avec de nombreux fichiers.
Allouer suffisamment de ressources Docker
Dans les paramètres Docker Desktop, allouez au moins :
- 4 Go de RAM (8 Go préférable)
- 4 processeurs
- 60 Go d'espace disque
Désactiver les services inutilisés
Si vous n'avez pas besoin de certains services, désactivez-les :
# .ddev/config.yaml omit_containers: ["ddev-ssh-agent"]
Utiliser des paramètres similaires à la production
Faites correspondre la version PHP et le type de base de données de votre environnement de production :
php_version: "8.2" database: type: mysql version: "8.0"
Ceci aide à détecter les problèmes de compatibilité tôt.
Guide de dépannage
Quand les choses tournent mal, voici comment résoudre les problèmes courants :
DDEV ne démarre pas
1. Vérifiez que Docker fonctionne
2. Recherchez les conflits de ports : ddev logs
3. Essayez une réinitialisation complète : ddev poweroff && ddev start
Performance lente
1. Activez Mutagen (macOS) : ddev config --performance-mode=mutagen
2. Augmentez les ressources Docker
3. Excluez node_modules de la synchronisation si vous utilisez Mutagen
Erreurs de connexion à la base de données
1. Vérifiez les informations d'identification avec ddev describe
2. Vérifiez le service de base de données : ddev logs -s db
3. Redémarrez la base de données : ddev restart
Erreurs de mémoire Composer
Exécutez Composer avec une mémoire illimitée :
ddev exec COMPOSER_MEMORY_LIMIT=-1 composer update
Avertissements de certificat SSL
Faites confiance à l'autorité de certification de DDEV :
mkcert -install
Conclusion
DDEV élimine les difficultés du développement local. Au lieu de passer des heures à configurer des environnements, vous pouvez avoir un site Craft CMS 5 fonctionnel en moins de cinq minutes. La cohérence qu'il offre signifie moins de problèmes "ça fonctionne sur ma machine" et une intégration plus facile pour les nouveaux membres de l'équipe.
La flexibilité de l'outil va au-delà du simple démarrage rapide. Que vous travailliez avec Vite pour la compilation de ressources, ayez besoin de Redis pour la mise en cache ou souhaitiez reproduire exactement votre environnement de production, DDEV gère tout cela à travers des fichiers de configuration simples qui vivent directement dans votre projet.
Notre expérience montre que les équipes adoptant DDEV rapportent passer beaucoup moins de temps sur les problèmes d'environnement et plus de temps à réellement créer des fonctionnalités. La capacité de démarrer n'importe quel projet avec juste ddev start change la façon dont les équipes travaillent, surtout lorsqu'elles jonglent entre plusieurs projets.
Configurer DDEV pour vos projets Craft CMS nécessite une configuration initiale, mais l'investissement est rapidement rentabilisé. Si vous évaluez des outils de développement local pour votre équipe ou avez besoin d'aide pour configurer DDEV afin qu'il corresponde à votre environnement de production spécifique, nous pouvons évaluer votre flux de travail actuel et recommander la meilleure configuration pour vos besoins. Nous avons aidé de nombreuses équipes à migrer de divers outils de développement local vers DDEV, en nous assurant que leurs configurations supportent à la fois les projets actuels et la croissance future.
