Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| serveur:lamp_bis [Le 14/04/2007, 23:15] – 67.71.189.98 | serveur:lamp_bis [Le 06/06/2007, 01:27] (Version actuelle) – procédure remodelée sous lamp, lamp_plus etc. Merci de contribuer sous les nouvelles pages _Enchained | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | ||
| - | ---- | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ====== Solution LAMP sur Ubuntu Dapper Drake & Edgy Eft ====== | ||
| - | |||
| - | ===== Description du tutoriel ===== | ||
| - | |||
| - | Ce tutoriel traite de la procédure à suivre pour installer une solution **LAMP** (**Linux, Apache, MySQL, Php/ | ||
| - | |||
| - | Il s' | ||
| - | |||
| - | Bien entendu, il s' | ||
| - | |||
| - | **N.B. :** Vous pouvez télécharger ce tutoriel au format PDF (//mise à jour le 27/ | ||
| - | |||
| - | ===== Indispensable ===== | ||
| - | |||
| - | La procédure traitée dans ce tutoriel est à exploiter sur une nouvelle installation d' | ||
| - | |||
| - | Vous ne devez pas avoir choisi l' | ||
| - | |||
| - | ===== Référence des logiciels installés via cette procédure ===== | ||
| - | |||
| - | * **Apache2** | ||
| - | * **Mysql-5.0** | ||
| - | * **PHP5** | ||
| - | * **PhpMyAdmin** | ||
| - | * et divers modules pour PHP 5. | ||
| - | |||
| - | Étant précisé que la version des dits logiciels peut évoluer. | ||
| - | |||
| - | ===== I. Vérification des dépôts actifs et rechargement des informations relatives aux paquets ===== | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ==== A. Activation des dépôts nécessaires ==== | ||
| - | |||
| - | |||
| - | Voici la liste des dépôts qui doivent être actifs pour l' | ||
| - | |||
| - | |||
| - | === 1. Ubuntu Dapper Drake === | ||
| - | |||
| - | < | ||
| - | deb cdrom: | ||
| - | |||
| - | deb http:// | ||
| - | deb-src http:// | ||
| - | |||
| - | deb http:// | ||
| - | deb-src http:// | ||
| - | </ | ||
| - | |||
| - | === 2. Ubuntu Edgy Eft === | ||
| - | |||
| - | < | ||
| - | # deb cdrom: | ||
| - | |||
| - | deb cdrom: | ||
| - | |||
| - | deb http:// | ||
| - | deb-src http:// | ||
| - | |||
| - | deb http:// | ||
| - | deb-src http:// | ||
| - | |||
| - | deb http:// | ||
| - | deb-src http:// | ||
| - | |||
| - | deb http:// | ||
| - | deb-src http:// | ||
| - | deb http:// | ||
| - | deb-src http:// | ||
| - | </ | ||
| - | |||
| - | Normalement, | ||
| - | |||
| - | De même, il est vivement recommandé de désactiver tous les autres dépôts afin d' | ||
| - | |||
| - | < | ||
| - | deb http:// | ||
| - | deb-src http:// | ||
| - | </ | ||
| - | |||
| - | Le fichier « sources.list » se trouve dans le répertoire « /etc/apt ». | ||
| - | |||
| - | Pour décommenter (activer les dépôts) procédez de cette manière si vous utilisez Gedit : | ||
| - | |||
| - | gksudo gedit / | ||
| - | |||
| - | ou si vous voulez le faire directement dans la console : | ||
| - | |||
| - | sudo nano / | ||
| - | |||
| - | (Note : Si vous utilisez Kubuntu, utiliser //kdesu// au lieu de //gksudo// et //kate// au lieu de //gedit//) | ||
| - | |||
| - | Une fois que le fichier « sources.list » est ouvert, enlevez le signe « # » qui est situé devant les deux dépôts concernés et terminez en le sauvegardant. | ||
| - | |||
| - | Pour commenter (désactiver), | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ==== B. Rechargement des informations relatives aux paquets ==== | ||
| - | |||
| - | Après avoir activé les dépôts nécessaires à l' | ||
| - | |||
| - | Pour ce faire, tapez la commande suivante dans un terminal : | ||
| - | |||
| - | sudo aptitude update | ||
| - | |||
| - | |||
| - | |||
| - | ===== II. Vérification de la manière dont sont traitées les dépendances des paquets recommandés ===== | ||
| - | |||
| - | Avant de commencer la procédure d' | ||
| - | |||
| - | Pour ce faire, ouvrez le gestionnaire de paquets Synaptic (**Système** -> **Administration** -> **Gestionnaire de paquets Synaptic**). | ||
| - | |||
| - | Une fois que Synaptic est ouvert, cliquez sur (**Configuration** -> **Préférences**) et dans la nouvelle fenêtre qui s' | ||
| - | |||
| - | ===== III. Installation d' | ||
| - | |||
| - | Pour installer le serveur Web Apache2, il vous suffit de taper la commande suivante dans un terminal : | ||
| - | |||
| - | sudo apt-get install apache2 apache2-doc apache2-mpm-prefork | ||
| - | |||
| - | Ceci aura pour effet d' | ||
| - | |||
| - | Il se peut que pendant l' | ||
| - | |||
| - | sudo apt-get update | ||
| - | |||
| - | |||
| - | ===== IV. Installation de MySQL 5.0 ===== | ||
| - | |||
| - | Pour installer le serveur **Mysql-5.0**, | ||
| - | |||
| - | sudo aptitude install mysql-server-5.0 | ||
| - | |||
| - | |||
| - | ===== V. Installation de PHP 5 (avec modules pour Apache et MySQL) ===== | ||
| - | |||
| - | Pour installer PHP 5 et quelques modules supplémentaires pour **Apache2** et **MySQL**, il vous suffit de taper la commande suivante dans un terminal : | ||
| - | |||
| - | sudo aptitude install php5 libapache2-mod-php5 php5-mysql | ||
| - | |||
| - | Pendant l' | ||
| - | |||
| - | apache2: Could not determine the server' | ||
| - | |||
| - | Ceci n'est absolument pas gênant et peut être réglé très facilement. Il vous suffit de rajouter la directive **ServerName** dans le fichier « / | ||
| - | |||
| - | //Exemple// : < | ||
| - | |||
| - | |||
| - | ===== VI. Pré-vérifications ===== | ||
| - | |||
| - | À ce stade de l' | ||
| - | |||
| - | * le bon fonctionnement d' | ||
| - | * le bon fonctionnement de **PHP5** | ||
| - | |||
| - | Avant tout, vous devriez redémarrer le serveur Web **Apache2** pour que les changements soient pris en compte. | ||
| - | |||
| - | Pour ce faire, il vous suffit de taper la commande suivante dans un terminal : | ||
| - | |||
| - | sudo / | ||
| - | |||
| - | ==== A. Vérification du bon fonctionnement d' | ||
| - | |||
| - | Dans la barre de votre navigateur internet (Firefox, etc.), tapez l'URL suivante : | ||
| - | http:// | ||
| - | |||
| - | ou son équivalent : | ||
| - | |||
| - | http:// | ||
| - | |||
| - | **Précision :** // | ||
| - | |||
| - | Si tout s'est bien passé, vous devriez voir une page Web dans laquelle l' | ||
| - | |||
| - | |||
| - | |||
| - | ==== B. Vérification du bon fonctionnement de PHP5 ==== | ||
| - | |||
| - | === a. Création du fichier « phpinfo.php » === | ||
| - | |||
| - | Pour vérifier que PHP 5 a bien été installé et est fonctionnel, | ||
| - | |||
| - | Pour ce faire, créez un nouveau document que vous nommerez « phpinfo.php » dans le répertoire « /var/www » grâce à la commande. | ||
| - | |||
| - | gksudo gedit / | ||
| - | |||
| - | ou autre éditeur de texte (nano, kedit, vim, emacs, etc.) | ||
| - | |||
| - | Insérez-y le code suivant : | ||
| - | |||
| - | <code php> | ||
| - | <?php phpinfo(); ?> | ||
| - | </ | ||
| - | |||
| - | et finissez en enregistrant le document. | ||
| - | |||
| - | === b. Exécution du fichier « phpinfo.php » === | ||
| - | |||
| - | Le fichier « phpinfo.php » étant créé, exécutez-le. | ||
| - | |||
| - | Pour exécuter le fichier « phpinfo.php », il vous suffit de tapez l'URL suivante dans la barre d' | ||
| - | http:// | ||
| - | ou celle-ci : | ||
| - | http:// | ||
| - | si vous voyez apparaitre : | ||
| - | < | ||
| - | Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 | ||
| - | |||
| - | Warning: Unknown: Failed opening '/ | ||
| - | </ | ||
| - | Il s'agit d'une erreur qui est simplement due aux droits actuels du fichier que vous venez de créer. | ||
| - | |||
| - | Pour résoudre cette erreur, il suffit donc de changer les droits du fichier. | ||
| - | |||
| - | Actuellement le fichier « phpinfo.php » peut seulement être lu, exécuté et modifié par l' | ||
| - | |||
| - | Il faut donc que vous le rendiez accessible, en lecture et exécution par les utilisateurs autres que //root//. Pour ce faire, il vous suffit de lui appliquer un '' | ||
| - | |||
| - | sudo chmod 605 / | ||
| - | |||
| - | Cette modification étant effectuée, réactualisez la page. | ||
| - | |||
| - | Si votre navigateur vous demande de télécharger le fichier « phpinfo.php », cela peut venir d'un problème de module mal chargé. Dans ce cas, vous pouvez tenter de résoudre cette « erreur » en tapant les commandes suivantes pour activer le module php5 : | ||
| - | |||
| - | sudo a2enmod php5 | ||
| - | |||
| - | et | ||
| - | sudo / | ||
| - | |||
| - | Si tout s'est bien passé, vous devriez voir apparaitre une page Web dans laquelle se trouvent plusieurs informations, | ||
| - | |||
| - | **N.B. :** Par la suite, lorsque vous allez créer des **pages HTML** ou des **scripts PHP**, pensez à appliquer les bons droits (permissions) sur les répertoires et fichiers de sorte qu'ils puissent être lus et exécutés. Ceci est une source d' | ||
| - | |||
| - | D'une manière générale, un '' | ||
| - | |||
| - | |||
| - | |||
| - | ===== VII. Installation de quelques modules supplémentaires pour PHP 5 ===== | ||
| - | |||
| - | Dans la plupart des cas, des modules supplémentaires pour PHP 5 sont nécessaires au bon fonctionnement des applications Web l' | ||
| - | |||
| - | Vous allez donc installer quelques modules qui sont souvent nécessaires. | ||
| - | |||
| - | Dans un terminal, tapez la commande suivante : | ||
| - | sudo aptitude install php-pear php5-cli php5-gd php5-sqlite php5-xsl php5-mcrypt | ||
| - | |||
| - | **N.B. :** D' | ||
| - | |||
| - | |||
| - | ===== VIII. Sécurisation de MySQL ===== | ||
| - | |||
| - | Pour l' | ||
| - | |||
| - | Il est donc nécessaire de sécuriser un tant soit peu l' | ||
| - | |||
| - | Dans un terminal, tapez la commande suivante : | ||
| - | |||
| - | sudo mysql_secure_installation | ||
| - | |||
| - | Une fois cette commande entrée, le script de sécurisation du serveur MySQL démarre. | ||
| - | |||
| - | Ce script vous pose plusieurs questions : | ||
| - | |||
| - | Enter current password for root (enter for none): | ||
| - | |||
| - | Ici, le script vous demande d' | ||
| - | |||
| - | < | ||
| - | Setting the root password ensures that nobody can log into the MySQL | ||
| - | root user without the proper authorisation. | ||
| - | |||
| - | Set root password? [Y/n] | ||
| - | </ | ||
| - | |||
| - | Ici, il vous est demandé si vous voulez attribuer un mot de passe à l' | ||
| - | |||
| - | New password: | ||
| - | |||
| - | Bien ici, c'est assez simple, vous devez taper le mot de passe que vous voulez attribuer à l' | ||
| - | |||
| - | < | ||
| - | By default, a MySQL installation has an anonymous user, allowing anyone | ||
| - | to log into MySQL without having to have a user account created for | ||
| - | them. This is intended only for testing, and to make the installation | ||
| - | go a bit smoother. | ||
| - | production environment. | ||
| - | |||
| - | Remove anonymous users? [Y/n] | ||
| - | </ | ||
| - | |||
| - | Ici, il vous est indiqué qu'à l' | ||
| - | |||
| - | < | ||
| - | Normally, root should only be allowed to connect from ' | ||
| - | ensures that someone cannot guess at the root password from the network. | ||
| - | |||
| - | Disallow root login remotely? [Y/n] | ||
| - | </ | ||
| - | |||
| - | Si vous n'avez pas besoin d' | ||
| - | |||
| - | Remove test database and access to it? [Y/n] | ||
| - | |||
| - | Ici, contentez-vous de taper sur la touche « Entrée ». | ||
| - | |||
| - | < | ||
| - | Reloading the privilege tables will ensure that all changes made so far | ||
| - | will take effect immediately. | ||
| - | |||
| - | Reload privilege tables now? [Y/n] | ||
| - | </ | ||
| - | |||
| - | Entrez « Y » pour prendre en compte les changements que vous venez de faire et les appliquer immédiatement. | ||
| - | |||
| - | Voilà pour ce qui est de la sécurisation de MySQL. | ||
| - | |||
| - | |||
| - | |||
| - | ===== IX. Installation de PhpMyAdmin (PMA) ===== | ||
| - | |||
| - | :!: Il est clairement rappelé que pour pouvoir installer le logiciel **PhpMyAdmin**, | ||
| - | |||
| - | Pour installer **PhpMyAdmin**, | ||
| - | |||
| - | sudo aptitude install phpmyadmin | ||
| - | |||
| - | **N.B. :** Il est important d' | ||
| - | |||
| - | ===== X. Vérification du bon fonctionnement de PHPMyAdmin ===== | ||
| - | |||
| - | Pour vérifier le bon fonctionnement de phpmyadmin, tapez ceci dans la barre de votre navigateur | ||
| - | http:// | ||
| - | ou ceci : | ||
| - | http:// | ||
| - | Et ensuite, dans la page web qui apparaît, cliquez sur le répertoire **phpmyadmin**. | ||
| - | |||
| - | Vous pouvez aussi taper l'url de **PhpMyAdmin** directement dans la barre de votre navigateur : | ||
| - | http:// | ||
| - | ou ceci | ||
| - | http:// | ||
| - | ce qui donnera le même résultat, à savoir, l' | ||
| - | |||
| - | Pour vous connecter à PhpMyAdmin, faites comme ceci : | ||
| - | Nom d' | ||
| - | le nom de l' | ||
| - | Mot de passe : | ||
| - | Le mot de passe que vous avez défini plus haut pour l' | ||
| - | |||
| - | Si tout s'est bien passé, vous devriez être connecté à **PhpMyAdmin** et pouvoir créer/ | ||
| - | |||
| - | **N.B. :** Il existe déjà deux bases de données, n'y touchez pas !!!. | ||
| - | |||
| - | **N.B. :** Si votre navigateur vous propose de télécharger un fichier PHTML au lieu d' | ||
| - | |||
| - | Dans ce cas, vous pouvez tenter de résoudre cette " | ||
| - | - On active le module PHP 5 :< | ||
| - | - On redémarre Apache : < | ||
| - | |||
| - | **N.B. :** N' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== POUR ALLER PLUS LOIN ===== | ||
| - | === Avant-propos === | ||
| - | Toutes les sections suivantes pourraient êtres résumées en 5 ou 10 lignes tout au plus. Ce faisant, mon but n'est pas de donner des solutions exemptes de toutes explications. Mon but est de fournir des explications qui permettrons à l' | ||
| - | |||
| - | ===== I. Les jeux de caractères (encodages) du Serveur Web Apache2 ===== | ||
| - | Par défaut, lorsqu' | ||
| - | |||
| - | Ce fichier contient la ligne suivante : | ||
| - | < | ||
| - | **< | ||
| - | |||
| - | La directive **AddDefaultCharset** spécifie le nom du jeu de caractères qui sera ajouté à toutes les réponses qui n'ont aucun paramètre sur le type de contenu dans l' | ||
| - | |||
| - | Pour exemple, si la directive **AddDefaultCharset** est présente dans les fichiers de configuration du **Serveur Web Apache2** avec l' | ||
| - | |||
| - | **</ | ||
| - | |||
| - | Il en résulte qu'à défaut d' | ||
| - | |||
| - | Pour exemple, le **é** sera encodé de cette manière : � | ||
| - | |||
| - | **<NOTE EXPLICATIVE> | ||
| - | |||
| - | Le contenu du fichier **charset** mentionné ci-dessus est inclu dans la configuration du **Serveur Web Apache2** grâce à la directive **Include** => **Include / | ||
| - | |||
| - | Cette directive et l' | ||
| - | |||
| - | **</NOTE EXPLICATIVE> | ||
| - | |||
| - | Pour résoudre ce problème plusieurs solutions s' | ||
| - | |||
| - | ==== A. Laisser le navigateur Web choisir l' | ||
| - | Comme nous l' | ||
| - | |||
| - | Pour désactiver cette fonction, deux solutions existent : | ||
| - | |||
| - | **1.** Vous commentez la directive d' | ||
| - | |||
| - | **ou** | ||
| - | |||
| - | **2.** Vous commentez la ligne **AddDefaultCharset UTF-8** qui se trouve dans le fichier **/ | ||
| - | |||
| - | **< | ||
| - | |||
| - | Pour commenter il suffit simplement de rajouter le signe **#** devant le code. Pour décommenter, | ||
| - | |||
| - | **</ | ||
| - | |||
| - | **< | ||
| - | |||
| - | Si vous optez pour la première solution, tout le contenu des fichiers qui se trouvent dans le dossier **/ | ||
| - | |||
| - | **</ | ||
| - | |||
| - | |||
| - | ==== B. Changer le jeu de caractères utilisé par défaut par le Serveur Web Apache2 ==== | ||
| - | Au lieu de désactiver la fonction de définition du jeu de caractères utilisé par défaut par le **Serveur Web Apache2**, nous pouvons définir celui que nous désirons employer. | ||
| - | |||
| - | Là encore, il existe plusieurs solutions pour le faire. | ||
| - | |||
| - | **1.** En modifiant le fichier **charset** du répertoire **/ | ||
| - | |||
| - | Comme nous l' | ||
| - | |||
| - | Pour modifier le jeu de caractères utilisé par défaut par le **Serveur Web Apache2**, il vous suffit donc d' | ||
| - | < | ||
| - | par celle de votre choix. | ||
| - | |||
| - | **Exemple** pour l' | ||
| - | < | ||
| - | **2.** En modifiant le fichier **apache2.conf** | ||
| - | |||
| - | Si vous éditez votre fichier **apache2.conf** qui se trouve dans le répertoire **/ | ||
| - | < | ||
| - | Comme vous pourrez le constater, cette ligne est commentée par défaut. Si vous désirez que le jeu de caractères **ISO-8859-1** soit utilisé par défaut par le **Serveur Web Apache2**, il vous suffit donc de décommenter cette ligne. | ||
| - | |||
| - | Cette ligne deviendra donc : | ||
| - | < | ||
| - | |||
| - | **<NOTE EXPLICATIVE> | ||
| - | |||
| - | A ce stade, et si vous avez bien suivi mes explications depuis le début, vous devriez vous poser la question suivante : | ||
| - | |||
| - | Si je décommente la ligne **# | ||
| - | |||
| - | Et bien la réponse est simple. | ||
| - | |||
| - | Lorsque vous demandez au **Serveur Web apache2** de relire sa configuration, | ||
| - | |||
| - | Dans notre cas, le contenu fichier **/ | ||
| - | |||
| - | Attention tout de même, car ceci n'est pas vérifié pour toutes les directives. Dans le cas présent, cette directive s' | ||
| - | |||
| - | **</NOTE EXPLICATIVE> | ||
| - | |||
| - | **< | ||
| - | |||
| - | Comme usuellement, | ||
| - | |||
| - | Pour ce faire, il vous suffit de taper la commande suivante dans un terminal : | ||
| - | < | ||
| - | **</ | ||
| - | |||
| - | Une dernière chose : pour obtenir la page de test avec le bon encodage, videz le cache de votre navigateur. Pour firefox : Edition → Préférence → Avancé → Réseau → Cache : nettoyer maintenant. | ||
| - | |||
| - | |||
| - | ===== II. Les Hôtes Virtuels (VirtualHost) - Méthodes ===== | ||
| - | === Introduction === | ||
| - | **Le Serveur Web Apache2 est capable de gérer simultanément plusieurs arborescences Web grâce à la notion d' | ||
| - | |||
| - | Dans le cadre de ce tutoriel, nous renseignons le fichier **/ | ||
| - | |||
| - | Si vous désirez tester toutes les méthodes proposées, pensez à effacer la configuration précédente pour ne pas créer des conflits entre les hôtes Virtuels. Il en va de même pour le fichier **/ | ||
| - | |||
| - | Comme évoqué ci-dessus, le **Serveur Web Apache2** peut gérer plusieurs **arborescences Web** grâce à la notion d' | ||
| - | |||
| - | Pour cela, plusieurs méthodes existent : | ||
| - | |||
| - | - Les Hôtes Virtuels **basés sur l' | ||
| - | - Les Hôtes Virtuels **basés sur le numéro de port** ; | ||
| - | - Les Hôtes Virtuels **basés sur le nom**. | ||
| - | |||
| - | ===== 1. Les Hôtes Virtuels basés sur l' | ||
| - | Dans le cadre de cette méthode, le Serveur est soit doté de plusieurs interfaces réseau (plusieurs cartes réseau), soit doté de plusieurs adresses Ip asociées à une seule interface réseau (une seule carte réseau). Dans ce dernier cas, on parlera d'**Ip aliasing**. Les systèmes Linux, notamment les distributions Ubuntu et Débian, permettent de mettre facilement en oeuvre cette dernière fonctionnalité (Ip aliasing). | ||
| - | |||
| - | |||
| - | ==== A : Association d'une deuxième adresse Ip à une carte Réseau (Ip aliasing) ==== | ||
| - | Dans cet exemple, nous partirons du principe que nous possédons une seule interface réseau (une seule carte réseau) à laquelle nous voulons associer une seconde adresses Ip. | ||
| - | |||
| - | Dans un premier temps, nous tapons la commande suivante dans un terminal pour prendre connaissance de la configuration de notre interface réseau : | ||
| - | < | ||
| - | et voici le résultat que nous obtenons : | ||
| - | < | ||
| - | eth0 Lien encap: | ||
| - | inet adr: | ||
| - | adr inet6: fe80:: | ||
| - | UP BROADCAST RUNNING MULTICAST | ||
| - | Packets reçus:1257 erreurs:0 :0 overruns:0 frame:0 | ||
| - | TX packets: | ||
| - | collisions: | ||
| - | Octets reçus: | ||
| - | Interruption: | ||
| - | |||
| - | lo Lien encap: | ||
| - | inet adr: | ||
| - | adr inet6: ::1/128 Scope:Hôte | ||
| - | UP LOOPBACK RUNNING | ||
| - | Packets reçus:429 erreurs:0 :0 overruns:0 frame:0 | ||
| - | TX packets:429 errors:0 dropped:0 overruns:0 carrier:0 | ||
| - | collisions: | ||
| - | Octets reçus: | ||
| - | Ce qui nous intéresse ici c'est la première série d' | ||
| - | |||
| - | Nous disposons donc d'une seule et unique **adresse Ip** qui est **192.168.0.2**. | ||
| - | |||
| - | Nous devons donc associer une seconde adresse Ip à notre interface réseau. Pour ce faire, il nous suffit simplement de taper la commande suivante dans un terminal : | ||
| - | < | ||
| - | Grâce à la commande évoquée ci-dessus, nous avons associé une seconde adresse Ip ==> **192.168.0.100** à notre interface réseau (carte réseau). | ||
| - | |||
| - | Dès à présent, notre interface réseau dispose de deux adresse Ip bien distinctes : | ||
| - | ** | ||
| - | 192.168.0.2** (Adresse Ip) | ||
| - | |||
| - | et | ||
| - | ** | ||
| - | 192.168.0.100** (Alias Ip) | ||
| - | |||
| - | Ceci est vérifiable en tapant la commande suivante dans un terminal : | ||
| - | < | ||
| - | |||
| - | |||
| - | |||
| - | ==== B : Configuration des Hôtes Virtuels ==== | ||
| - | Ayant associé une nouvelle adresse Ip à notre unique carte réseau, nous pouvons désormais créer nos deux **Hôtes Virtuels** (sites virtuels) utilisant chacun une adresse Ip bien distincte. | ||
| - | |||
| - | Dans un premier temps, nous renseignons le fichier **/ | ||
| - | |||
| - | **Exemple de fichier hosts :** | ||
| - | < | ||
| - | 192.168.0.2 virtual1.com | ||
| - | 192.168.0.100 virtual2.com</ | ||
| - | Une fois notre fichier **/ | ||
| - | |||
| - | Pour ce faire, il nous suffit de créer deux nouveaux fichiers dans le répertoire **/ | ||
| - | |||
| - | **1er fichier de configuration :** | ||
| - | |||
| - | Dans cet exemple, le premier fichier de configuration se nomme : **virtual1.conf** | ||
| - | |||
| - | Ce fichier contient le contenu minimal suivant : | ||
| - | < | ||
| - | DocumentRoot / | ||
| - | ServerName virtual1.com | ||
| - | </ | ||
| - | **2ème fichier de configuration :** | ||
| - | |||
| - | Dans cet exemple, le deuxième fichier de configuration se nomme : **virtual2.conf** | ||
| - | |||
| - | Ce fichier contient le contenu minimal suivant : | ||
| - | < | ||
| - | DocumentRoot / | ||
| - | ServerName virtual2.com | ||
| - | </ | ||
| - | **Note explicative** | ||
| - | |||
| - | Dans chacun des fichiers de configuration, | ||
| - | |||
| - | La directive **DocumentRoot**, | ||
| - | |||
| - | La directive **ServerName** permet de définir le **nom DNS** du Serveur ainsi que le **port** utilisé par défaut. Dans le cadre d' | ||
| - | |||
| - | **Ps :** Les répertoires **/ | ||
| - | |||
| - | Nos deux **hôtes Virtuels** étant configurés, | ||
| - | < | ||
| - | et | ||
| - | < | ||
| - | **Note explicative :** | ||
| - | La commande **a2ensite** a pour effet de créer des liens symboliques des deux fichiers de configuration (VirtualHost) créés précédemment, | ||
| - | |||
| - | Enfin, pour que les modifications soient prises en comptes par le **Serveur Web Apache2**, nous demandons à ce dernier de relire ses fichiers de configuration. Pour ce faire, il nous suffit de taper la commande suivante dans un terminal : | ||
| - | < | ||
| - | |||
| - | |||
| - | |||
| - | ===== 2. Hôtes Virtuels basés sur le numéro de port : ===== | ||
| - | Par défaut, le **Serveur Web Apache2** est configuré pour écouter sur le **port 80**. Ce faisant, il est possible d' | ||
| - | |||
| - | **Exemple :** | ||
| - | |||
| - | Dans cet exemple, les deux Sites Virtuels **virtual1.com** et **virtual2.com** se partagent la même adresse Ip : **192.168.0.2**. Seul le port d' | ||
| - | |||
| - | Dans un premier temps, nous allons éditer le fichier **/ | ||
| - | |||
| - | **Exemple de fichier hosts :** | ||
| - | < | ||
| - | 192.168.0.2 virtual1.com | ||
| - | 192.168.0.2 virtual2.com</ | ||
| - | Ensuite, nous créons deux fichiers de configuration (**VirtualHost**) que nous plaçons dans le répertoire **/ | ||
| - | |||
| - | Voici ce que contiennent ces deux fichiers de configuration : | ||
| - | |||
| - | **1er fichier de configuration** qui se nomme **virtual1.conf** : | ||
| - | < | ||
| - | DocumentRoot / | ||
| - | ServerName virtual1.com | ||
| - | </ | ||
| - | **2ème fichier de configuration** qui se nomme **virtual2.conf** : | ||
| - | < | ||
| - | DocumentRoot / | ||
| - | ServerName virtual2.com | ||
| - | </ | ||
| - | **Note explicative :** | ||
| - | Dans cet exemple, le site **virtual1.com** sera accessible via l'url : **http:// | ||
| - | |||
| - | **Ps :** Les répertoires **/ | ||
| - | |||
| - | Encore une fois, nous devons activer les deux **Hôtes Virtuels** avec la commande **a2ensite** (cf. ci-avant) et nous devons demander au **Serveur Web Apache2** de relire ses fichiers de configuration pour que les changements soient pris en comptes ==> **/ | ||
| - | |||
| - | |||
| - | ===== 3. Hôtes Virtuels basés sur le nom ===== | ||
| - | Cette troisième méthode et celle qui est la plus utilisée et aussi la plus conseillée. Elle tend même à devenir un standard. Il s'agit simplement d' | ||
| - | |||
| - | Dans l' | ||
| - | |||
| - | Dans un premier temps, nous allons éditer le fichier **/ | ||
| - | |||
| - | Exemple de fichier **/ | ||
| - | < | ||
| - | 192.168.0.2 virtual1.com | ||
| - | 192.168.0.2 virtual2.com</ | ||
| - | Notre fichier **/ | ||
| - | |||
| - | Cette directive correspond à celle sur laquelle le **Serveur Web Apache2** acceptera uniquement les requêtes adressées aux Hôtes Virtuels que nous allons définir ci-après. | ||
| - | |||
| - | A la fin du fichier **/ | ||
| - | < | ||
| - | Ensuite, nous créons deux nouveaux fichiers de configurations (**VirtualHost**) que nous plaçons dans le répertoire **/ | ||
| - | |||
| - | Voici ce que contiennent ces deux fichiers de configuration : | ||
| - | |||
| - | **1er fichier de configuration** qui se nomme **virtual1.conf** : | ||
| - | < | ||
| - | DocumentRoot / | ||
| - | ServerName virtual1.com | ||
| - | </ | ||
| - | **2ème fichier de configuration** qui se nomme **virtual2.conf** : | ||
| - | < | ||
| - | DocumentRoot / | ||
| - | ServerName virtual2.com | ||
| - | </ | ||
| - | **Ps :** Les répertoires **/ | ||
| - | |||
| - | Encore une fois, nous devons activer les deux **Hôtes Virtuels** avec la commande **a2ensite** et nous devons demander au **Serveur Web Apache2** de relire sa configuration pour que les modifications soient pris en comptes ==> **/ | ||
| - | |||
| - | **ATTENTION :** Dans les exemples ci-dessus, je n'ai pas fait état des directives qui d' | ||
| - | |||
| - | Les directives **ServerAdmin**, | ||
| - | |||
| - | ===== III. Perte du mot de passe mysql ===== | ||
| - | Dans cette section, nous vous proposons deux méthodes bien distinctes pour que vous puissiez re-créer le mot de passe de l' | ||
| - | |||
| - | Avant toute chose, il convient d' | ||
| - | < | ||
| - | ==== a. Première méthode ==== | ||
| - | Il faut commencer par créer un fichier contenant le nouveau mot de passe que vous voulez attribuer à l' | ||
| - | |||
| - | **Ps :** Dans la mesure ou ce mot de passe est stocké en clair, il est vivement recommandé de le mettre dans un répertoire suffisamment sûr. N' | ||
| - | < | ||
| - | On redémarre le server mysql en root : | ||
| - | < | ||
| - | où | ||
| - | < | ||
| - | Et voilà, votre nouveau mot de passe est pris en compte. | ||
| - | On stoppe à nouveau le serveur lancé : | ||
| - | < | ||
| - | Si '' | ||
| - | < | ||
| - | Où sinon, rebootez votre machine. | ||
| - | |||
| - | Et voilà, il ne reste plus qu'a relancez le service mysql proprement : | ||
| - | < | ||
| - | Ceci est inutile si vous venez de rebooter votre machine. | ||
| - | ==== b. Deuxième méthode ==== | ||
| - | Vous pouvez trouver une méthode alternative ici : [[http:// | ||
| - | |||
| - | Si mysql vous indique qu'il ne veut pas démarrer en root, Changez le II. en : | ||
| - | < | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== IV. Sécurisation d'un Site Web via Protocol SSL (Secure Socket Layer) ===== | ||
| - | |||
| - | Dans cette section, je vous propose de prendre connaissance d'une procédure permettant de sécuriser un **hôtes virtuel** grâce au **Protocol SSL** (Secure Socket Layer). | ||
| - | |||
| - | |||
| - | |||
| - | ==== 1. Le Protocol SSL en quelques mots ==== | ||
| - | |||
| - | **SSL** (Secure Sockets Layer) est un protocole qui a été développé par la société Netscape. | ||
| - | |||
| - | Ce protocol permet à deux machines de communiquer de manière sécurisée. Les informations échangées entre les deux machines sont de ce fait inviolables. | ||
| - | |||
| - | **Le Protocol SSL** se traduit par la combinaison de deux protocols bien distincts (// | ||
| - | |||
| - | Pour obtenir plus d' | ||
| - | |||
| - | |||
| - | |||
| - | ==== 2. Mise en application avec le Serveur Http Apache2 ==== | ||
| - | === A. Installation de la librairie OpenSSL : === | ||
| - | Pour pouvoir utiliser le protocole SSL avec le Serveur http Apache2, la librairie **openssl** doit être préalablement installée sur votre système. Pour installer cette librairie, il vous suffit de taper la commande suivante dans un terminal : | ||
| - | < | ||
| - | sudo apt-get install openssl | ||
| - | </ | ||
| - | **Ps :** Il se peut que cette librairie soit déjà installée sur votre système. | ||
| - | === B. Activation du module SSL du Serveur Http Apache2 : === | ||
| - | Pour que le protocole SSL puisse fonctionner avec le **Serveur Http Apache2**, il faut activer un module spécifique nommé **SSL**. | ||
| - | |||
| - | Pour activer ce module, il vous suffit de taper les commandes suivantes dans un terminal : | ||
| - | |||
| - | **1.** On active le module SSL : | ||
| - | < | ||
| - | sudo a2enmod ssl | ||
| - | </ | ||
| - | **2.** On demande au **Serveur Http Apache2** de relire ses fichiers de configuration pour que les changements soient pris en comptes : | ||
| - | < | ||
| - | sudo / | ||
| - | </ | ||
| - | === C. Les Certificats : === | ||
| - | Les certificats permettent de fournir divers informations concernant l' | ||
| - | |||
| - | De même, afin de garantir l' | ||
| - | |||
| - | Dans la plupart des cas, l' | ||
| - | |||
| - | **<Note Importante> | ||
| - | |||
| - | Dans le cadre de ce tutoriel, je présente la procédure à suivre pour mettre en place un Site Web sécurisé via protocole SSL en utilisant un Certificat auto-signé. | ||
| - | |||
| - | Je part du principe que nous avons déjà mis en place un Hôtes virtuel basé sur le nom nommé **nuxwin.com** (cf. ci-avant), ce dernier étant accessible sur le **port 80** (http:// | ||
| - | |||
| - | **</Note Importante> | ||
| - | |||
| - | Pour générer un certificat auto-signé avec **Ubuntu**, il nous suffit de taper les commandes suivantes dans un terminal : | ||
| - | |||
| - | **1.** On se place dans le répertoire dans lequel le certificat doit être généré : | ||
| - | < | ||
| - | cd / | ||
| - | </ | ||
| - | **2.** On lance la commande de génération : | ||
| - | < | ||
| - | sudo apache2-ssl-certificate | ||
| - | </ | ||
| - | (Note: par défaut, apache2-ssl-certificate génère un certificat valable 1 mois. Il est possible d' | ||
| - | |||
| - | et ensuite, on répond aux questions posées : | ||
| - | |||
| - | **a. Première question :** | ||
| - | < | ||
| - | Country Name (2 letter code) [GB]: | ||
| - | </ | ||
| - | Il s'agit ici d' | ||
| - | |||
| - | **b. Deuxième question :** | ||
| - | < | ||
| - | State or Province Name (full name) [Some-State]: | ||
| - | </ | ||
| - | Ici, nous devons indiquer le nom de notre pays. Étant situé en France, Nous indiquons : FRANCE et nous validons par la touche Enter. | ||
| - | |||
| - | **c. Troisième question :** | ||
| - | < | ||
| - | Locality Name (eg, city) []: | ||
| - | </ | ||
| - | Ici, nous devons indiquer le nom de la ville où nous nous situons. Comme nous sommes basé à CAEN, nous indiquons : CAEN et nous validons par la touche Enter. | ||
| - | |||
| - | **d. Quatrième question :** | ||
| - | < | ||
| - | Organization Name (eg, company; recommended) []: | ||
| - | </ | ||
| - | Ici, nous devons indiquer le nom de notre organisation, | ||
| - | |||
| - | **e. Cinquième question :** | ||
| - | < | ||
| - | Organizational Unit Name (eg, section) []: | ||
| - | </ | ||
| - | Ici, Nous devons indiquer le nom de la section de notre organisation, | ||
| - | |||
| - | **f. Sixième question :** | ||
| - | < | ||
| - | server name (eg. ssl.domain.tld; | ||
| - | </ | ||
| - | Ici, il convient de faire particulièrement attention à ce que nous allons entrer. Nous devons indiquer le nom de domaine que nous désirons sécuriser. En ce qui nous concerne, il s'agit du domaine : **nuxwin.com**. Nous indiquons donc nuxwin.com et nous validons par la touche Enter. | ||
| - | |||
| - | **g. Septième question :** | ||
| - | < | ||
| - | Email Address []: | ||
| - | </ | ||
| - | Ici, il s'agit d' | ||
| - | === D. Ajout de la directive Listen 443 : === | ||
| - | Par défaut, le **Serveur Http Apache2** est configuré pour écouter sur le **port 80**. Il s'agit là de la configuration usuelle d'un Serveur Web. Cependant, le protocole SSL a besoin d'un port spécifique pour pouvoir fonctionner. Il s'agit du **port 443**. | ||
| - | |||
| - | Nous allons donc rajouter une directive de configuration nommée **Listen** qui permettra d' | ||
| - | |||
| - | Pour demander au **Serveur Web Apache2** d' | ||
| - | < | ||
| - | Listen 443 | ||
| - | </ | ||
| - | Ensuite, il suffit de demander au **Serveur Web Apache2** de relire ses fichiers de configuration pour que les changements soient pris en comptes : | ||
| - | < | ||
| - | sudo / | ||
| - | </ | ||
| - | === E. Création du fichier de configuration === | ||
| - | Comme indiqué ci-avant, dans le cadre de ce tutoriel, je suis parti du principe que nous avions déjà configuré un hôte virtuel basé sur le nom accessible sur le **port 80**. Ceci implique donc l' | ||
| - | |||
| - | Voici le contenu de ce fichier : | ||
| - | < | ||
| - | < | ||
| - | DocumentRoot / | ||
| - | ServerName nuxwin.com | ||
| - | </ | ||
| - | </ | ||
| - | **Ps :** Je rappelle qu'il s'agit du contenu minimal d'un virtualhost. | ||
| - | |||
| - | Pour sécuriser cet Hôte Virtuel, nous allons donc devoir modifier ce fichier en y ajoutant un hôte virtuel accessible sur le **port 443**, ce dernier contenant des directives particulières qui sont les suivantes : | ||
| - | |||
| - | **1.** Directive **SSLEngine** : | ||
| - | |||
| - | Cette directive permet d' | ||
| - | |||
| - | **2.** Directive **SSLCertificateFile** : | ||
| - | |||
| - | Cette directive définit le certificat authentifiant le Serveur auprès des clients. L' | ||
| - | |||
| - | **3.** Directive **SSLCertificateKeyFile** : | ||
| - | |||
| - | Cette directive définit la clé privée du Serveur utilisée pour signer l' | ||
| - | |||
| - | Toutefois, il convient de noter que le chemin ne sera pas directement celui du fichier. En effet, il s' | ||
| - | |||
| - | Par ailleurs, comme nous l' | ||
| - | Nous rajouterons donc cette directive (// | ||
| - | |||
| - | Enfin, afin que les clients puissent continuer d' | ||
| - | |||
| - | Voici donc le contenu de notre fichier une fois modifié : | ||
| - | < | ||
| - | NameVirtualHost 192.168.0.2: | ||
| - | |||
| - | < | ||
| - | ServerName nuxwin.com | ||
| - | Redirect / https:// | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | ServerName nuxwin.com | ||
| - | DocumentRoot / | ||
| - | |||
| - | SSLEngine on | ||
| - | SSLCertificateFile / | ||
| - | SSLCertificateKeyFile / | ||
| - | </ | ||
| - | </ | ||
| - | **Ps :** //<nom du fichier.key>// | ||
| - | === F. Reload du Serveur Http Apache2 : === | ||
| - | Afin que les modifications que nous venons d' | ||
| - | |||
| - | Pour ce faire, il suffit de taper la commande suivante dans un terminal : | ||
| - | < | ||
| - | sudo / | ||
| - | </ | ||
| - | Normalement, | ||
| - | |||
| - | |||
| - | ===== Quelques Précisions concernant ce tutoriel ===== | ||
| - | Ce tutoriel a été rédigé pendant l' | ||
| - | |||
| - | Enfin, Il est précisé que l' | ||
| - | |||
| - | ---- | ||
| - | **Date de création par l' | ||
| - | |||
| - | **Dernière édition par l' | ||
| - | |||
| - | **Dernière tâche effectuée :** Rajout d'une section – Sécurisation d'un Site Web via protocole SSL. | ||
| - | |||
| - | ---- | ||
| - | |||
| - | // | ||
