Contenu | Recherche | Plan du site | Accessibilité | Contact

Documentation

Debian LAMP - Linux Apache MySQL PHP ou Perl

But et infos sur ce howto

Le but de ce howto interactif est l'installation et la configuration de l'incontournable trio Apache MySQL PHP, Perl (ou encore Python, que nous ne décrivons pas ici) sur une Debian Etch 4.0, afin d'avoir un serveur personnel ou professionnel. Ce serveur peut être utilisé pour mettre en ligne des sites, blogs, wiki, CMS, partager des documents, pour développer, ou simplement faire des essais. Apache est le serveur de référence sur le web, sa configuration se fait directement par modification de fichiers texte ou avec votre navigateur web au travers de Webmin. La gestion des bases de données MySQL peut se faire avec phpMyAdmin et la gestion de la machine serveur peut se faire à distance via le protocole sécurisé SSH.

Ce howto a aussi comme but d'aider les personnes désirant hébérger leurs propre sites web sur une machine PC, pouvant provenir de la récupération, afin de partager, publier, etc, sur la toile et à moindre frais. Pour des machines peut puissantes il existe d'autres serveur web tels que LightTPD, disponible sur Debian, et installé par défaut sur la petite distribution SliTaz.

Matériels et système

Apache à l'avantage de pouvoir s'installer sur toutes sortes de machines, pour un petit serveur à la maison pour un petit site ou pour tester, il suffit d'un ordinnateur avec 64 MB de mémoire vive (RAM) pour qu'il fonctionne, pour mettre en ligne un site ou un blog nous vous conseillons 128 MB de mémoire au minimum. Pour des essais et du développement,nous avons installé des serveur sur nos portables (768 MB de RAM), nous développons ensuite sous les environnement graphiques Blackbox, Xfce et Gnome cela ne ralenti pas la machine, Apache est tellement stable et bien intégré à Debian que c'est ensuite un réel plaisir de travailler. A propos d'un serveur plus important avec un plus grand trafique, la plus part des machines réçentes devrais faire l'affaire, par exemple un serveur muni d'un Pentium 4, CPU de 3 GHz avec 1,5 GB de RAM, ou de vrai serveur comme Xeon. Il existe aussi des serveur DualCore avec 2 processeur et mémoires allant de 4GB à plusieurs dizaine de GB de RAM.

Le système d'exploitation que nous vous conseillons d'utiliser est la version stable de Debian GNU/Linux, version 4.0 nom de code Etch. L'installation de base du système suffi, sans interface graphique, mais vous pouvez aussi faire cela depuis Gnome, KDE, pour tester ou développer. Si vous avez fait une installation à partir de cédéroms Debian, il vous faudra peut-être ajouter des « dépôts » pour APT au fichier: /etc/apt/sources.list. Nous utiliserons aptitude pour l'installation des paquets, c'est le gestionnaire de paquets qui gére le mieux les dépendances.

Avant de commencer et si ce n'est pas déjà fait. Nous vous conseillons de mettre à jour la liste des paquets et de suivre par la mise des paquets installés sur votre système avec la commande:

 # aptitude update && aptitude upgrade

Installation de base d'Apache 2

Commençons par l'installation de notre nouveau serveur web Apache 2:

 # aptitude install apache2

Dans le cas ou vous n'avez installé que la base de debian, vous pouvez encore installer GNU Nano et/ou mc, pour éditer les fichier de configuration, ainsi que le navigateur web en mode texte Lynx:

 # aptitude install nano lynx

Pour vérifier la réussite de l'installation et le bon fonctionnement d'Apache, Vous pouvez ouvrir votre navigateur web préféré et vous rendre à l'adresse http://localhost/. Si tout c'est bien passé vous devriez être accueilli par la page de test de l'installation d'Apache. Votre nouveau serveur est aussi accessible depuis le nom de machine (hostname) ou avec l'adresse IP. Pour utiliser Lynx en ligne de commande depuis un terminal:

 $ lynx http://localhost/
 ou:
 $ lynx http://hostname/

userdir - Répertoire public des utilisateur

Ce passage n'est pas obligatoire, mais c'est utile de le savoir. Apache propose aux utilisateurs du système d'avoir un espace public pour mettre des documents web en général. Ce répertoire est assez réstrictif, ce qui est bien, et root n'y a pas le droit. Le module userdir d'Apache utilise les fichiers de configuration: userdir.conf et userdir.load tous deux situé dans /etc/apache2/mods-available/. Pour que le module fonctionne, il faut créer des liens symboliques de ces fichiers, vers le répertoire /etc/apache2/mods-enable. A noter que vous pouvez facilemnt changer le nom du répertoire utilisateur à utiliser en éditant le fichier de configuration userdir.conf. Pour que le module ne fonctionne plus, il faut détruire les liens puis redémarrer Apache2.

Pour utiliser le module userdir, il faut créer les liens pour le module avec l'utilisateur root et créer un répertoire public_html dans le dossier personnel d'un utilisateur du système, tel que: /home/user/public_html. Le répertoire public est ensuite accessible depuis l'url de la machine suivi de ~/user:

 $ su
 # ln -s /etc/apache2/mods-available/userdir.conf \
   /etc/apache2/mods-enabled/userdir.conf
 # ln -s /etc/apache2/mods-available/userdir.load \
   /etc/apache2/mods-enabled/userdir.load
 # /etc/init.d/apache2 reload

En tant que simple utilisateur vous pouvez tester le bon fonctionnement du module en créant un répertoire public_html:

 # exit
 $ mkdir $HOME/public_html
 $ lynx http://localhost/~user/

Stopper la redirection dans /apache2-default

Afin de ne pas être redirigé sur la page de test il faut modifier le fichier /etc/apache2/site-available/default, en ajoutant # devant la ligne 17 (RedirectMatch ^/$ /apache2-default/) pour commenter la ligne. A noter que ce même fichier peut servir d'exemple pour configuer de futur hôtes virtuels. Vous pouvez modifierce fichier texte dans un terminal avec Nano ou graphiquement avec Gedit par exemple:

 # nano /etc/apache2/sites-available/default
 ou:
 # gedit /etc/apache2/sites-available/default &

Pour que vos modifications soient effectives il faut qu'Apache les prennent en compte avec la commande reload, qui permet de relancer le serveur:

 # /etc/init.d/apache2 reload

Pour vérifier la bonne prise en compte des modifications apportées: http://localhost/ Votre serveur est désormait fonctionnel, le propriétaire des fichiers est le group se nomment www-data, la racine du serveur est dans /var/www, et les fichiers de log sont dans: /var/log/apache2. Les fichiers de configuration sont dans /etc/apache2 avec le fichier de configuration pricipale du serveur: apache2.conf. Pour administrer votre serveur vous pouvez directement modifier les fichiers texte de configuration d'apache en local ou via SSH.

Installation de PHP 5 et du module apache2

Installation de PHP en version 5, ainsi que du module pour Apache 2.

# aptitude install php5 libapache2-mod-php5

Apache est relancé automatiquement pendant l'installation pour que les modifications soient prisent en compte. Pour vérifier le bon fonctionnent du module, vous pouvez créer un fichier phpinfo.php à la racine du serveur, en utilisant Nano. Recopiez le code php et quitter/enregistrer avec la combinaison ctrl x en nommant le fichier comme bon vous semble mais avec l'extension .php, et valider avec <ENTER>:

 # nano /var/www/phpinfo.php
<?php
phpinfo();
?>

Vous pouvez maintenant allez à l'url de la page. Si vous l'avez nommée phpinfo.php et que vous l'avez mise à la racine de votre serveur web, elle devrait être accessible depuis l'url: http://localhost/phpinfo.php.

Votre serveur reconnaît maintenant les fichiers portant l'extension .php. Vous pouvez nommer la page qui s'ouvre par défaut, par index.php et insérer des scripts PHP un peu partout dans vos page web. Vous serez encore peut-être intéressé par installer quelques modules pour php. Le module php5-gd pour manipuler les images avec PHP, utilisé par exemple, par les Blogs pour générer des miniarure quand on upload une image. Dans la catégorie images il y a aussi le module php5-imagick offrant le support d'ImageMagick. Pour obtenir une liste de paquets disponibles en relation avec php5.

# aptitude search php5

Installation de MySQL 5.0 et de phpMyAdmin

Nous allons installer la version 5.0 du serveur de base de données MySQL disponnible dans Debian Etch 4.0, ainsi que le module php5-mysql et afin de pouvoir gérer les bases de données depuis un navigateur web, nous installerons phpMyAdmin.

 # aptitude install mysql-server-5.0 php5-mysql phpmyadmin

Debconf vous posera quelques questions, il faut ensuite configurer le mot de passe root, pour cela nous utiliserons phpMyAdmin. Loguez-vous avec root et sans mot de passe pour cette unique fois via l'url: http://localhost/phpmyadmin/. Vous avez maintenant un serveur web fonctionnel avec PHP et un serveur MySQL.

Installation de Perl et du module apache2

Ce module ne sert pas à grand chose si l'on utilise pas des scripts Perl. La présentation de libapache2-mod-perl2, provenant du paquet du même nom, dit que l'utilisation de scripts Perl peut augmenter de 400% à 2000% la rapidité d'un site web. Après installation, il existe de nombreuses possibilité pour configurer Perl et Apache, comme les script cgi par exemple. Pour installer le module Perl2 d'Apache2:

# aptitude install libapache2-mod-perl2

Pour information les scripts Perl commence toujours par #!/usr/bin/perl. Sur Debian, vous pouvez directemnet utiliser les fichier .php, car dans le fichier de configuration d'apache2 (apache2.conf) la ligne DirectoryIndex (202 du fichier original) comporte les valeurs qu'il faut:

DirectoryIndex index.html index.php index.php index.php index.xhtml

OpenSSH - Administration à distance et sécurisée

Si vous utilisez toujours telnet au lieu de SSH, vous devriez remédier à cela. SSH devrait être utilisé pour toutes les connexions distantes à la place de telnet. Il faut éviter les mots de passe en clair, et utiliser uniquement les protocoles qui utilisent la cryptographie. Si vous n'utilisé plus que SSH vous pouvez alors désinstallez telnet et apprendre à sécuriser le démon OpenSSH.

Pour devenir root, il faut éviter de se connecter au système en utilisant SSH en tant que root et préférer l'utilisation de méthodes alternatives tel que su ou sudo. Le fichier de configuration /etc/ssh/sshd_config peut-être modifié pour encore accroître la sécurité du système.

Pour ce connecter au serveur avec le nom de machine, on peut utiliser le nom de domaine, ou encore l'adrese IP:

$ ssh user@nomDeMachine

En spécifiant le port et le dossier dans lequel on arrive, SSH utilise le port 22 par défaut:

$ ssh user@nomDeMachine:22/home/user/public_html

Le paquet OpenSSH fournit aussi divers utilitaires pour le transfert de fichiers sécurisé tels que scp et sftp. Une fois connecté via SSH, vous pouvez utiliser les commandes d'administration disponibles sur tous les systèmes d'exploitations GNU/linux.

Administartion avec Webmin

Pour administrer votre serveur vous pouvez aussi utiliser Webmin et son module correspondant. Webmin propose un interface web qui permet la configuration d'Apach, Bind, Postfix, Proftpd ou encore du serveur SSH. L'installation de Webmin peut se faire avec la commande: # aptitude install webmin, l'interface web et ensuite accessible via https et le port 10000 de la machine, exemple: https://NomDeMachine:10000/.