Une VM Linux qui sert au développement PHP 5.3 avec Eclipse – partie I

La Virtualisation c'est comme des roches en équilibreCe billet est le premier d’une série d’articles décrivant la fabrication d’une Machine Virtuelle (VM) de développement pour une équipe de dévelopeurs.

Je mentionne PHP 5.3 mais en fait ce type d’installation pourrait être utilisé pour n’importe quelle technologie web qui peut rouler sous Linux (Ruby on Rails, Java, Perl, etc).

J’ai séparé cette série en quatre volets.

  1. Description du concept (cet article)Ce que je vais discuter dans cette série d’articles n’est pas nécessairement connu de tous. Je vais donc vulgariser un peu avant de commencer.
  2. Installation du systèmeJe donne ici mon secret de magicien avec quelques configurations que je considère importantes pour un environement d’hébergement web pour améliorer la sécruité (le strict minimum pour cette série d’articles. Je pourrai en faire un plus poussé plus tard).
  3. Compilation de PHP 5.3Comment installer Apache 2.x avec le dernier cutting-edge PHP.
  4. Installation de l’environnement de développement avec Eclipse PDT (à venir)La magie se passe par là! Avec ce setup votre équipe pourra répliquer l’installation de développement a volonté.

Mise à jour et façon différente de fonctionner

Dans un billet plus récent (que celui-ci) j’explique comment le faire pour un Mac.

Mise en contexte

Pour développer, j’utilise depuis deux ans une machine virtuelle (VM) Linux (minimale) qui me sert de “bac à sable”… Le but de cette série d’articles. Dans cette VM il y a tout les outils nécessaires aux projets en-cours et ils sont configurés pour refléter l’environnement de production où je déploie mon travail.

Ce type d’installation est idéal car il permet d’avoir a installer les prérequis une seule fois et pouvoir les dupliquer pour tout les dévelopeurs. Sans oublier que vous n’avez plus de préoccupations de licences logicielles.

A la fin de cette série d’articles vous aurez accès a une VM qui représentera votre environement de production (ajuster à vos besoins de production, évidemment).

Concept

Comme j’en ai déjà parlé ici une VM roule avec toutes les versions désirés pour pouvoir développer et tester live le code développé. Le code est envoyé au serveur de source (git, subversion, cvs, etc) de toute façon. C’est ce qui rend cette VM “jettable” et facilement copiée pour des collègues.

C’est très utile car souvent, les outils utilisés (serveur applicatif, environement de développement, configuration de “debug”, scripts sur mesure de l’équipe infrastructure) doivent être reproduits le plus fidèlement au niveau développement pour s’assurer de ne pas tomber sur des coquilles rendu au jour “J”.

Ok. Trève de présentations!

Versions de VMware

Étant donné que tout roule dans une machine virtuelle, il faut savoir laquelle utiliser. Je résume ici leur usage recommandé. Personnellement j’ai seulement utilisé VMware comme outil de virtualisation. Vous êtes libres d’utiliser Xen ou Jail (avec FreeBSD) si vous avez plus d’Expérience.

Il y a aussi d’autres choix bien illustrés dans cet article Virtualization, plenty of choices

VMware workstation

Est idéale pour chaque poste de travail qui va utiliser cette VM de développement.

VMware server

Pour les machines de l’environement de staging avec lesquelles vous voulez avoir le contrôle sur le système d’exploitation en dessous.

Mais selon-moi, le meilleur a utiliser c’est…

VMware server ESXi

Un serveur VMware de 30 Méga-octets qui ne fait QUE rouler des VMs. Le seul hic c’est qu’il faut que ce soit un serveur-rack plus ou moins récent (après 2005 environ).

Installation dans une VM

Je vous recommande de vous inspirer de ce tutoriel pour l’installation: Creating a Virtual Machine on VMware server, en anglais)

Suite

Commençons par l’installation de la machine virtuelle.