[GUIDE] Installer un environnement de développement web sur OS X

welcomattic

DISCLAIMER :

Ce guide a été réalisé sous OS X Mavericks, il est possible que certaines choses ne fonctionnent pas/plus sous OS X Yosemite et supérieur.

~

Dans cet article je vais tenter de détailler l'installation d'un environnement de développement web (Apache, PHP, MySQL + Node.js, MongoDB) sur Mac OS X.

Il y a un long moment que je pense à écrire cet article, pour enfin avoir quelque part un guide "complet" qui permette d'installer un environnement de développement web local sur Mac OS X (10.9.2 dans ce tuto).

Pour la petite histoire, j'ai écumé plusieurs fois le web afin de tenter de trouver la meilleure façon de configurer mon environnement de dev sur mon MacBook. À chaque fois je ne trouvais que des bouts de tutos, ou bien des articles obsolètes, donc aujourd'hui après avoir trouvé et installé l'environnement qui me convient, je le partage !

PS : pour les novices, le symboles $ devant les commandes symbolise que je suis loggué en tant que user et non en tant que root. Si vous copiez-collez les commandes, ne prenez donc pas le $

;-)

--- ~ ---

Pour commencer un petit sommaire :

  1. Préambule
  2. On (re)part de zéro
  3. Poser des bases saines
  4. Activer Apache
  5. Installer PHP
  6. Installer MySQL
  7. Installer Node.js
  8. À venir :
  9. Installe MongoDB
  10. Paquets NPM utiles
  11. Pour affiner

--- ~ ---

 1. Préambule

Avant de commencer, sachez que dans ce guide je vais beaucoup utiliser le Terminal, pour ceux qui y sont allergique et qui cherche à s'en éloigner le plus possible, forcez vous ! Sincèrement, au début c'est chiant, c'est pas beau, c'est rebutant, mais une fois que vous aurez compris et appris un minimum de commandes vous ne pourrez plus vous en passer ! Croyez moi, c'est du vécu !

 2. On (re)part de zéro

Pour commencer, c'est violent, mais le mieux c'est de partir de zéro ! Comprendre, on formate son Mac ! Bien entendu vous n'êtes pas obligés de le faire, mais pour que ça soit le plus propre possible c'est ce que je vous conseille. Et pour se faire, je vous recommande l'article d'Antoine Guilbert :

http://www.antoineguilbert.fr/comment-bien-reinstaller-son-mac/

Voilà maintenant on va pouvoir configurer son environnement de développement aux petits oignons !

3. Poser des bases saines

Maintenant que votre Mac est tout propre, on va installer le premier outil qui va nous servir de base pour la suite, à savoir Homebrew. Homebrew est un gestionnaire de paquets pour Mac OS X, et c'est une alternative à MacPorts. Le choix d'Homebrew n'a pas été fait par hasard, j'ai bien entendu testé les 2 outils et à mon sens Homebrew sort largement vainqueur pour plusieurs raisons (ça sera l'objet d'un futur article ;) ).

Avant d'installer Homebrew, quelques vérifications s'imposent : être sûr un Mac Intel, être sur Mac OS X 10.5 minimum, avoir installé Xcode (ou au moins les Command Line Tools, si vous avez un compte Développeur chez Apple).

Pour installer Homebrew (que j'appellerai "brew" pour le reste de l'article), ouvrez votre Terminal (/Applications/Utilitaires/Terminal) et copiez-collez la commande suivante

$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)

Le script va vous expliquer ce qu'il va faire et faire une pause, pour le lancer appuyez sur Entrée.

Vous avez donc maintenant homebrew installé sur votre Mac. Cet outil s'utilise bien évidemment dans le Terminal (ou équivalent comme iTerm) avec la commande brew ($ brew --help  pour avoir plus d'infos) et le wiki officiel ici :

https://github.com/mxcl/homebrew/wiki

Pour être sûr que l'installation s'est bien déroulée, lancez la commande $ brew doctor. Si cette commande vous retourne des erreurs, 2 solutions : soit la commande pour résoudre le problème est dans le message d'erreur, soit la réponse est très certainement sur le wiki. Sinon, GYIF :-D

 4. Activer Apache

Depuis la sortie de Mac OS X 10.9 (Mavericks), le partage web a disparu de la fenêtre de configuration des partages de Mac OS X.

Partage web sur Mac OS X Mavericks

Pour activer Apache, nous allons passer par le Terminal avec cette commande :

$ sudo apachectl start

Vous aurez compris sans trop de mal que cette commande démarre tout simplement Apache.

Bonus :

Un développeur a besoin de temps en temps de redémarrer Apache (changement de config, création d'un nouveau vhost etc ...). Voici comment créer un alias qui permet de redémarrer Apache en 5 caractères (un bon dev est un dev féniant) :

On ouvre le fichier de config de notre Terminal (ici Bash, mais si vous avez zsh, votre fichier de config sera ici : ~/.zshrc) :

$ sudo nano ~/.bashrc

On se place en fin de fichier et on ajoute l'alias suivant (si apchr ne vous plait pas, mettez l'alias que vous souhaitez ;-) ) :

alias apchr="sudo apachectl restart"

On ferme le fichier en faisant ctrl+x, là Nano nous demande si l'on veut sauver les modifs, on tape : y, et enfin on appuie sur Entrée.

On indique ensuite au Terminal que l'on a modifié la config et qu'il doit la recharger avec la commande suivante :

$ source ~/.bashrc

5. Installer PHP

Avant d'installer PHP, il faut "taper" de nouveaux repository pour Homebrew pour avoir accès aux paquets dont on a besoin et à leurs dépendances :

$ brew tap homebrew/dupes

$ brew tap homebrew/versions

$ brew tap homebrew/homebrew-php

Maintenant, on peut installer PHP :

$ brew install --with-mysql php55

Tout simplement. Eh oui, Homebrew est tellement magique qu'il trouve tout seul toutes les dépendances dont PHP 5.5 a besoin.

Le --with-mysql sert uniquement à préciser lors de la compilation de PHP que nous avons besoin du driver MySQL.

Si vous voulez connaître les autres options de compilation :

$ brew options php55

On indique maintenant à Apache qu'il doit utiliser cette version de PHP :

$ sudo nano /etc/apache2/httpd.conf

Trouvez la ligne commençant par LoadModule php5_module et la remplacer par :

LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so

Fermez le fichier en faisant ctrl+x, là Nano nous demande si l'on veut sauver les modifs, on tape : y, et enfin on appuie sur Entrée.

On redémarre Apache en utilisant l'alias que nous avons créer tout à l'heure :

$ apchr

Extensions de PHP

Je vais détailler ici comment installer certaines extensions PHP avec Homebrew :

$ brew install php55-intl php55-xdebug php55-memcache php55-memcached php55-apcu php55-mcrypt

Petite spécificité pour Memcached, voici la commande pour le lancer au démarrage d'OS X :

$ ln -sfv /usr/local/opt/memcached/*.plist ~/Library/LaunchAgents

Bonus :

En parcourant le web je suis tombé sur cette petite extension pour les Préférences Système d'OS X : LaunchRocket

Une fois installé, cette extension vous permet de démarrer ou arrêter vos services installés avec Homebrew, comme ceci :

LaunchRocket

Si vous installez Redis par exemple, vous pourrez le démarrer ou l'arrêter ici aussi

6. Installer MySQL

Pour MySQL, j'ai choisi de passer par une installaton classique, car j'ai rencontré quelques difficultés avec l'installation via Homebrew.

Téléchargez donc la version que vous souhaitez à cette adresse : http://dev.mysql.com/downloads/mysql/

Montez le .dmg téléchargé, installez d'abord le fichier contenant le numéro de version que vous avez choisi, ensuite le fichier MySQLStartupItem.pkg, et enfin MySQL.prefPane.

Voici ce que vous devriez avoir dans les Préférences Système :

mysql

7. Installer Node.js

Pour installer Node.js sur OS X il y a bien sûr plusieurs manières de procéder :

Faites donc comme bon vous semble, car pour avoir essayer l'installation via le .pkg et via brew je n'ai trouvé aucun point négatif, ni d'un côté, ni de l'autre.

Bonus :

Si vous voulez pouvoir switcher facilement entre plusieurs versions de Node.js :

$ npm install -g n

Pour installer et swticher vers une version spécifique (0.10.26 par exemple) de Node.js :

$ n 0.10.26

Pour switcher vers la dernière version table de Node.js :

$ n stable