Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:apache2:tp01 [25/09/2014 16:08] Hypathie [OpenSSL : créer un certificat avec apache2] |
doc:reseau:apache2:tp01 [01/10/2015 11:55] milou [Configurations d'un site web] |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
* Commentaires : Apprendre à configurer un serveur web sur son réseau local. | * Commentaires : Apprendre à configurer un serveur web sur son réseau local. | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Suivi : {{tag> à-tester à-placer}}. | + | * Suivi : {{tag> à-tester}} |
- | * Création par [[user>Hypathie]] 20/09/2014 | + | * Création par [[user>Hypathie]] le 20/09/2014 |
- | * Testé par <...> le <...> | + | * Testé par [[user>Hypathie]] octobre 2014 sur Wheezy |
- | * Commentaires sur le forum : [[:http://debian-facile.org/viewtopic.php?pid=98170#p98170| Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | + | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?pid=98170#p98170| Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) |
- | **Nota : Ce wiki est écrit par une débutante ** | ||
+ | |||
+ | * Référence : http://www.apache.org/ | ||
===== Introduction ===== | ===== Introduction ===== | ||
+ | |||
Ce qui est mis en œuvre ici concerne une utilisation d'un serveur apache sur un réseau local qui ne pointe pas un nom de domaine acquis mais fictif.\\ | Ce qui est mis en œuvre ici concerne une utilisation d'un serveur apache sur un réseau local qui ne pointe pas un nom de domaine acquis mais fictif.\\ | ||
**Avant tout, il faut savoir que monter un serveur web pour de l'auto-hébergement présente des risques.** Vous courrez par exemple le risque de donner un accès à tout votre réseau local à un pirate qui chercherait à prendre la main sur votre identité pour commettre des attaques illégales en votre nom.\\ | **Avant tout, il faut savoir que monter un serveur web pour de l'auto-hébergement présente des risques.** Vous courrez par exemple le risque de donner un accès à tout votre réseau local à un pirate qui chercherait à prendre la main sur votre identité pour commettre des attaques illégales en votre nom.\\ | ||
- | Ce wiki a pour objet de proposer une initiation à apache2, et déploie son installation sur une machine en vue de l'apprentissage; machine virtuelle qu'il faudra éteindre en dehors des TP, voire détruire plutôt que la laisser dans l'oubli sur un système. Dans tous les cas se documenter sur la sécurité.\\ | + | Ce wiki a pour objet de proposer une initiation à apache2, et déploie son installation sur une machine virtuelle. |
Si vous choisissez de déployer ce qui suit sur une machine réelle faisant office de serveur personnel en vue d'auto-hébergement, l'auteur et debian-facile décline toute responsabilité sur les conséquences fâcheuses qui pourraient en découler.\\ | Si vous choisissez de déployer ce qui suit sur une machine réelle faisant office de serveur personnel en vue d'auto-hébergement, l'auteur et debian-facile décline toute responsabilité sur les conséquences fâcheuses qui pourraient en découler.\\ | ||
- | Prenez le temps d'apprendre à sécuriser un serveur web avant de vous lancer dans l’auto-hébergement ! 8-) | + | Prenez le temps d'apprendre à sécuriser un serveur avant de vous lancer dans l’auto-hébergement ! 8-) |
===Pré-requis === | ===Pré-requis === | ||
Ligne 36: | Ligne 37: | ||
===Installation d'apache === | ===Installation d'apache === | ||
- | <code root>apt-get install apache2</code> | + | |
+ | <code root>apt-get update && apt-get install apache2</code> | ||
Après l'installation le serveur est fonctionnel. Si tout s'est bien passé, en tapant dans son navigateur ''http://192.168.x.xx/'', il doit s'afficher ceci: | Après l'installation le serveur est fonctionnel. Si tout s'est bien passé, en tapant dans son navigateur ''http://192.168.x.xx/'', il doit s'afficher ceci: | ||
Ligne 47: | Ligne 49: | ||
===Comment apache est-il configuré ? === | ===Comment apache est-il configuré ? === | ||
+ | |||
Afin de comprendre la mise en place d'un site web avec apache2, on va détailler la configuration par défaut d'apache.\\ | Afin de comprendre la mise en place d'un site web avec apache2, on va détailler la configuration par défaut d'apache.\\ | ||
Ligne 54: | Ligne 57: | ||
<code root>cd /etc/apache2/ && ls</code> | <code root>cd /etc/apache2/ && ls</code> | ||
- | <code>apache2.conf envvars mods-available ports.conf sites-enabled | + | <file config retour de la commande>apache2.conf envvars mods-available ports.conf sites-enabled |
- | conf.d magic mods-enabled sites-available</code> | + | conf.d magic mods-enabled sites-available</file> |
Il est à noter que le fichier /etc/apache2/apache2.conf est l'équivalent du fichier httpd.conf des distributions Linux à base de RedHat.\\ | Il est à noter que le fichier /etc/apache2/apache2.conf est l'équivalent du fichier httpd.conf des distributions Linux à base de RedHat.\\ | ||
Ligne 72: | Ligne 75: | ||
Puisque après l'installation, il a été possible d'afficher une page web d'accueil, c'est que ce répertoire contient un fichier qui le permet : | Puisque après l'installation, il a été possible d'afficher une page web d'accueil, c'est que ce répertoire contient un fichier qui le permet : | ||
- | <code root>cd sites-available/ && less default</code> | + | <code root>cd /etc/apache2/sites-available/ && less default</code> |
- | <code><VirtualHost *:80> | + | <file config retour de la commande><VirtualHost *:80> |
ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
Ligne 94: | Ligne 97: | ||
Order allow,deny | Order allow,deny | ||
Allow from all | Allow from all | ||
- | </Directory></code> | + | </Directory></file> |
On voit la ligne **''<Directory /var/www/>''**. C'est là le chemin du fichier qui contient le code html de la page d'accueil.\\ | On voit la ligne **''<Directory /var/www/>''**. C'est là le chemin du fichier qui contient le code html de la page d'accueil.\\ | ||
Vérifions cela. | Vérifions cela. | ||
<code root>cd /var/www && ls</code> | <code root>cd /var/www && ls</code> | ||
- | <code>index.html</code> | + | <file config retour de la commande>index.html</file> |
<code root>less index.html</code> | <code root>less index.html</code> | ||
- | <code><html><body><h1>It works!</h1> | + | <file config retour de la commande><html><body><h1>It works!</h1> |
<p>This is the default web page for this server.</p> | <p>This is the default web page for this server.</p> | ||
<p>The web server software is running but no content has been added, yet.</p> | <p>The web server software is running but no content has been added, yet.</p> | ||
- | </body></html></code> | + | </body></html></file> |
Donc le site "default" est configuré de sorte à mettre à disposition tout ce qui est dans /var/www. Mais ce n'est pas tout. Si la page d'accueil s'affiche sur le navigateur, c'est que le site de test de apache2 est activé. Cette activation dépend d'un lien symbolique entre un fichier du répertoire /etc/apache2/sites-enabled/ et un fichier du répertoire /etc/apache2/sites-available/default. | Donc le site "default" est configuré de sorte à mettre à disposition tout ce qui est dans /var/www. Mais ce n'est pas tout. Si la page d'accueil s'affiche sur le navigateur, c'est que le site de test de apache2 est activé. Cette activation dépend d'un lien symbolique entre un fichier du répertoire /etc/apache2/sites-enabled/ et un fichier du répertoire /etc/apache2/sites-available/default. | ||
Ligne 113: | Ligne 116: | ||
<code root>cd /etc/apache2/sites-enabled/ && ls</code> | <code root>cd /etc/apache2/sites-enabled/ && ls</code> | ||
- | <code>000-default</code> | + | <file config retour de la commande>000-default</file> |
Ce fichier est un lien symbolique : il pointe vers /etc/apache2/sites-available/default. | Ce fichier est un lien symbolique : il pointe vers /etc/apache2/sites-available/default. | ||
<code root>ls -l /etc/apache2/sites-enabled/000-default</code> | <code root>ls -l /etc/apache2/sites-enabled/000-default</code> | ||
- | <code>lrwxrwxrwx 1 root root 26 sept. 19 06:06\ | + | <file config retour de la commande>lrwxrwxrwx 1 root root 26 sept. 19 06:06\ |
- | /etc/apache2/sites-enabled/000-default -> ../sites-available/default</code> | + | /etc/apache2/sites-enabled/000-default -> ../sites-available/default</file> |
<note> | <note> | ||
Ligne 132: | Ligne 135: | ||
Cela peut se faire avec les commandes ''ln -s'' et ''rm''. Mais on utilise pour ce faire les utilitaires : | Cela peut se faire avec les commandes ''ln -s'' et ''rm''. Mais on utilise pour ce faire les utilitaires : | ||
* ''a2ensite'' : (apache2 enable site) : active un site, | * ''a2ensite'' : (apache2 enable site) : active un site, | ||
+ | |||
* ''a2dissite'' : (apache2 disable site) : désactive un site. | * ''a2dissite'' : (apache2 disable site) : désactive un site. | ||
</note> | </note> | ||
- | ===Méthode pour créer son site avec apache2 === | ||
- | |||
- | Cette configuration par défaut, indique donc comment s'y prendre pour créer un site web pris en charge par apache2. | ||
- | |||
- | * **D'abord, un fichier contenant le code source de la page web**: | ||
- | Il doit être créé dans /var/www/ : /var/www/dossier-du-site/fichier.html. | ||
- | |||
- | * **Ensuite pour que apache gère ce site** : | ||
- | Il faudra créer un utilisateur dans la base de apache ainsi qu'un fichier correspondant à la page web de /var/www/dossier-du-site/fichier.html dans /etc/apache2/sites-available/dossier-du-site. | ||
- | |||
- | * **Enfin pour activer ce site** : | ||
- | Il faudra créer un lien symbolique dans /etc/apache2/sites-available/ pointant vers /etc/apache2/sites-available/dossier-du-site. | ||
**//Puisque tout est bien clair, créons notre propre site web.//** | **//Puisque tout est bien clair, créons notre propre site web.//** | ||
Ligne 155: | Ligne 147: | ||
====Création du site web dans /var/www/ ==== | ====Création du site web dans /var/www/ ==== | ||
- | * On crée un dossier dans /var/www : | + | |
+ | <note important> Sur Jessie, on crée un site dans /var/www/html/ </note> | ||
+ | |||
+ | * On crée un dossier dans /var/www/ : | ||
Par exemple "monsite.com" qui va pouvoir accueillir le site internet. | Par exemple "monsite.com" qui va pouvoir accueillir le site internet. | ||
<code root>mkdir -p /var/www/monsite.com/public_html</code> | <code root>mkdir -p /var/www/monsite.com/public_html</code> | ||
+ | |||
+ | |||
+ | <note important> Sur Jessie | ||
+ | <code root>mkdir -p /var/www/html/monsite.com/public_html</code> | ||
+ | </note> | ||
* On attribue à root les fichiers nouvellement créés : | * On attribue à root les fichiers nouvellement créés : | ||
<code root>chown -R $USER:$USER /var/www/monsite.com/public_html</code> | <code root>chown -R $USER:$USER /var/www/monsite.com/public_html</code> | ||
+ | |||
+ | <note important> Sur Jessie | ||
+ | <code root>chown -R $USER:$USER /var/www/html/monsite.com/public_html</code> | ||
+ | </note> | ||
* On change les droits pour que le site puisse être lu par tous : | * On change les droits pour que le site puisse être lu par tous : | ||
<code root>chmod -R 755 /var/www</code> | <code root>chmod -R 755 /var/www</code> | ||
+ | |||
+ | <note important> Sur Jessie | ||
+ | <code root>chmod -R 755 /var/www/html</code> | ||
+ | </note> | ||
* On crée sa première page index.html | * On crée sa première page index.html | ||
<code root>vim /var/www/monsite.com/public_html/index.html</code> | <code root>vim /var/www/monsite.com/public_html/index.html</code> | ||
+ | |||
+ | <note important> Sur Jessie | ||
+ | <code root>vim /var/www/html/monsite.com/public_html/index.html</code> | ||
+ | </note> | ||
+ | |||
Contenant par exemple le code suivant: | Contenant par exemple le code suivant: | ||
- | <code><html> | + | <code> |
+ | <html> | ||
<body> | <body> | ||
<h1>Bravo !</h1> | <h1>Bravo !</h1> | ||
Ligne 180: | Ligne 194: | ||
On enregistre ! | On enregistre ! | ||
- | * On crée un VirtualHost d'apache pour ce site : | + | * On crée un VirtualHost d'apache2ls pour ce site : |
<code root>cp /etc/apache2/sites-available/default /etc/apache2/sites-available/monsite.com</code> | <code root>cp /etc/apache2/sites-available/default /etc/apache2/sites-available/monsite.com</code> | ||
<code root>vim /etc/apache2/sites-available/monsite.com</code> | <code root>vim /etc/apache2/sites-available/monsite.com</code> | ||
+ | |||
+ | <note important> Sur Jessie | ||
+ | ??? | ||
+ | </note> | ||
On inscrit ceci : | On inscrit ceci : | ||
Ligne 227: | Ligne 245: | ||
Elles apparaissent quand on tape la commande : | Elles apparaissent quand on tape la commande : | ||
<code root>grep -v "^#" /etc/locale.gen</code> | <code root>grep -v "^#" /etc/locale.gen</code> | ||
- | <code>fr_FR.UTF-8 UTF-8</code> | + | <file config retour de la commande>fr_FR.UTF-8 UTF-8</file> |
* Corriger le fichier /etc/apache2/conf.d/charset : | * Corriger le fichier /etc/apache2/conf.d/charset : | ||
Ligne 251: | Ligne 269: | ||
* Vider le cache du navigateur : | * Vider le cache du navigateur : | ||
Par exemple, avec iceweasel :\\ | Par exemple, avec iceweasel :\\ | ||
- | ''Outils -> Supprimer l'historique récent'' | + | |
+ | ''Historique -> Supprimer l'historique récent'' | ||
Et quand on recharge la page le problème est réglé : | Et quand on recharge la page le problème est réglé : | ||
Ligne 272: | Ligne 291: | ||
-rw-r--r-- 1 root root 59 août 21 10:49 /etc/apache2/mods-available/php5.load</code> | -rw-r--r-- 1 root root 59 août 21 10:49 /etc/apache2/mods-available/php5.load</code> | ||
+ | <note important>Si après l'installation le module php5 ne figure pas dans la liste des modules du fichier /etc/apache2/mods-available/ | ||
+ | |||
+ | * essayer : <code root>install php5 libapache2-mod-php5</code> | ||
+ | |||
+ | Et si cela n'est pas suffisant, suivre les directives de ce lien : | ||
+ | |||
+ | * http://digitizor.com/2012/09/03/how-to-fix-module-php5-does-not-exist-error-in-apache-linux/ | ||
+ | </note> | ||
+ | |||
+ | |||
+ | ===Activer le module php5 === | ||
+ | |||
+ | <code root>a2enmod php && /etc/init.d/apache2 restart</code> | ||
+ | |||
+ | <note tip> | ||
Dans /etc/apache2/mod-enabled, ce sont des liens symboliques qui activent ce module: | Dans /etc/apache2/mod-enabled, ce sont des liens symboliques qui activent ce module: | ||
<code root>ls -l /etc/apache2/mods-enabled/php5*</code> | <code root>ls -l /etc/apache2/mods-enabled/php5*</code> | ||
Ligne 279: | Ligne 313: | ||
/etc/apache2/mods-enabled/php5.load -> ../mods-available/php5.load</code> | /etc/apache2/mods-enabled/php5.load -> ../mods-available/php5.load</code> | ||
- | -> Puisque les liens sont là, le module est activé. | + | Quand les liens sont là, comme ci-dessus, c'est que le module est activé. |
+ | </note> | ||
Ligne 293: | Ligne 327: | ||
Si on active ou désactive un module ne pas oublier après l'opération de réactiver apache : ''service apache2 restart'' | Si on active ou désactive un module ne pas oublier après l'opération de réactiver apache : ''service apache2 restart'' | ||
- | ===Créer la page de test === | + | ====Créer la page de test ==== |
Ligne 590: | Ligne 624: | ||
====Vérifier l'appartenance et les droits des fichiers utilisés par "apache"==== | ====Vérifier l'appartenance et les droits des fichiers utilisés par "apache"==== | ||
- | FIXME | ||
===Modifier le groupe de /var/www === | ===Modifier le groupe de /var/www === | ||
Ligne 650: | Ligne 683: | ||
LogLevel warn | LogLevel warn | ||
- | **Ainsi paramétrer apache inscrit des logs d'erreur.** | + | **Ainsi paramétrer apache inscrit les événements anormaux dans l'un des fichiers du répertoire /var/log/apache2/error.log.** |
- | On peut mettre l'un des neuf niveau d'alerte, pour être alerter de la moindre information jusqu'au alerte grave : | + | On peut mettre l'un des neuf niveau d'alerte, pour être alerter de la moindre information jusqu'au alerte grave :\\ |
-''trace'' : traçage des informations de différents niveaux (produit une grande quantité d'informations);\\ | -''trace'' : traçage des informations de différents niveaux (produit une grande quantité d'informations);\\ | ||
- ''debug'' : informations de débogage qui peut être utile pour repérer où un problème ;\\ | - ''debug'' : informations de débogage qui peut être utile pour repérer où un problème ;\\ | ||
Ligne 664: | Ligne 697: | ||
-> Par défaut, on est informé à partir du niveau choisi jusqu'au niveau le plus grave.\\ | -> Par défaut, on est informé à partir du niveau choisi jusqu'au niveau le plus grave.\\ | ||
- | ===Où Apache conserve-t-il ses journaux? === | + | ===Comment le système de journalisation est-il configuré ? === |
Dans le fichier général **/etc/apache2/apache2.conf** une ligne indique le fichier où sont consigné les logs : | Dans le fichier général **/etc/apache2/apache2.conf** une ligne indique le fichier où sont consigné les logs : | ||
Ligne 809: | Ligne 842: | ||
-CAcreateserial -CAserial ca.srl''\\ | -CAcreateserial -CAserial ca.srl''\\ | ||
- | Pour créer une connexion privée et sécurisée entre le serveur et les clients qui s'y connecteraient, il faudrait procurer de façon sécurisé le fichier ca.crt (qu'on aurait fait nous-même en suivant toutes ces étapes) aux clients (ssh par exemple), afin qu'il soit installer dans leur navigateur :\\ -> Edition -> préférence -> Confidentialité et Sécurité/(bouton) Certificats -> gestion des certificats -> (Onglet)autorité/(Bouton)importer | + | Pour créer une connexion privée et sécurisée entre le serveur et les clients qui s'y connecteraient, il faudrait procurer de façon sécurisé le fichier ca.crt (qu'on aurait fait nous-même en suivant toutes ces étapes) aux clients (ssh par exemple), afin qu'il soit installer dans leur navigateur.\\ Par exemple avec Iceweasel :\\ |
+ | |||
+ | -> Edition -> préférence -> Avancé -> Afficher les certificats -> (Bouton)importer | ||
</note> | </note> | ||
Ligne 853: | Ligne 888: | ||
<code root>mkdir -p /home/hypathie/www/pegaseous.com/public_html</code> | <code root>mkdir -p /home/hypathie/www/pegaseous.com/public_html</code> | ||
- | * On crée un index dans /home/hypathie/www/ | + | * On crée un index dans /home/hypathie/www/ |
<code root>mv /var/www/index.html /home/hypathie/www/</code> | <code root>mv /var/www/index.html /home/hypathie/www/</code> | ||
Ligne 921: | Ligne 957: | ||
</VirtualHost> | </VirtualHost> | ||
</code> | </code> | ||
- | | + | |
* On charge le site "default" : | * On charge le site "default" : | ||
+ | |||
<code root>a2ensite default</code> | <code root>a2ensite default</code> | ||
* On édite /etc/apache2/ports.conf | * On édite /etc/apache2/ports.conf | ||
+ | |||
Pour s'éviter d'avoir au redémarrage d'apache2 le message suivant : | Pour s'éviter d'avoir au redémarrage d'apache2 le message suivant : | ||
<code>service apache2 reload | <code>service apache2 reload | ||
Ligne 948: | Ligne 986: | ||
ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
| | ||
- | ServerName monsite.com | + | ServerName pegaseous.com |
DocumentRoot /home/hypathie/www | DocumentRoot /home/hypathie/www | ||
<Directory /> | <Directory /> |