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.
Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:apache2:tp01 [20/09/2014 16:49] Hypathie créée |
doc:reseau:apache2:tp01 [22/09/2014 17:40] Hypathie [Installer le module php] |
||
---|---|---|---|
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>en-chantier à-tester à-placer}} - FIXME Pour choisir, voir les autres Tags possibles dans [[:atelier:#tags|l'Atelier]]. | + | * Suivi : {{tag> à-tester à-placer}}. |
* Création par [[user>Hypathie]] 20/09/2014 | * Création par [[user>Hypathie]] 20/09/2014 | ||
* Testé par <...> le <...> | * Testé par <...> le <...> | ||
- | * Commentaires sur le forum : [[:url-invalide | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | + | * 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 :** | + | **Nota : Ce wiki est écrit par une débutante ** |
- | + | ||
- | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | + | |
+ | Contributeurs, merci de compléter [[atelier:chantier:apache2#securiser-son-site-web|la partie sur la sécurité]] ! FIXME | ||
===== 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.\\ | ||
Ligne 40: | Ligne 39: | ||
<code root>apt-get install apache2</code> | <code root>apt-get install apache2</code> | ||
- | Après l'installation le serveur est fonctionnel. Si tout c'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: |
<code>It works! | <code>It works! | ||
Ligne 59: | Ligne 58: | ||
conf.d magic mods-enabled sites-available</code> | conf.d magic mods-enabled sites-available</code> | ||
- | Il est à noter que le fichier /etc/apache2/apache2.conf est l'équivalent du fichier httpd.conf des distribution 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.\\ |
- | Il inclue d'autres fichiers de configuration qu'on n'a pas besoin de modifier pour une utilisation simple et personnelle d'apache2. | + | Il inclut d'autres fichiers de configuration qu'on n'a pas besoin de modifier pour une utilisation simple et personnelle d'apache2. |
Les quatre sous-répertoires à relever dans un premier temps pour comprendre le fonctionnement d'apache sont : | Les quatre sous-répertoires à relever dans un premier temps pour comprendre le fonctionnement d'apache sont : | ||
Ligne 72: | Ligne 71: | ||
Ce répertoire contient des fichiers qui indiquent les sites hébergés par apache2.\\ | Ce répertoire contient des fichiers qui indiquent les sites hébergés par apache2.\\ | ||
- | Puisque après l'installation, il a été possible d'afficher un page web d'accueil, 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 sites-available/ && less default</code> | ||
Ligne 97: | Ligne 96: | ||
Allow from all | Allow from all | ||
</Directory></code> | </Directory></code> | ||
- | On voit la ligne **''<Directory /var/www/>''**. C'est là qu'il y a un fichier qui contient le code html qui affiche 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. | ||
Ligne 109: | Ligne 108: | ||
</body></html></code> | </body></html></code> | ||
- | 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 de /etc/apache2/sites-enabled/ et le fichier /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. |
* **/etc/apache2/sites-enabled/** : | * **/etc/apache2/sites-enabled/** : | ||
Ligne 119: | Ligne 118: | ||
<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 /etc/apache2/sites-enabled/000-default -> ../sites-available/default</code> | + | <code>lrwxrwxrwx 1 root root 26 sept. 19 06:06\ |
+ | /etc/apache2/sites-enabled/000-default -> ../sites-available/default</code> | ||
<note> | <note> | ||
- | Pour l'instant, le serveur apache se contente d'envoyer du code HTML, CSS, javascript au navigateur, c'est-à-dire du code écrits dans un langage compris par le navigateur (côté client). Pour le PHP interpréter par le serveur, il faut mettre en place un module php. Pour mettre cela en place il faudra considérer cette fois les répertoires /etc/apache2/mods-available/ et /etc/apache2/mods-enabled/ dont il sera question plus bas. | + | Pour l'instant, le serveur apache se contente d'envoyer du code HTML, CSS, javascript au navigateur, c'est-à-dire du code écrit dans un langage compris par le navigateur (côté client). Pour le PHP interprété par le serveur, il faudra mettre en place un module php. Pour mettre cela en place il faudra considérer cette fois les répertoires /etc/apache2/mods-available/ et /etc/apache2/mods-enabled/ dont il sera question plus bas. |
</note> | </note> | ||
Revenons sur la configuration par défaut d'apache2, et la mise en service de la page d'accueil.\\ | Revenons sur la configuration par défaut d'apache2, et la mise en service de la page d'accueil.\\ | ||
<note tip> | <note tip> | ||
- | C'est le fait de la présence de ce lien symbolique /etc/apache2/sites-enabled/000-default qui pointe vers le site déclaré et correctement configuré /etc/apache2/sites-available/default, qui quant-à lui, attribue à apache la prise en charge du fichier de code web /var/www/index.html, qui active le site.\\ | + | C'est le fait de la présence de ce lien symbolique /etc/apache2/sites-enabled/000-default qui pointe vers le site déclaré, et correctement configuré, /etc/apache2/sites-available/default, qui quant à lui, attribue à apache la prise en charge du fichier de code web /var/www/index.html, qui active le site.\\ |
Pour activer un site ou le désactiver, il suffit donc de créer ou de supprimer le lien symbolique qui relie /etc/apache2/sites-enabled/000-default et /etc/apache2/sites-available/ | Pour activer un site ou le désactiver, il suffit donc de créer ou de supprimer le lien symbolique qui relie /etc/apache2/sites-enabled/000-default et /etc/apache2/sites-available/ | ||
- | 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> | ||
Ligne 185: | Ligne 185: | ||
<code root>vim /etc/apache2/sites-available/monsite.com</code> | <code root>vim /etc/apache2/sites-available/monsite.com</code> | ||
- | On modifie ceci : | + | On inscrit ceci : |
<code> | <code> | ||
Ligne 201: | Ligne 201: | ||
<code root>a2ensite monsite.com</code> | <code root>a2ensite monsite.com</code> | ||
- | * Prendre en compte les modifications effectuées à Apache en le redémarrant : | + | * Prendre en compte les modifications effectuées en redémarrant Apache : |
<code root>service apache2 reload</code> | <code root>service apache2 reload</code> | ||
Ligne 225: | Ligne 225: | ||
On va forcer l'encodage au niveau du serveur apache. Il suffit que tous les fichiers utilisent le même encodage utf8. | On va forcer l'encodage au niveau du serveur apache. Il suffit que tous les fichiers utilisent le même encodage utf8. | ||
- | * Mais avant vérifions les locales générés sur le système. | + | * Mais avant vérifions les locales générées sur le système. |
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> | ||
Ligne 260: | Ligne 260: | ||
</code> | </code> | ||
- | ====Sécuriser son site ==== | + | ===== Installer le module php===== |
+ | ===Installer libapache2-mod-php5 === | ||
+ | Ce paquet casse le MPM worker(([[http://httpd.apache.org/docs/2.2/mod/worker.html]])) et engendre l'installation du MPM prefork(([[http://httpd.apache.org/docs/2.2/mod/prefork.html]])).\\ | ||
+ | |||
+ | <code root>apt-get install libapache2-mod-php5</code> | ||
+ | |||
+ | |||
+ | Une fois l'installation effectuée on peut vérifier que php5 est apparu dans /etc/apache2/mod-available. | ||
+ | |||
+ | <code root>ls -l /etc/apache2/mods-available/php5*</code> | ||
+ | <code>-rw-r--r-- 1 root root 898 août 21 10:49 /etc/apache2/mods-available/php5.conf | ||
+ | -rw-r--r-- 1 root root 59 août 21 10:49 /etc/apache2/mods-available/php5.load</code> | ||
+ | |||
+ | 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>lrwxrwxrwx 1 root root 27 sept. 20 11:40\ | ||
+ | /etc/apache2/mods-enabled/php5.conf -> ../mods-available/php5.conf | ||
+ | lrwxrwxrwx 1 root root 27 sept. 20 11:40\ | ||
+ | /etc/apache2/mods-enabled/php5.load -> ../mods-available/php5.load</code> | ||
+ | |||
+ | -> Puisque les liens sont là, le module est activé. | ||
+ | |||
+ | |||
+ | |||
+ | ===Activer/désactiver un module === | ||
+ | |||
+ | * ''a2enmod'' : (apache2 enable module) : active un module apache2 | ||
+ | * ''a2dismod'' : (apache2 disable module) : désactive un module apache2 | ||
+ | |||
+ | Le module est activé par défaut, mais si ce n'était pas le cas : | ||
+ | |||
+ | <code root>a2enmod php5</code> | ||
+ | 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 === | ||
+ | |||
+ | |||
+ | <code root>mv /var/www/index.html /var/www/index.php</code> | ||
+ | <code root>vim /var/www/index.php</code> | ||
+ | <code> | ||
+ | <html> | ||
+ | <body> | ||
+ | <h1>It works!</h1> | ||
+ | <p>This is the default web page for this server.</p> | ||
+ | <?php | ||
+ | echo "La date du jour est " . date("d/m/Y") . "!\n"; | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | </code> | ||
+ | |||
+ | * Recharger apache : | ||
+ | |||
+ | <code root>service apache2 restart</code> | ||
+ | |||
+ | * Tester en tapant dans le navigateur : | ||
+ | ''http://ip-du-serveur/'' | ||
+ | |||
+ | <code>It works! | ||
+ | |||
+ | This is the default web page for this server. | ||
+ | La date du jour est 20/09/2014! </code> | ||
+ | |||
+ | Puisque tout fonctionne, pour utiliser php dans les autres sites, il n'y a qu'à modifier le nom de leur page d'index.html en index.php et entrer du code php bien sûr. | ||
+ | |||
+ | * Par exemple pour "monsite.com" : | ||
+ | |||
+ | <code root>mv /home/web/monsite.com/public_html/index.html /home/web/monsite.com/public_html/index.php</code> | ||
+ | |||
+ | <code root>vim /home/web/monsite.com/public_html/index.php</code> | ||
+ | <code><html> | ||
+ | <body> | ||
+ | <h1>Bienvenue sur monsite.com</h1> | ||
+ | <p>Site en cours de réalisation !</p> | ||
+ | <?php | ||
+ | echo "La date du jour est " . date("d/m/Y") . "!\n"; | ||
+ | ?> | ||
+ | </body> | ||
+ | </html></code> | ||
+ | |||
+ | * Recharger apache : | ||
+ | |||
+ | <code root>service apache2 reload</code> | ||
+ | |||
+ | * Tester en tapant dans le navigateur : | ||
+ | ''http://ip-du-serveur/monsite.com'' | ||
+ | |||
+ | et cliquer sur ''public_html/'' : | ||
+ | |||
+ | <code>Bienvenue sur monsite.com | ||
+ | |||
+ | Site en cours de réalisation ! | ||
+ | La date du jour est 20/09/2014! </code> | ||
+ | |||
+ | Tous les outils sont en place pour apprendre les langages html et php ! 8-) | ||
+ | |||
+ | |||
+ | =====Sécuriser son site web===== | ||
+ | |||
+ | ====Sécuriser Apache2 ==== | ||
Ce n'est là qu'un minimum et non une sécurisation optimale. | Ce n'est là qu'un minimum et non une sécurisation optimale. | ||
FIXME | FIXME | ||
- | ===Éditer le fichier /etc/apache2/conf.d/security === | + | ====Diffuser le minimum d'information sur apache ==== |
- | * Il s'agit de diffuser le minimum d'information sur apache. | + | * Éditer le fichier /etc/apache2/conf.d/security. |
<code root>vim /etc/apache2/conf.d/security</code> | <code root>vim /etc/apache2/conf.d/security</code> | ||
Ligne 282: | Ligne 381: | ||
<code root>service apache2 restart</code> | <code root>service apache2 restart</code> | ||
- | ===Limiter l'accès à toute l'arborescence du système Linux=== | + | ====Vérifier certaines options <Directory> de son Virtualhost==== |
- | * Désactiver le site "sites-available/efault" : | + | * Désactiver le site "sites-available/default" : |
<code root>a2dissite default</code> | <code root>a2dissite default</code> | ||
- | * Ensuite on va modifier les directives du site "/etc/apache2/sites-available/monsite.com" : | + | * Désactiver le site "monsite.com" : |
- | Pour ce faire on le désactive d'abord : | ||
<code root>a2dissite monsite.com</code> | <code root>a2dissite monsite.com</code> | ||
- | Et on recharge : ''service apache2 reload''.\\ | + | * Ensuite on va modifier les directives du site "/etc/apache2/sites-available/monsite.com" : |
+ | |||
+ | On édite "/etc/apache2/sites-available/monsite.com" : | ||
- | Puis on édite "/etc/apache2/sites-available/monsite.com". | ||
<code root>vim /etc/apache2/sites-available/monsite.com</code> | <code root>vim /etc/apache2/sites-available/monsite.com</code> | ||
Ligne 304: | Ligne 403: | ||
ServerAlias www.monsite.com | ServerAlias www.monsite.com | ||
- | DocumentRoot /var/www/monsite.com/public_html | + | DocumentRoot /var/www/monsite.com |
<Directory /> | <Directory /> | ||
- | Options FollowSymLinks | + | Options -FollowSymLinks |
- | AllowOverride None | + | AllowOverride AuthConfig |
</Directory> | </Directory> | ||
<Directory /var/www/> | <Directory /var/www/> | ||
Ligne 323: | Ligne 422: | ||
> ''Options -Indexes'' : Pour désactiver l'option permettant le parcours d'un répertoire | > ''Options -Indexes'' : Pour désactiver l'option permettant le parcours d'un répertoire | ||
- | > ''Options -FollowSymLinks'' : Pour désactiver l'option permettant apache de suivre des liens symboliques (qui pourrait permettre de quitter /var/www). | + | > ''Options -FollowSymLinks'' : Pour désactiver l'option permettant à apache de suivre des liens symboliques (qui pourraient permettre de quitter /var/www). |
- | > ''Options -Includes'' : Pour désactiver l'option permettant apache de faire des inclusions côté serveur. | + | > ''Options -Includes'' : Pour désactiver l'option permettant à apache de faire des inclusions côté serveur. |
- | > ''Options -ExecCGI'' : Pour désactiver l'option permettant à apache l'utilisation de scripts CGI. La désactiver si on n'utilise pas de script CGI(([[http://fr.wikipedia.org/wiki/Common_Gateway_Interface]])). | + | > ''Options -ExecCGI'' : Pour désactiver l'option permettant à apache l'utilisation de scripts CGI. Désactiver cette option seulement si on n'utilise pas de script CGI(([[http://fr.wikipedia.org/wiki/Common_Gateway_Interface]])). |
- | * On réactive le site : | + | ====Création d'un nouvelle utilisateur du système Linux==== |
- | <code root>a2ensite monsite.com</code> | + | On développera son site dans le répertoire de cet utilisateur. Il est déconseillé de développer son site dans /var/www, surtout si la partition est plus petite que /home/ ! Cela évitera aussi de mettre en place le module [[http://httpd.apache.org/docs/current/fr/mod/mod_userdir.html|userdir]] déconseillé par la documentation d'apache. |
- | Et comme indiqué : ''service apache2 reload''. | + | * Par exemple du nom de "web" |
+ | <code root>adduser --system web --ingroup www-data</code> | ||
- | ====Développer son site web dans un /home/==== | + | * On lui crée un mot de passe système : |
- | Il n'est pas recommandé de travailler directement dans des répertoires du serveur. Un lien symbolique depuis le répertoire principal du serveur vers un répertoire du dossier personnel est mieux. | + | <code root> passwd web</code> |
- | ===On désactive "monsite" === | + | * On crée les fichiers du site web, "monsite.com" dans /home/web/: |
- | <code root>a2dissite monsite.com</code> | + | <code root>cd /home/web/</code> |
+ | <code>mkdir -p monsite.com/public_html</code> | ||
- | Et on recharge : ''service apache2 reload''.\\ | + | * On édite un index.html : |
+ | <code root>vim /home/web/monsite.com/public_html/index.html</code> | ||
+ | <code><html> | ||
+ | <body> | ||
+ | <h1>Bienvenue sur pegaseous.com</h1> | ||
+ | <p>Site en cours de réalisation !</p> | ||
+ | </body> | ||
+ | </html></code> | ||
- | ===Création d'un nouvel Virtualhost === | + | ====Restreindre l'accès à "monsite.com" par login et mot de passe ==== |
- | * Par exemple du nom de "web" | + | La création d'un mot de passe sécurise un peu l'accès du site qu'on va crée pour le nouvel virtualhost.\\ |
- | <code root>adduser --system web --ingroup www-data</code> | + | Pour ce faire on va créer un compte utilisateur du système Linux et un compte apache avec la commande htpasswd. |
- | * On lui crée un mot de passe : | + | ===Création d'un mot de passe pour accéder à "monsite.com"=== |
- | <code root> passwd web</code> | + | Le dossier /etc/local est un bon endroit pour créer les fichiers de mots de passe de ce compte apache. |
- | * On crée les fichiers du site web, par exemple du nom de "pegaseous.com": | + | <code root>cd /usr/local/ && ls</code> |
- | <code>mkdir -p pegaseous.com/public_htlm</code> | + | <code>bin etc games include lib man sbin share src</code> |
- | * On corrige l'appartenance et les droits : | + | * Il faut créer un dossier apache du nom de son choix : |
+ | Par exemple "passwd" | ||
+ | <code root>mkdir -p apache/passwd && cd apache/passwd</code> | ||
- | <code root>chown -R root:www-data /home/web/ && chmod -R 755 /home/web/</code> | + | * Il faut générer des mots de passe pour l'utilisateur apache2: |
+ | La commande ''htpasswd'' va créer un fichier qui contiendra utilisateur apache /mot de passe. | ||
+ | <code root>htpasswd -c passwords web</code> | ||
+ | <code>New password: | ||
+ | Re-type new password: | ||
+ | Adding password for user web</code> | ||
- | * On édite un index : | + | -> ''-c'' pour la première fois qu'on crée un mot de passe. Si on l'utilisait une deuxième fois pour le même fichier "passwords", pour un deuxième utilisateur, on écrasera le contenu du fichier, et on perdrait le mot de passe du premier utilisateur. Donc pour un éventuel deuxième utilisateur "toto": ''htpasswd passwords toto''.\\ |
- | <code root>vim /home/web/pegaseous.com/public_htlm/index.html</code> | + | -> le mot de passe est chiffré. |
- | * On crée un lien symbolique vers /var/www : | + | * On peut aussi créer un groupe par exemple aussi dans le même dossier /usr/local/apache/passwd/ |
- | <code root>ln -s /home/web/pegaseous.com/ /var/www/pegaseous.com</code> | + | Par exemple du nom de "groups" : |
+ | <code root>vim groups</code> | ||
+ | <code>goupe1 web toto</code> | ||
- | * On édite un fichier /etc/apache2/sites-available/pegaseous.com : | + | ====Modifier les fichiers des sites actifs de /etc/apache2/sites-available ==== |
- | Pour aller plus vite on peut se servir d'un fichier "sites-available" existant qu'on modifie. Par exemple celui du site "monsite.com". | + | Pour restreindre l'accès à "monsite.com", il faut modifier d'abord le virtualhost "/etc/apache2/sites-available/default" |
- | Si on a suivi le wiki du début : | + | ===Pour "/etc/apache2/sites-available/default" === |
- | <code>cp /etc/apache2/sites-available/monsite.com /etc/apache2/sites-available/pegaseous.com</code> | + | Cela est nécessaire pour restreindre l'accès du site qui est développé dans le répertoire de l'utilisateur /home/web/monsite.com qu'on a créé. |
- | Si on a pas de fichier : ''vim /etc/apache2/sites-available/pegaseous.com'' et on y colle ce qui suit. | + | * On modifie "/etc/apache2/sites-available/default" comme ceci : |
- | <code text><VirtualHost *:80> | + | <code root>vim /etc/apache2/sites-available/default</code> |
+ | <code> | ||
+ | <VirtualHost *:80> | ||
ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
- | ServerName pegaseous.com | ||
- | ServerAlias www.pegaseous.com | ||
- | |||
- | DocumentRoot /var/www/pegaseous.com | ||
+ | DocumentRoot /var/www | ||
<Directory /> | <Directory /> | ||
Options FollowSymLinks | Options FollowSymLinks | ||
- | AllowOverride None | + | AllowOverride AuthConfig |
+ | </Directory> | ||
+ | <Directory /var/www/> | ||
+ | Options Indexes FollowSymLinks MultiViews | ||
+ | AllowOverride AuthConfig | ||
+ | Order allow,deny | ||
+ | allow from all | ||
+ | AuthType Basic | ||
+ | AuthName "Ma zone est restreinte !" | ||
+ | AuthBasicProvider file | ||
+ | AuthUserFile /usr/local/apache/passwd/passwords | ||
+ | AuthGroupFile /usr/local/apache/passwd/groups | ||
+ | Require valid-user | ||
+ | </Directory> | ||
+ | </code> | ||
+ | |||
+ | <note> | ||
+ | **Bien remarquer que pour pouvoir ajouter cette directive**\\ | ||
+ | -> on a mis ''AllowOverride AuthConfig'' à la place de ''AllowOverride none''. | ||
+ | |||
+ | |||
+ | **Pour autoriser l'accès à tous les utilisateurs** qui ont un mot de passe apache :\\ | ||
+ | -> ''Require valid-user''\\ | ||
+ | |||
+ | **On aurrait pu mettre** :\\ | ||
+ | -> ''Require user web''\\ | ||
+ | -> ''Require group groupe1''\\ | ||
+ | |||
+ | **On remarque que l'option ''Options -FollowSymLinks''** : qui évite de suivre les liens symbolique depuis la racine /var/www | ||
+ | </note> | ||
+ | |||
+ | ===Pour "/etc/apache2/sites-available/monsite.com"=== | ||
+ | |||
+ | <code root>vim /etc/apache2/sites-available/monsite.com</code> | ||
+ | |||
+ | <code> | ||
+ | <VirtualHost *:80> | ||
+ | ServerAdmin webmaster@localhost | ||
+ | ServerName monsite.com | ||
+ | ServerAlias www.monsite.com | ||
+ | |||
+ | DocumentRoot /var/www/monsite.com | ||
+ | |||
+ | <Directory /> | ||
+ | Options -FollowSymLinks | ||
+ | AllowOverride AuthConfig | ||
</Directory> | </Directory> | ||
<Directory /var/www/> | <Directory /var/www/> | ||
Options -Indexes | Options -Indexes | ||
- | Options +FollowSymLinks | + | Options -FollowSymLinks |
- | Options -Includes | + | Options -Includes |
Options -ExecCGI | Options -ExecCGI | ||
Options MultiViews | Options MultiViews | ||
Ligne 397: | Ligne 558: | ||
Allow from all | Allow from all | ||
</Directory> | </Directory> | ||
+ | |||
ErrorLog ${APACHE_LOG_DIR}/error.log | ErrorLog ${APACHE_LOG_DIR}/error.log | ||
+ | |||
# Possible values include: debug, info, notice, warn, error, crit, | # Possible values include: debug, info, notice, warn, error, crit, | ||
# alert, emerg. | # alert, emerg. | ||
Ligne 407: | Ligne 568: | ||
</code> | </code> | ||
- | * On active le site pegaseous.com : | + | * On supprime le fichier "monsite.com" de /var/www/ : |
- | <code root>a2ensite pegaseous.com</code> | + | <code root>cd /var/www/</code> |
+ | <code root>rm -r monsite.com</code> | ||
- | Et on recharge : ''service apache2 reload''. | + | * On crée un lien symbolique "monsite.com" dans /var/www/ vers /home/web/monsite.com/ : |
+ | <code root>ln -s /home/web/monsite.com/ /var/www/monsite.com</code> | ||
- | * Enfin on teste tout ça | + | ====Limiter l'accès à toute l'arborescence du système Linux==== |
- | Au niveau du navigateur : ''http://ip-du-serveur/pegaseous.com'' | + | |
- | <code>Index of /pegaseous.com | + | ===Modifier le groupe de /var/www === |
- | [ICO] Name Last modified Size Description | + | |
- | [DIR] Parent Directory - | + | |
- | [DIR] public_htlm/ 20-Sep-2014 09:15 - | + | |
- | </code> | + | |
- | Si on clique sur : ''public_html'' | + | <code root>chown -R root:www-data /var/www/*</code> |
- | <code>Bienvenue sur pegaseous.com | + | ===On vérifie les droits POSIX de /var/www/ === |
+ | <note tip> | ||
+ | A priori le fichier /var/www/index.html, au même titre que n'importe quelle page web accessible depuis un navigateur web, devrait avoir les droits suivants : | ||
- | Site en cours de réalisation !</code> | + | -rw-r----- 1 root www-data 4096 sept. 22 11:47 index.html |
- | > On peut réactiver "monsite" si on le souhaite. | + | On utilise les droits suivants : |
- | > Dans ce cas on peut accéder à "monsite" en tapant ''http://ip-du-serveur/monsite.com''; | + | * droits en lecture <nowiki>(r)</nowiki> écriture (w) sur les fichiers réguliers, |
- | > ou à "pegaseous.com" en tapant ''http://ip-du-serveur/pegaseous.com''. | + | * droits en lecture <nowiki>(r)</nowiki> écriture (w) exécution (x) sur les répertoires. |
+ | </note> | ||
- | Il reste à ajouter un module par exemple pour le php. | + | * **Pour le répertoire /var/www** , il faut donc :\\ ''drwxr-xr-x 2 root root 4096 sept. 22 11:47 www'' |
- | ===== Installer le module php===== | + | <code root>chmod 755 /var/www</code> |
- | ===Installer libapache2-mod-php5 === | + | |
- | Ce paquet casse le MPM worker et engendre l'installation du MPM prefork.\\ | + | |
- | <code root>install libapache2-mod-php5</code> | + | * **Pour /var/www/index.html**, il faut donc :\\ ''-rw-r----- 1 root www-data 4096 sept. 22 11:47 index.html'' |
+ | <code root>chmod 640 /var/www/index.html</code> | ||
+ | * **Pour /home/web/monsite.com**, il faut donc :\\ ''drwxr-xr-x 3 root www-data 4096 sept. 22 11:44 monsite.com'': | ||
+ | <code root>chmod 755 /home/web/monsite.com/</code> | ||
- | Une fois l'installation effectuée on peut vérifier que php5 est apparu dans /etc/apache2/mod-available. | + | * **Pour /home/web/monsite.com/public_html**, il faut donc :\\ ''drwxr-xr-x 2 root www-data 4096 sept. 22 11:44 public_html'': |
+ | <code root>chmod 755 /home/web/monsite.com/public_html/</code> | ||
- | <code root>ls -l /etc/apache2/mods-available/php5*</code> | + | * **Pour /home/web/monsite.com/public_html/inde**, il faut donc :\\ ''-rw-r----- 1 root www-data 4096 sept. 22 11:44 index.html'' |
- | <code>-rw-r--r-- 1 root root 898 août 21 10:49 /etc/apache2/mods-available/php5.conf | + | <code root>chown root:www-data /home/web/monsite.com/public_html/index.html\ |
- | -rw-r--r-- 1 root root 59 août 21 10:49 /etc/apache2/mods-available/php5.load</code> | + | && chmod 640 /home/web/monsite.com/public_html/index.html</code> |
- | Dans /etc/apache2/mod-enabled, se sont des liens symboliques qui activent ce module: | + | * **Pour le lien symbolique /var/www/monsite.com** : on ne peut pas modifier ces droits mais ce n'est pas grave. Ce qui compte c'est le fichier vers lequel pointe un lien symbolique. |
- | <code root>ls -l /etc/apache2/mods-enabled/php5*</code> | + | |
- | <code>lrwxrwxrwx 1 root root 27 sept. 20 11:40 /etc/apache2/mods-enabled/php5.conf -> ../mods-available/php5.conf | + | |
- | lrwxrwxrwx 1 root root 27 sept. 20 11:40 /etc/apache2/mods-enabled/php5.load -> ../mods-available/php5.load</code> | + | |
- | -> Puisque les liens sont là, le module est activé. | + | ===On vérifie depuis son navigateur=== |
- | ===Activer/désactiver un module === | + | * On ré-active le site "default" |
- | * ''a2enmod'' : (apache2 enable module) : active un module apache2 | + | <code root>a2ensite default</code> |
- | * ''a2dismod'' : (apache2 disable module) : désactive un module apache2 | + | |
- | Si on active ou désactive un module ne pas oublier après l'opération de réactiver apache : ''service apache2 restart'' | + | * On ré-active le site "monsite.com" |
- | ===Créer la page de test === | + | <code root>a2ensite monsite.com</code> |
- | <code>mv /var/www/index.html /var/www/index.php</code> | + | * On recharge apache2 : |
- | <code root>vim /var/www/index.php</code> | + | |
- | <code> | + | |
- | <html> | + | |
- | <body> | + | |
- | <h1>It works!</h1> | + | |
- | <p>This is the default web page for this server.</p> | + | |
- | <?php | + | |
- | echo "La date du jour est " . date("d/m/Y") . "!\n"; | + | |
- | ?> | + | |
- | </body> | + | |
- | </html> | + | |
- | </code> | + | |
- | * Recharger apache : | ||
- | |||
- | <code root>service apache2 restart</code> | ||
- | |||
- | * Tester en tapant dans le navigateur : | ||
- | ''http://ip-du-serveur/'' | ||
- | |||
- | <code>It works! | ||
- | |||
- | This is the default web page for this server. | ||
- | La date du jour est 20/09/2014! </code> | ||
- | |||
- | Puisque tout fonctionne pour utiliser php dans les autres sites, il n'y a qu'à modifier le nom de leur page d'index en index.ph et entrer du code php. | ||
- | |||
- | * Par exemple pour "pegaseous" : | ||
- | |||
- | <code root>mv /home/web/pegaseous.com/public_htlm/index.html /home/web/pegaseous.com/public_htlm/index.php</code> | ||
- | |||
- | <code root>vim /home/web/pegaseous.com/public_htlm/index.php</code> | ||
- | <code><html> | ||
- | <body> | ||
- | <h1>Bienvenue sur pegaseous.com</h1> | ||
- | <p>Site en cours de réalisation !</p> | ||
- | <?php | ||
- | echo "La date du jour est " . date("d/m/Y") . "!\n"; | ||
- | ?> | ||
- | </body> | ||
- | </html></code> | ||
- | |||
- | * Recharger apache : | ||
- | |||
<code root>service apache2 reload</code> | <code root>service apache2 reload</code> | ||
- | * Tester en tapant dans le navigateur : | + | Enfin depuis son navigateur : ''http://ip-serveur/monsite.com/''\\ |
- | ''http://ip-du-serveur/pegaseous.com'' | + | |
- | et cliquer sur ''public_htlm/'' : | + | 8-) **Le login du compte apache (nom de l'utilisateur du système Linux) est demandé ainsi que son mot de passe et on peut accéder à ses pages d'index !** |
- | + | ||
- | <code>Bienvenue sur pegaseous.com | + | |
- | + | ||
- | Site en cours de réalisation ! | + | |
- | La date du jour est 20/09/2014! </code> | + | |
- | + | ||
- | Tous les outils sont en place pour apprendre les langages html et php ! 8-) | + | |