Installation d'un serveur LAMP sous Debian
Quel que soit votre hébergeur (éventuellement vous-même, avec un vieux PC reconverti), je supposerai par la suite que vous avez installé une distribution Debian nue, sans aucun logiciel autre que le système de base.
Une partie des sections ci-dessous est optionnelle, suivant vos besoins.
Accès SSH
Si votre serveur est hébergé à l'extérieur (chez OVH, DigitalOcean, etc), vous devez déjà disposer d'un accès SSH, vous pouvez passer au paragraphe suivant.
S'il s'agit d'une machine personnelle alors vous voudrez sans doute y accéder à distance, ne serait-ce que pour disposer de votre environnement habituel, sur votre poste de travail. Il faut alors installer un serveur SSH sur votre machine Debian. Une fois connecté localement en root, exécutez simplement:
apt-get install ssh
Client SSH
Pour vous connecter à distance sur votre serveur, il faut un logiciel adapté, qui vous proposera une interface en ligne de commande.
Si vous êtes sur Mac, trouvez simplement dans votre dossier Utilitaires (dans le dossier Applications) l'application 'Terminal'. Une fois ouverte, tapez et validez la commande suivante:
ssh root@XXX.XXX.XXX.XXX
(où XXX.XXX.XXX.XXX est l'adresse IP de votre serveur, on vous demandera alors le mot de passe)
Si vous êtes sur Windows, téléchargez par exemple le client SSH gratuit à l'adresse suivante:
http://www.bitvise.com/ssh-client
Je vous laisse découvrir par vous-même l'interface du logiciel, sachez simplement que vous aurez à renseigner l'IP du serveur comme précédemment, l'utilisateur de connexion (root), et le mot de passe bien entendu. Normalement le port par défaut est 22, laisssez-le tel quel.
Apache 2, PHP, MySQL, PHPMyAdmin
Installation d'Apache 2:
apt-get install apache2
Installation de PHP, avec l'interface ligne de commande pour l'automatisation de scripts:
apt-get install php5 php5-cli
Installation de MySQL, avec son module PHP5:
apt-get install mysql-server mysql-client php5-mysql
On vous demandera de définir un mot de passe administrateur propre à MySQL.
Installation de PHPMyAdmin:
apt-get install phpmyadmin
Le script d'installation va d'abord vous demander de sélectionner le serveur web à utiliser, il s'agit ici bien sûr d'Apache 2. On vous demandera également le mot de passe d'administration de MySQL défini à l'étape précédente, attention à bien lire attentivement chaque question, je les détaillerai après avoir vérifié toutes les étapes mais c'est un peu touffu.
A l'issue de l'installation, votre interface PHPMyAdmin doit être disponible à l'adresse suivante:
http://[IP]/phpmyadmin
où [IP] est bien sûr l'adresse IP de votre serveur.
Pour le moment c'est tout. Votre espace web par défaut est accessible à l'adresse suivante:
http://[IP]
où [IP] est toujours l'adresse IP de votre serveur.
Cet espace est situé par défaut sur Debian dans le répertoire "/var/www". N'hésitez pas à jouer un peu avec son contenu pour vous en convaincre. Nous allons voir maintenant comment créer un vrai site, avec son nom de domaine associé.
Paramétrage du nom de domaine
Commençons par paramétrer notre nom de domaine. Il faut d'abord l'avoir acheté (en fait, loué pour un an renouvelable) auprès d'un registrar tel que "gandi.net" ou "ovh.com".
Le domaine se paramètre depuis le site du registrar, qui héberge sur ses serveurs ce qu'on appelle la "zone dns" qui regroupe les différentes caractéristiques du domaine, à commencer par son IP principale. Celle-ci est définie dans la zone dns par un champ de type "A", sans sous-domaine, avec pour valeur l'IP de notre serveur Debian. Ensuite nous définirons un sous-domaine "www" via un enregistrement de type "CNAME", avec comme valeur le nom de domaine racine suivi d'un point. En mode texte, ces deux définitions se présentent comme suit (pour le domaine d'exemple riffzone.net):
IN A 198.199.125.79 www IN CNAME riffzone.net.
Le résultat de cette configuration est que lorsque qu'un utilisera le nom de domaine "riffzone.net" ou bien "www.riffzone.net", l'IP correspondante (celle de notre serveur Debian) sera utilisée pour transmettre la requête, généralement une requête http depuis un navigateur web. Cela ne fait qu'acheminer la dite requête vers notre serveur, où elle sera réceptionnée par le logiciel Apache. Assez logiquement, en l'état, l'espace web par défaut sera affiché lors d'une requête de notre domaine.
Pas d'affolement si le domaine ne pointe pas tout de suite sur votre serveur, pour des raisons de temps de propagation qu'il serait fastidieux de détailler ici l'opération n'est effective qu'après un temps assez variable, de moins d'une heure à quelques unes (ne vous plaignez pas, autrefois ça pouvait mettre jusqu'à trois jours).
Création de l'arborescence du site
Ca peut paraître trivial, mais un peu de méthode dans la création de l'arborescence d'un site n'est pas superflue.
Pour faire simple dans le cadre de cet article, nous allons créer le répertoire racine de notre site dans "/var/www", créons donc le répertoire "/var/www/riffzone.net", puis sans attendre celui correspondant à notre seul sous-domaine déclaré, "/var/www/riffzone.net/www".
Lorsque quelqu'un tape simplement "riffzone.net" dans la barre d'adresse de son navigateur, je veux qu'il soit automatiquement redirigé vers "www.riffzone.net". Ca tombe bien, PHP est installé donc un simple script suffira, créons le fichier "/var/www/riffzone.net/index.php" avec le contenu suivant:
<?php header('Location: http://www.riffzone.net');
Puis une page par défaut dans notre répertoire "www", créons donc le fichier "/var/www/riffzone.net/www/index.php" avec le contenu suivant:
<?php echo "Hello, World!";
Voilà, c'est tout pour cette partie. Nous avons maintenant une arborescence de site minimaliste mais fonctionnel.
Configuration des vhosts
Il faut maintenant déclarer à Apache la correspondance entre les domaines "riffzone.net" et "www.riffzone.net", et leurs répertoires respectifs. Nous créons pour ça un fichier de configuration, propre à "riffzone.net" et à d'autres domaines "riffzone" éventuels, tant qu'à faire, qui prendra place dans le répertoire "/etc/apache2/sites-available". Créons donc le fichier "/etc/apache2/sites-available/riffzone.conf" avec le contenu suivant:
<VirtualHost *:80> DocumentRoot /var/www/riffzone.net ServerName riffzone.net </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/riffzone.net/www ServerName www.riffzone.net </VirtualHost>
Les lignes qui précèdent sont suffisamment claires pour se passer d'explications, elles pourront surtout servir de modèle à la déclaration d'autres domaines.
Cela ne suffit pas. Un fichier de configuration doit être activé, le mécanisme d'activation est assez simple dans la mesure où il s'agit de créer un alias de "/etc/apache2/sites-available/riffzone.conf" dans le répertoire "/etc/apache2/sites-enabled". Nous disposons pour cela d'une commande déjà toute faite assez simple:
a2ensite riffzone.conf
(notons au passage que pour désactiver notre fichier de configuration, on pourra utiliser la commande inverse, "a2dissite riffzone.conf")
C'est presque fini, il ne nous reste plus qu'à dire à Apache de recharger ses fichiers de configuration, avec la commande suivante:
/etc/init.d/apache2 reload
ou bien:
service apache2 reload
Notre site est maintenant fonctionnel, prêt à être enrichi de son contenu. A titre d'exercice, vous pouvez vous lancer dans la configuration d'un autre sous-domaine, tel que "code.riffzone.net". Vous avez toutes les clés en main.
[optionnel] Activation d'un module
On peut avoir besoin d'ajouter un module à Apache, tel que celui d'URL Rewriting, dans le cas d'une installation WordPress par exemple.
Un bon nombre de modules sont déjà présents dans l'installation Apache de base, dont justement celui d'URL Rewriting. Vous pourrez les voir dans le répertoire suivant:
/etc/apache2/mods-available
Le mécanisme d'activation d'un de ces modules est très similaire à celui d'activation d'un fichier de configuration de vhosts. Pour activer le module d'URL Rewriting, tapez puis validez la commande suivante:
a2enmod rewrite
Puis mettez à jour la configuration d'Apache:
service apache2 reload
[optionnel] Installation et configuration de Postfix pour l'envoi de mails
Commençons par installer Postfix, qui remplacera automatiquement l'éventuel composant d'envoi de mails précédemment en place:
apt-get install postfix
L'installeur va vous demander quel type de configuration vous souhaitez, répondez: 'Internet Site'.
Il vous demandera également de spécifier un domaine d'origine ('System mail name') pour vos futurs courriers, vous pouvez soit laisser celui proposé par défaut, ou bien en fournir un en rapport avec votre nom de domaine principal, dans mon exemple j'indiquerai directement: 'riffzone.net'.