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

Ce billet est le deuxième d’une série d’articles décrivant la fabrication d’une Machine Virtuelle (VM) de développement pour une équipe de dévelopeurs.

Ce billet expliquera comment j’installe un système Linux que je considère de base pour une infrastructure d’hébergement applicatif. Je ne couvrirai pas les configurations plus avancés pour améliorer la sécurité. Je risque de le faire plus tard.

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

  1. Description du concept (article précédent)

    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ème (cet article)

    Je 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.3

    Comment 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é.

Installation du système de base

J’utilise personnellement Debian Linux depuis quelques années car je le trouve plus léger que Red Hat Enterprise Linux ou n’importe quelle saveur de RedHat (Fedora, CentOS, etc)

Note: Je n’expliquerai pas comment faire pour installer Debian Linux de base (dans une VM) car c’est un sujet déjà largement couvert.

Personnellement j’installe le système avec la version actuelle provenant d’un mini boot server que j’ai sur un réseau que je partage avec quelques amis.

Une installation simple comme celle ci, ferait très bien l’affaire.

  • Utiliser le dernier Debian stable
  • à l’écran “Debian Software InstallationJe coche généralement ~rien~, car je vais donner plus de détails ici.

Les étapes…

  1. Modifier le
    /etc/apt/sources.list

    et Enlever la mention du CD-rom et Ajouter la mention “contrib

    deb http://debian.savoirfairelinux.net/debian/ lenny main
    deb-src http://debian.savoirfairelinux.net/debian/ lenny main
    deb http://security.debian.org/ lenny/updates main contrib
    deb-src http://security.debian.org/ lenny/updates main contrib
     
    deb http://ftp.debian.org/debian lenny contrib
    deb-src http://ftp.debian.org/debian lenny contrib
     
    deb http://debian-multimedia.org/ lenny main
    deb-src http://debian-multimedia.org/ lenny main

    Note: Il s’agit de mon propre sources.list ayant trouvé savoirfairelinux comme étant le plus rapide en utilisant netselect-apt et la liste des mirroirs Debian

  2. Updater les sources
    # apt-get update
  3. Installer les paquets essentiels
    # apt-get install openssh-server mlocate screen sudo vim ntpdate linux-headers-$(uname -r) syslog-ng build-essential open-vm-tools

    Note: remarquez la présence de open-vm-tools il s’agit d’un package provenant de Debian contrib pour les VM VMware (n’installez pas si vous utilisez Xen)… au lieu de compiler vm-ware-tools pour le kernel… Debian s’en occupe (!!)

  4. Ajouter les droits sudo à sudo
    # visudo
    1. Va ouvrir pico
    2. Décommenter %sudo ALL=NOPASSWD: ALL
    3. Pour quitter, faire CTRL+x y ENTER
  5. Updater la DB de mlocate
    # updatedb
  6. Lier killall5 sous le nom legacy de killall
    # ln -s /sbin/killall5 /sbin/killall
  7. suivre Procédure de configuration de NTP pour les serveurs.
    Note L’idée est d’éviter d’utiliser en mémoire les démons le plus possible. Si utile soit-il (comme ajuster l’heure, ici). Il est plus pratique qu’elle soit ajustée aux heures et laisser l’espace mémoire pour son usage primaire.

    1. Entrer en édition dans le fichier
      $ sudo vi /etc/default/ntpdate
    2. Trouver dans le fichier la variable NTPSERVERS, Remplacer, soit par…
      NTPSERVERS="0.ca.pool.ntp.org 1.ca.pool.ntp.org 2.ca.pool.ntp.org"
    3. Faire i (pour Insert)
    4. Ajouter a NTPOPTIONS
      NTPOPTIONS="-u"
    5. Faire ESCAPE
    6. :wq
    7. Créer un fichier cron.hourly
      $ sudo vi /etc/cron.hourly/ntpdate
    8. Ajouter le contenu
      #!/bin/sh
      PATH=/sbin:/bin
      test -f /usr/sbin/ntpdate || exit 0
      if test -f /etc/default/ntpdate ; then
              . /etc/default/ntpdate
      else
              NTPSERVERS="0.ca.pool.ntp.org"
      fi
      test -n "$NTPSERVERS" || exit 0
      /usr/sbin/ntpdate -s $NTPOPTIONS $NTPSERVERS >> /dev/null 2>&1
      # Exit with a succes anyway, avoids spamming root.
      exit 0
    9. Changer les permissions pour qu’il puisse être exécuté
      $ sudo chmod 755 /etc/cron.hourly/ntpdate
    10. Essayer
      $ sudo /etc/cron.hourly/ntpdate
    11. Voir dans syslog, ça devrait ressembler à…
      # tail /var/log/syslog
      ...
      Dec 30 13:39:35 willow ntpdate[1912]: adjust time server 192.168.1.5 offset 0.005642 sec
      ...
  8. Installer le service d’envoi courriel…

    Question de pouvoir recevoir les avertissements par courriel

    # apt-get install postfix
    1. Satellite System (On veut envoyer les courriels ailleurs et rien garder ici)
    2. “Mail name?”… NOMDELAVM
    3. “SMTP relay host?”… votre relai SMTP fourni par votre fournisseur
    4. “Other destinations…” Ajuster les noms
    5. Enter
    6. “Local networks?”… ENTER
    7. Tester l’envoi
      (NOTE: vous pouvez aussi utiliser l’outil Debian swaks)

      # mail test@test.com
      Subject: Patate 1 am
      Message, qui doit terminer avec une ligne seule et un point .
      .
      Cc:
    8. Regarder les mails du destinataire.

Références