
Environnement de développement Mac (2026)
Configurez un environnement dev local sur Mac : MAMP, Laravel Valet, Docker, domaines .test, HTTPS local avec mkcert et checklist.
Gérez vos fichiers hosts sans terminal
ToggleHosts vous permet de gérer vos environnements visuellement sur Windows, macOS et Linux, avec flush DNS automatique et sauvegardes.
Paiement unique
Un environnement de développement local bien configuré est la base d'un workflow productif. Sur Mac, plusieurs options s'offrent à vous selon vos besoins. Ce guide couvre tout ce dont vous avez besoin pour créer un setup moderne et efficace en 2026.
Comment configurer un environnement de développement local sur Mac
Un setup de dev local Mac moderne combine un gestionnaire de paquets (Homebrew), un gestionnaire de versions de runtime (nvm, pyenv, rbenv), un serveur web local ou Docker, des domaines .test personnalisés via le fichier hosts, et du HTTPS local avec mkcert. Les sections ci-dessous détaillent chaque brique pas à pas.
Les composants d'un environnement local moderne
Un environnement de développement complet comprend :
- Serveur web (Apache, Nginx)
- Runtime/langage (PHP, Node.js, Python)
- Base de données (MySQL, PostgreSQL, SQLite)
- Gestionnaire de domaines locaux (fichier hosts, dnsmasq)
- Certificats SSL (pour HTTPS local)
- Outils de productivité (Terminal, éditeur)
MAMP : la solution débutant-friendly
MAMP (Mac, Apache, MySQL, PHP) est la solution tout-en-un la plus simple.
Points forts
- Installation en 2 minutes
- Interface graphique complète
- phpMyAdmin intégré
- Idéal pour WordPress
Points faibles
- Performance moyenne
- Version gratuite limitée
- Pas de virtualisation
Configuration de domaines locaux avec MAMP
Par défaut, MAMP utilise localhost:8888. Pour des domaines personnalisés, éditez le fichier hosts :
127.0.0.1 monprojet.testLaravel Valet : performance maximale
Valet est une solution minimaliste et ultra-rapide pour PHP sur Mac.
Points forts
- Ultra-rapide (Nginx + PHP-FPM)
- Configuration minimale
- Domaines automatiques en .test
- HTTPS en une commande
Points faibles
- PHP uniquement
- Pas de conteneurisation
Configuration Valet
# Installer Valet
composer global require laravel/valet
valet install
# Parquer un dossier de projets
cd ~/Sites
valet park
# Sécuriser avec HTTPS
cd ~/Sites/mon-projet
valet secureDocker : flexibilité maximale
Docker permet de créer des environnements isolés et reproductibles.
Points forts
- Environnements isolés
- Reproductibles (même config pour toute l'équipe)
- Flexibilité maximale
- Proche de la production
Points faibles
- Courbe d'apprentissage
- Consommation ressources
Exemple docker-compose.yml
version: '3.8'
services:
web:
image: php:8.3-apache
ports:
- "80:80"
volumes:
- ./src:/var/www/html
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: myappGestion des domaines locaux
Le fichier hosts
Pour comprendre en détail le fichier hosts, consultez notre guide complet sur le fichier hosts.
# /etc/hosts
127.0.0.1 localhost
# Projets
127.0.0.1 blog.test
127.0.0.1 api.blog.test
# Client A
127.0.0.1 clienta.testTLDs recommandés
| TLD | Recommandé | Notes |
|---|---|---|
| .test | Oui | Réservé IETF |
| .localhost | Oui | Toujours local |
| .local | Non | Conflit Bonjour Mac |
| .dev | Non | Domaine réel, HTTPS requis |
Automatisation avec dnsmasq
Pour éviter d'éditer le fichier hosts pour chaque projet :
# Installer dnsmasq
brew install dnsmasq
# Rediriger tous les .test vers localhost
echo "address=/.test/127.0.0.1" >> /usr/local/etc/dnsmasq.conf
# Créer un resolver
sudo mkdir -p /etc/resolver
echo "nameserver 127.0.0.1" | sudo tee /etc/resolver/test
# Démarrer dnsmasq
sudo brew services start dnsmasqMaintenant, n'importe quel domaine en .test pointe vers localhost !
HTTPS local avec mkcert
Pourquoi HTTPS en local ?
- Tester Service Workers, Geolocation API
- Cookies sécurisés (SameSite, Secure)
- Éviter différences dev/prod
- OAuth et redirections
Créer des certificats
brew install mkcert
mkcert -install # Installe le CA racine
# Créer un certificat
mkcert myproject.test "*.myproject.test" localhostOutils de productivité essentiels
Terminal
brew install --cask iterm2Oh My Zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"Gestion de versions Node
brew install fnm
fnm install 20Client base de données
brew install --cask tableplusOrganisation des projets
Structure recommandée
~/Sites/
├── clients/
│ ├── client-a/
│ └── client-b/
├── personal/
│ ├── blog/
│ └── portfolio/
└── experiments/Fichier hosts bien organisé
# ===================
# LOCALHOST
# ===================
127.0.0.1 localhost
::1 localhost
# ===================
# PROJETS PERSONNELS
# ===================
127.0.0.1 blog.test
127.0.0.1 portfolio.test
# ===================
# CLIENT: Acme Corp
# ===================
127.0.0.1 acme.test
127.0.0.1 api.acme.testAvec ToggleHosts
L'application ToggleHosts simplifie cette gestion :
- Import/export de configurations
- Basculement rapide entre environnements
- Recherche instantanée
- Historique des modifications
Checklist de configuration
Première installation
- [ ] Installer Homebrew
- [ ] Installer Git
- [ ] Configurer SSH pour GitHub
- [ ] Installer serveur local (MAMP/Valet/Docker)
- [ ] Configurer fichier hosts ou dnsmasq
- [ ] Installer mkcert pour HTTPS
- [ ] Installer gestionnaires de versions
- [ ] Configurer terminal (iTerm2 + Oh My Zsh)
Nouveau projet
- [ ] Créer le dossier dans ~/Sites
- [ ] Ajouter entrée hosts
- [ ] Créer certificats SSL si nécessaire
- [ ] Configurer base de données
- [ ] Tester l'accès via le domaine local
Choisir la bonne stack
WordPress ou PHP classique
Choisissez MAMP, Herd ou Valet. MAMP est simple pour débuter, Valet est plus rapide pour les développeurs PHP, et Herd simplifie beaucoup la gestion des versions.
Laravel ou Symfony
Valet convient très bien aux projets PHP simples. Docker devient préférable si le projet dépend de Redis, workers, queues, services externes ou d'une configuration proche de la production.
Next.js, Node.js ou API
Un serveur dev natif suffit souvent, mais les domaines .test et HTTPS local deviennent importants pour les cookies, OAuth, webhooks et service workers.
Équipe ou agence
Standardisez les domaines locaux, les ports et les certificats. Documentez les mappings hosts dans le README et partagez les profils ToggleHosts au lieu de copier-coller des lignes à la main.
Dépannage rapide
Quand un domaine local ne répond pas :
dscacheutil -q host -a name monprojet.test
ping monprojet.test
lsof -i :3000
curl -I http://127.0.0.1:3000
curl -I http://monprojet.test:3000Si l'IP directe fonctionne mais pas le domaine, corrigez DNS/hosts. Si les deux échouent, le serveur local n'écoute pas au bon endroit.
Conclusion
Un environnement de développement local bien configuré vous fera gagner des heures chaque semaine. Que vous choisissiez MAMP pour sa simplicité, Valet pour sa performance, ou Docker pour sa flexibilité, les principes restent les mêmes :
- Domaines locaux clairs : .test pour éviter les conflits
- HTTPS systématique : mkcert rend ça trivial
- Organisation rigoureuse : fichier hosts commenté ou outil comme ToggleHosts
- Automatisation : dnsmasq, scripts, alias
Avec ces fondations solides, vous pouvez vous concentrer sur ce qui compte : écrire du code.
Sources et ressources externes
- Documentation réseau de Docker
- Documentation officielle de WordPress
- Guide d’utilisation du Terminal (Assistance Apple)
Questions fréquentes
MAMP pour débutants et WordPress. Laravel Valet pour PHP/Laravel avec performances max. Docker pour environnements reproductibles multi-services.
.test est recommandé car réservé par l'IETF. Évitez .local sur Mac (conflit Bonjour) et .dev (domaine réel nécessitant HTTPS).
Utilisez mkcert pour créer des certificats SSL locaux de confiance. Gratuit, simple via Homebrew, fonctionne avec tous les serveurs.
Utilisez des gestionnaires de versions : phpenv ou Homebrew pour PHP, nvm ou fnm pour Node.js. Docker permet aussi différentes versions par projet.
macOS utilise Bonjour/mDNS pour .local, créant des délais. Utilisez .test ou .localhost, ou ajoutez l'entrée en IPv4 ET IPv6.
Articles similaires
Fichier hosts et Docker sur MacDéveloppement local
Fichier hosts et Docker sur Mac
9 min de lecture
Comment synchroniser WSL2 et le fichier hosts Windows (Guide 2026)Développement local
Comment synchroniser WSL2 et le fichier hosts Windows (Guide 2026)
5 min de lecture
0.0.0.0 vs 127.0.0.1 : quelle différence ?Développement local
0.0.0.0 vs 127.0.0.1 : quelle différence ?
3 min de lecture