Comme son nom l’indique, nous allons voir comment installer un serveur Ubuntu 9.10 dans VMWare et le configurer pour l’utiliser pour développer des applications web.
Pré-requis
- VMWare installé et configuré
- L’image ISO du cd-rom d’installation de Ubuntu 9.10
Note
Il faut cliquer dans la fenêtre VMWare pour activer la saisie clavier.
Pour libérer la capture et récupérer le contrôle de son ordinateur, il faut utiliser la combinaison de touche « Ctrl+Alt ».
Plus loin, nous utiliserons SSH dans un terminal por faciliter la saisie et les copier/coller des commandes.
Configuration de la machine dans VMWare
Installation de Ubuntu Server 9.10
Utiliser l’utilisateur root
Il faut d’abord se conencter à l’aide de l’utilisateur configuré lors de l’installation.
Comme mentionné sur la capture d’écran, si on veut exécuter une commande en tant qu’administrateur, il faut utiliser la commande :
1 |
sudo <command> |
Mais il est tout de même possible d’utiliser root.
Exécuter la commande suivante et donner un mot de passe à l’utilisateur root :
1 |
sudo passwd root |
Utiliser la combinaison de touche « Ctrl+D » pour se déconnecter de l’utilisateur en cours.
Il est possible de se connecter avec l’utilisateur root.
Les commandes qui suivent dans ce tuto sont exécutées avec l’utilisateur root.
Désactiver AppArmor
1 2 3 |
/etc/init.d/apparmor stop update-rc.d -f apparmor remove apt-get remove apparmor apparmor-utils |

Par sécurité, effectuer un reboot de la machine virtuelle.
Mise à jour du serveur
1 2 |
apt-get update apt-get dist-upgrade |

Effectuer un reboot pour être sûr que la mise à jour est prise en compte.
Serveur Web
Récupérer l’adresse ip de la machine virtuelle avec cette commande :
1 |
ifconfig |
Le serveur web ci-dessus a pour adresse IP 172.16.88.129
Apache
Vérifier que le serveur Apache fonctionne correctement.
Saisir cette adresse IP dans un navigateur web :
Le serveur web fonctionne !
MySQL
Installer PhpMyAdmin :
1 |
apt-get install phpmyadmin |
Sélectionner « Apache2 » :
Après l’installation, aller dans le navigateur web et saisir l’adresse « http://172.16.88.129/phpmyadmin » :
Se connecter avec les paramètres configurés lors de l’installation du serveur :
MySQL fonctionne et PhpMyAdmin aussi !
SSH
Ouvrir un terminal (sous Linux) sinon utiliser Putty (sous Windows)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
geeko@linux-sdna:~> ssh 172.16.88.129 -l user1 The authenticity of host '172.16.88.129 (172.16.88.129)' can't be established.RSA key fingerprint is b8:8a:4c:cc:9d:fb:e0:d8:f6:7b:97:33:59:be:c4:a9.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '172.16.88.129' (RSA) to the list of known hostsuser1@172.16.88.129's password: Linux ubweb2 2.6.31-21-generic-pae #59-Ubuntu SMP Wed Mar 24 08:47:55 UTC 2010 i686 To access official Ubuntu documentation, please visit: http://help.ubuntu.com/ System information as of Thu May 13 15:53:07 CEST 2010 System load: 0.0 Memory usage: 30% Processes: 93 Usage of /: 15.5% of 7.23GB Swap usage: 0% Users logged in: 1 Graph this data and manage this system at https://landscape.canonical.com/ Last login: Thu May 13 15:08:18 2010 user1@ubweb2:~$ |
A la première connexion, il faut répondre ‘yes’ à la question ‘Are you sure you want to continue connecting (yes/no)?’.
Puis il faut saisir le mot de passe de l’utilisateur configuré lors de l’installation.
La connexion SSH fonctionne.
Se connecter avec SSH permet d’effectuer des copier/coller dans le terminal.
Ce qui n’est pas possible avec la fenêtre VMWare.
FTP
Installons ProFTPD.
Dans la console SSH, exécuter la commande suivante :
1 |
apt-get install proftpd |
Utiliser Filezilla pour vérifier la connexion au serveur en utilisant l’utilisateur configuré lors de l’installation.
Le serveur FTP fonctionne !
Gestion des fichiers du serveur web.
Comme vous le remarquez sur la capture d’écran de Filezilla, l’utilisateur n’a accès qu’à ses propres fichiers (/home/user1)
Pour gérer les fichiers sur le serveur web, il faut mettre en place un lien symbolique :
1 |
ln -s /var/www www |
Maintenant, l’utilisateur a accès au répertorie www du serveur web :
A ce stade, l’utilisateur n’a pas les droits d’écriture, seulement de lecture.
Dans le terminal, sous root, exécuter les commandes suivante :
1 2 3 |
root@ubweb2:~# usermod -g users user1 root@ubweb2:~# chown user1:users /home/user1/www root@ubweb2:~# chown root:users /var/www |
L’utilisateur user1 a été mis dans le groupe users. On anticipe ainsi la création d’autres utilisiteurs qui pourraient gérer leur propre espace web.
Modification du groupe du répertoire /home/user1/www (puisqu’il a été créé avant)
Modification du groupe du répoertoire /var/www
Tester la création d’un répertorie dans Filezilla (F5 pour récupérer les nouveaux droits si Filezilla est toujours connecté)
Le répertoire a été créé avec succès !
Serveur mail
Configurons le serveur postfix :
1 |
dpkg-reconfigure postfix |
Configuration type du serveur de messagerie : Internet
- Nom de courrier : le domaine actuel de la machine
- Destinataire des courriels de « root » et de « postmaster » : user1
- Autres destinations pour lesquelles le courrier sera accepté (champ vide autorisé) : laisser par défaut
- Faut-il forcer des mises à jour synchronisées de la file d’attente des courriels ? : Non
- Réseaux internes : laisser par défaut
- Faut-il utiliser procmail pour la distribution locale ? : Non
- Taille maximale des boîtes aux lettres (en octets) : 0
- Caractère d’extension des adresses locales : laisser par défaut
- Protocoles internet à utiliser : ipv4 (ou autre suivant les besoins)
Il faut créer l’arborescence de stockage des mails pour les utilisateurs.
Pour cela, il faut se connecter avec le nom d’utilisateur en SSH puis dans le répertoire courant exécuter la commande :
1 |
maildirmake Maildir |
Exécuter les commandes suivantes :
1 2 3 |
postconf -e 'home_mailbox = Maildir/' postconf -e 'mailbox_command =' /etc/init.d/postfix restart |
Testons le serveur postfix.
Se connecter avec l’utilisateur (user1 dans ce tuto).
Exécuter la commande suivante :
1 2 3 |
user1@ubweb2:~$ mail user1@ubweb2.loc Subject: test C'est le corps du message !Cc: user1@ubweb2:~$ |
Utiliser « Ctrl+D » pour envoyer l’email.
Vérifier que l’email est bien dans la boite mail :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
user1@ubweb2:~$ mail Mail version 8.1.2 01/15/2001. Type ? for help. "/var/mail/user1": 1 message 1 new >N 1 user1@ubweb2.loc Thu May 13 16:26 14/456 test & Message 1: From user1@ubweb2.loc Thu May 13 16:26:25 2010 X-Original-To: user1@ubweb2.loc To: user1@ubweb2.loc Subject: test Date: Thu, 13 May 2010 16:26:24 +0200 (CEST) From: user1@ubweb2.loc (user1) C'est le corps du message ! & At EOF& qSaved 1 message in /home/user1/mbox |
Postfix fonctionne parfaitement !
Mais il faut aussi un serveur IMAP :
1 |
apt-get install courier-imap |
Le répertoire Maildir est créé et contient l’arborescence nécessaire à l’utilisation de IMAP.
Il faut aussi modifier le fichier /etc/postfix/main.cf
A la fin du fichier, ajouter la ligne :
1 |
home_mailbox = Maildir/ |
Maintenant, relancer le serveur postfix et courier-imap :
1 2 |
/etc/init.d/postfix restart /etc/init.d/courier-imap restart |
Utilisons SquirrelMail pour consulter ses mails.
1 |
apt-get install squirrelmail |
La configuration s’effectue avec la commande :
1 |
/usr/sbin/squirrelmail-configure |
Sélectionner « 10. Languages » et modifier la configuration comme suit :
Enregistrer les modifications.
Malheureusement (pour SquirrelMail), le serveur est confguré avec UTF-8 :
Pour avoir correctement la traduction française dans SquirrelMail, il faut reporter ces modifications dans le fichier : /usr/share/squirrelmail/functions/i18n.php
Avec vi, ouvrir le fichier et rechercher ‘fr_FR’.
Vous devez arriver visualiser ces lignes (à partir de la ligne 827 dans mon fichier) :
1 2 3 4 |
$languages['fr_FR']['NAME'] = 'French'; $languages['fr_FR']['CHARSET'] = 'ISO8859-1'; $languages['fr_FR']['LOCALE'] = array('fr_FR.ISO8859-1','fr_FR.ISO8859-1','fr_FR'); $languages['fr']['ALIAS'] = 'fr_FR'; |
Modifier avec les paramètres suivants :
1 2 3 4 |
$languages['fr_FR']['NAME'] = 'French'; $languages['fr_FR']['CHARSET'] = 'UTF-8'; $languages['fr_FR']['LOCALE'] = array('fr_FR.UTF-8','fr_FR.UTF-8','fr_FR'); $languages['fr']['ALIAS'] = 'fr_FR'; |
Enregistrer le fichier.
Exécuter les commandes suivantes pour configurer SquirrelMail dans Apache :
1 2 3 4 5 |
root@ubweb2:/# cp /etc/squirrelmail/apache.conf /etc/apache2/sites-available/squirrelmail root@ubweb2:/# ln -s /etc/apache2/sites-available/squirrelmail /etc/apache2/sites-enabled/squirrelmail root@ubweb2:/# /etc/init.d/apache2 force-reload * Reloading web server config apache2 [ OK ] root@ubweb2:/# |
La commande comencant par ln peut être remplacée par :
1 |
a2ensite squirrelmail |
Tester SquirrelMail dans le navigateur web :
L’accès à SquirrelMail fonctionne !
Il suffit de se connecter et de tester l’envoi de mail :
Tout fonctionne !
Ajouter un utilisateur
Il est parfois utile de disposer de plusieurs adresse mail pour tester les applications web.
Nous allons ajouter un utilisateur ‘webmaster’.
Exécuter la commande :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
root@ubweb2:/# adduser webmaster Ajout de l'utilisateur « webmaster »... Ajout du nouveau groupe « webmaster » (1001)... Ajout du nouvel utilisateur « webmaster » (1001) avec le groupe « webmaster »... Création du répertoire personnel « /home/webmaster »... Copie des fichiers depuis « /etc/skel »... Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd: password updated successfully Changing the user information for webmasterEnter the new value, or press ENTER for the default Full Name []: webmaster Room Number []: Work Phone []: Home Phone []: Other []: Ces informations sont-elles correctes ? [O/n] root@ubweb2:/# |
L’utilisateur webmaster est ajouté.
Maintenant user1 peut envoyer des mails à webmaster :
Conclusion
Nous avons un server web prêt à l’emploi pour tester et développer des applications web.