Objectif : Créer une machine virtuelle pour développer ou tester les applications web dans un environnement totalement maitrisé.
- Serveur Apache, Php, MySQL
- Serveur proFTPD
- Serveur exim4 et courier-imap (en cours…)
Attention, ce n’est pas une configuration de serveur de production. Aucune sécurité n’est mis en place.
Configuration de VirtualBox
D’abord, télécharger le premier DVD d’installation sur le site www.debian.org.
Machine hôte
- Ubuntu 11.04 + Virtualbox 4.0.8
- Mémoire : 4Go
- Processeur : AMD Turion X2 64
Machine invitée – Configuration de Virtualbox 4.08
Système :
- Mémoire : 1024Mo
- Nb de processeurs : 2
- Activer PAE/NX : Oui (uniquement pour un hôte 64 bits)
Affichage :
- Mémoire vidéo : 12Mo
- Nb d’écran : 1
- Accélération 3D et 2D : Non
Stockage :
Cd-Rom : Connecter le disque ISO d’installation de Debian 6.
Disque dur :
- Noter le nom et l’emplacement du disque SATA
- Supprimer le contrôleur SATA
- Ajouter le disque sur le contrôleur IDE.
- Cliquer sur la 2eme icone à coté de « Contrôleur IDE » puis « Choisir un disque existant »
- Sélectionner le disque SATA (eh oui, tout à l’heure c’etait un SATA, et bien maintenant c’est un IDE !)
Son : Non
Réseau :
- Carte 1 : Active
Mode de connexion : aucune connexion durant l’installation
Après l’installation : accès par pont - Carte 2, 3 et 4 : Désactivée.
La carte 1 ne doit pas avoir de connexion pour pouvoir forcer Debian a proposer une configuration manuelle du réseau durant l’installation.
La connexion sera résactivée plus tard.
Installation de Debian 6
Choisir la langue, le pays, la disposition du clavier.
Perso, j’ai tout laissé par défaut.
Après avoir mouliner, Debian indique que la configuration automatique du réseau à échoué.
Normal, on a débranché la carte réseau.
Sélectionner « Configurer vous-même le réseau maintenant ».
- Attribuer une adresse IP (ex : 172.17.207.65)
- Masque de sous-réseau (ex : 255.255.255.0)
- Passerelle (ex : 172.17.207.121, si vous avez eut la curiosité de regarder les tutos précédents, j’ai mis en place une passerelle entre mon PC et mes machines virtuelles)
- Adresses des serveurs de noms (DNS) (ex : 208.67.222.222 208.67.220.220, OpenDNS)
- Nom de la machine (ex : debsrv001)
- Nom du domaine (ex : jbnet.lan)
Ensuite, les paramètres utilisateur (mot de passe root, utilisateur, etc…).
Je crée un utilisateur « Administrateur » (pour ne pas pertuber les Windowsiens… 😉 )
Sur l’écran « Partitionner les disques », laisser par défaut (c’est une machine de dev), à savoir : « Assisté – utiliser un disque entier ».
Puis, laisser par défaut et valider :
- Disque à partitionner
- Shéma de partitionnement
- Terminer le partitionnement et appliquer les changements
Enfin sur l’écran « Faut-il appliquer les changements sur les disques ? », sélectionner « Oui ».
Après un temps de moulinage, sélectionner « Non » sur l’écran « Faut-il analyser un autre CD ou DVD ? ».
Puis « Faut-il utiliser un mirroir sur le réseau » : Non
Là, l’outils de gestion des paquest (APT) mouline un peu puis l’installation commence.
A la question « Souhaites-vous participer à l’étude statistisque sur l’utilisation des paquets », répondez ce que vous voulez.
Sur l’écran « Sélection des paquets », décocher « Envirionnement graphique de bureau » et cocher « Serveur SSH ».
Après installation des paquets, Debian propose d’installer GRUB.
« Installer le programme de démarrage GRUB sur le secteur d’amarçage » : Oui
Laisser par défaut et continuer.
Une fois l’instalaltion terminée, sélectionner « Continuer » pour relancer le serveur.
Il faut ejecter le disque d’installation de la machine virtuelle, sinon, l’installation reprend du début.
Dans Virtualbox, il faut se connecter avec Root et arrêter la machine.
Dans la configuration de la machine virtuelle, activer le réseau en utilisant le réseau interne (si comme moi vous avec une passerelle), sinon, le NAT.
Relancer la machine virtuelle.
Mise à jour du serveur
Se connecter via SSH avec l’utilisateur Root :
1 |
ssh root@172.17.207.65 |
Résultat :
1 2 3 4 5 6 |
geeko@Opengeeko:~/VM$ ssh root@172.17.207.65 The authenticity of host '172.17.207.65 (172.17.207.65)' can't be established. RSA key fingerprint is 9a:5e:22:ba:c6:ce:b1:1d:56:8a:79:39:dc:71:2c:88. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '172.17.207.65' (RSA) to the list of known hosts. root@172.17.207.65's password: Linux debsrv001 2.6.32-5-686 #1 SMP Tue Mar 8 21:36:00 UTC 2011 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Mon Jun 6 13:08:09 2011 root@debsrv001:~# |
A la première connexion, il faut valider la connexion avec le serveur.
Avant de lancer la mise à jour du serveur, il faut désactiver l’accès au dépôt du CD-Rom d’installation.
editer le fichier /etc/apt/sources.list.
Commenter la ligne suivante avec un # :
1 |
# deb cdrom:[Debian GNU/Linux 6.0.1a _Squeeze_ - Official i386 DVD Binary-1 20110322-15:11]/ squeeze contrib main |
Ajouter les lignes suivantes :
1 2 |
deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free |
Mise à jour des dépôts :
1 |
apt-get update |
Mise à jour du serveur :
1 |
apt-get dist-upgrade |
Exemple de résultat :
1 2 3 4 5 6 |
apt-get dist-upgrade Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Calcul de la mise à jour... Fait Les paquets suivants seront mis à jour : bind9-host dnsutils exim4 exim4-base exim4-config exim4-daemon-light host isc-dhcp-client isc-dhcp-common libbind9-60 libdns69 libisc62 libisccc60 libisccfg62 liblwres60 linux-base linux-image-2.6.32-5-686 17 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 31,5 Mo dans les archives. Après cette opération, 1 155 ko d'espace disque seront libérés. Souhaitez-vous continuer [O/n] ? |
Accepter en validant.
A la fin de l’installation des mises à jour, rebooter le serveur.
Installation de Apache
Plusieurs façons sont disponibles pour installer un serveur LAMP.
- Récupérer les sources et les compiler soi-même (j’adore, mais résoudres les problemes prendrait du temp)
- Utiliser apt-get install apache2
- Utiliser Tasksel
C’est cette dernière méthode que je vais utiliser :
1 |
tasksel |
Sélectionner le paquet « Serveur Web » et valider.
Les paquets sont téléchargés puis installés.
Pour tester le serveur Apache, j’ai dû effectuer un redémarrage du serveur web :
1 |
/etc/init.d/apache2 restart |
Tester le serveur dans un navigateur web.
Le serveur Apache fonctionne !!
PHP
Eh oui, Apache, c’est que pour le html (un peu plus, je l’accorde).
Donc, il faut installer le PHP :
1 |
apt-get install php5 libapache2-mod-php5 php-pear php5-dev |
Maintenant, installation de modules pour PHP :
1 |
apt-get install php5-curl php5-gd php5-mysql php5-imagick php5-imap php5-mcrypt php5-memcache php5-snmp php5-tidy php5-xmlrpc php5-xsl |
Redémarrer le serveur Apache pour prendre en compte les modifications.
1 |
/etc/init.d/apache restart |
Ajouter le script phpinfo.php à la racine du serveur web /var/www :
1 2 3 |
<?php phpinfo(); ?> |
Voici le résultat en utilisant l’URL dans mon navigateur http://172.17.207.65/phpinfo.php :
Le PHP est installé !!
MySQL
Installer le serveur avec la commande suivante :
1 |
apt-get install mysql-server mysql-client |
Durant l’installation, saisir un mot de passe pour l’utilisateur root.
PhpMyAdmin
Installer PhpMyAdmin pour gérer MySQL :
1 |
apt-get install phpmyadmin |
Durant l’installation, il faut
- Choisir le type de serveur sur lequel PhpMyAdmin est installé.
Dans mon cas, je choisis « Apache2 ». - « Faut-il configurer la base de données de phpmyadmin avec dbconfig-common », répondre « OUI »
- Saisir le mot de passe de l’administrateur, c’est celui saisi lors de l’installation de MySQL.
- « Mot de passe de connexion MySQL pour phpmyadmin » : laisser vide, un mot de passe sera généré aléatoirement.
Tester phpMyAdmin dans un navigateur avec l’URL : http:///phpmyadmin.
Ex : http://172.17.207.65/phpmyadmin
Il faut alors se connecter avec l’utilisateur root et le mot de passe.
Installation d’un serveur FTP : ProFTPD
Je vais suivre la même procédure que j’avais utilisée dans l’article « Ubuntu 10.10 – Serveur de développement – Partie 1« .
- Création d’un utilisateur spécifique
- Installation de ProFTPD
- Modification du répertoire par défaut.
Je le rappelle, c’est une configuration de serveur pour du développement. Pas pour un serveur en production en accès libre par internet.
Installation d’un serveur de messagerie simple : EXIM4 et courier-imap
Par défaut, c’est exim4 qui est installé pour gérer la messagerie.
On peut le vérifier via la commande suivante :
1 2 |
root@debsrv001:~# ps -ef | grep exim 101 1390 1 0 22:01 ? 00:00:00 /usr/sbin/exim4 -bd -q30m |
Si le résultat n’est pas le même, utiliser tasksel et choisir « Serveur de courrier » pour l’installer.
Ensuite, il faut installer courier-imap pour profiter complètement d’un système de messagerie complet.
1 |
apt-get install courier-imap |
A la question « Faut-il créer les répertoires nécessaires à l’administration web ? », répondre « NON ».
Vérifier que le fichier /etc/courier/imapd contient en fin de fichier la ligne :
1 |
MAILDIRPATH=Maildir |
Il faut reconfigurer exim4 :
1 |
dpkg-reconfigure exim4-config |
- Type de configuration : « Distribution locale seulement (pas de réseau) »
- Nom de courriel du système : saisir le nom du serveur (ex : debsrv001.jbnet.lan)
- Liste d’adresses IP où Exim sera en attente de connexions SMTP entrantes : Laisser par défaut.
- Autres destinations dont le courriel doit être accepté : saisir le nom du serveur (ex : debsrv001.jbnet.lan)
- Faut-il minimiser les requêtes DNS (connexions à la demande) ? : « NON »
- Méthode de distribution du courrier local : Format « Maildir » dans le répertoire de base (home)
- Faut-il séparer la configuration dans plusieurs fichiers ? : « NON »
Créer un utilisateur spécifique pour tester la messagerie :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
root@debsrv001:~# adduser usermail Ajout de l'utilisateur « usermail » ... Ajout du nouveau groupe « usermail » (1002) ... Ajout du nouvel utilisateur « usermail » (1002) avec le groupe « usermail » ... Création du répertoire personnel « /home/usermail »... Copie des fichiers depuis « /etc/skel »... Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd : le mot de passe a été mis à jour avec succès Modification des informations relatives à l'utilisateur usermail Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée Nom complet []: N° de bureau []: Téléphone professionnel []: Téléphone personnel []: Autre []: Cette information est-elle correcte ? [O/n] |
Se connecter avec cet utilisateur :
1 |
su - usermail |
Avec le tiret, on est dans le répertoire home de cet utilisateur, son répertoire personnel.
Il faut maintenant créer le répertoire qui recevra les e-mails :
1 |
maildirmake.courier Maildir |
Installer un webmail : Squirrelmail
1 |
apt-get install squirrelmail |
Configuration de Squirrelmail :
1 |
/usr/sbin/squirrelmail-configure |
- Sélectionner l’option 10 et valider
- Sélectionner l’option 1 et valider
- Saisir « fr_FR » et valider
- Taper S et valider
- Sélectionner l’option D et valider
- Saisir « courier » et valider
- Taper S et valider
- Taper Q et valider
Squirrelmail est configuré.
Il faut configurer Apache pour utiliser Squirrelmail.
Exécuter les commandes suivantes :
1 2 3 |
cp /etc/squirrelmail/apache.conf /etc/apache2/sites-available/squirrelmail a2ensite squirrelmail /etc/init.d/apache2 restart |
Tester l’accès et l’envoi de mail via un navigateur : http://172.17.207.65/squirrelmail
La fenêtre de connexion des Squirrelmail s’affiche.
Saisir l’utilisateur : usermail
Puis son mot de passe.
Vous devez vous connecter.
Maintenant, tester l’envoi d’email avec l’adresse : usermail@ubsrv001.jbnet.lan (A adapter suivant ce que vous avez choisi comme domaine.)
Normalement, en revenant sur la liste des email, ce dernier devrait apparaitre.
La messagerie fonctionne !
Voilà pour la partie 1 !