De nombreuses solutions existent pour développer en local son projet web. On connaît les wamp, xampp pour windows ou mamp pour mac, on peut également penser au dual boot avec un linux mais ce qui va nous intéresser aujourd’hui c’est la virtualisation !

Alors soyons clair, il existe plein de solutions de virtualisation et toutes ont des avantages, on va s’intéresser à l’une de mes préférés : Vagrant pour son côté super simple d’usage, en effet en une commande on va installer une machine prête à emploi (quoi ?!)

Oh my Vagrant !
Oh my Vagrant !

Vagrant est un utilitaire en ligne de commande, qui va ensuite s’appuyer sur un fournisseur de virtualisation, qu’il complète en proposant par le biais d’une configuration d’obtenir une machine virtuelle pré-configurée très rapidement. Ici on prendra VirtualBox parce qu’il est gratuit, efficace mais vous pouvez très bien le coupler à d’autres systèmes.

Etape 1 : on télécharge

 

Vagrant : https://www.vagrantup.com/downloads.html
Virtualbox : https://www.virtualbox.org/

Eventuellement je vous conseille également git bash pour avoir un outil plus convivial, un vrai bash pour saisir les commandes.

N’hésitez pas à mettre jour fréquemment et vérifier les compatibilités, on a parfois des bogues qui proviennent de certains versions ! j’ai eu la mauvaise aventure d’avoir un ‘composer’ incapable de télécharger certains bundles (pas très utile le ‘composer’ du coup), le souci n’était pas ‘composer’ mais un bogue dans virtual box :(

"Je ne comprend pas !! "
– Je ne comprend pas !!

Etape 2 : Alors comment fonctionne Vagrant ?

Dans les grands principes :

  • On télécharge une box prête à l’emploi que l’on renseigne par référence (type auteur/nomDeLaVM
  • On prépare les différents ports à écouter
  • On déclare les dossiers partagés entre la VM et votre poste, hey ! oui on va partager un dossier et donc pouvoir travailler depuis notre poste sur la VM
  • On utilise le provisionning pour personnaliser la box ainsi téléchargée

Pfiou ça en fait des choses ! et bien Vagrant regroupe tout cela dans un fichier de config : le Vagrantfile

un exemple :

Vagrant.configure(« 2″)do|config|
config.vm.box = »scotch/box »
config.vm.network « private_network », ip: »192.168.33.10″
config.vm.hostname = »scotchbox »
config.vm.synced_folder « . », »/var/www »,:mount_options =>["dmode=777","fmode=666"]
end

Décryptons ces quelques lignes :

config.vm.box = »scotch/box »

Ici on va télécharger une box qui se nomme scotch/box , si jamais on utilise la même box une seconde fois elle sera déjà dispo, c’est l’un des avantages de Vagrant.

config.vm.network « private_network », ip: »192.168.33.10″
config.vm.hostname = »scotchbox »

Box story
La scotch box

 

on prépare également une ip pour accéder à votre vm et on lui précise un hostname ( tout à fait personnalisable). Ah oui cerise sur le gâteau, un accès SSH sera dispo directement et ce en une commande ;)

config.vm.synced_folder « . », »/var/www »,:mount_options =>["dmode=777","fmode=666"]

On fait de la synchro de dossier, ici le “.” indique que l’on sera dans le dossier où Vagrantfile se trouve et “/var/www” indiquera qu’on sera en parallèle dans le dossier /var/www (celui par défaut où l’on trouve les sites) sur votre VM. Cela vous permettra ensuite de créer des sous dossiers pour chaque projet et de les consulter sur votre navigateur en configurant Apache.

Comme la communauté autour de Vagrant est très active, on a plein de choses déjà prêtes, voici un florilège de mes favoris : https://box.scotch.io/

Oh my Vagrant !
Oh my Vagrant !

 

La box facile pour commence, vous faites un git clone du projet (qui ne contient qu’un Vagrantfile qu’on vient de voir) et un index.php, et on utilise la commande magique :

vagrant up

Et up ! Vagrant travaille, allez vous faire un café, vous finirez avec un serveur web complet, plus qu’à modifier votre fichier host windows pour un avoir un joli host en local.

Coffee break
Vous pouvez prendre le temps de vous faire un bon café !

Puphpet

https://puphpet.com/

Ici il n’est pas question de fournir une box toute prête mais une interface où vous allez indiquer tout ce dont vous avez besoin, faire la config des modules le tout en utilisant une interface web. Hyper pratique et au passage vous verrez Puphpet en action ;)

Dans un prochain article on verra comment installer xdebug sur cette vm et en profiter sur différents IDE.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec un *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>