logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 [20/09/2014 17:29]
Hypathie [Configurations d'un site web]
doc:reseau:apache2:tp01 [22/09/2014 11:57]
Hypathie [Installer le module php]
Ligne 200: Ligne 200:
 <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 224: Ligne 224:
 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 289: Ligne 289:
   * Ensuite on va modifier les directives du site "/​etc/​apache2/​sites-available/​monsite.com"​ :   * Ensuite on va modifier les directives du site "/​etc/​apache2/​sites-available/​monsite.com"​ :
  
-Pour ce faire on le désactive d'​abord :+Pour ce faireon le désactive d'​abord :
 <code root>​a2dissite monsite.com</​code>​ <code root>​a2dissite monsite.com</​code>​
  
Ligne 322: Ligne 322:
  
 > ''​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 :   * On réactive le site :
Ligne 331: Ligne 331:
 Et comme indiqué : ''​service apache2 reload''​. Et comme indiqué : ''​service apache2 reload''​.
  
-====Développer son site web dans un /​home/​==== +=====Développer son site web dans un /​home/ ​et restreindre l'​accès par mot de passe===== 
-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.+====Création d'un utilisateur apache2==== 
 +Pas forcément du même nom que celui de l'​utilisateur ​du système Linux 
 +  * Par exemple ​du nom de "​web"​ 
 +<code root>​adduser --system web --ingroup www-data</​code>​
  
-===On désactive "​monsite"​ === +  * On lui crée un mot de passe système : 
-<code root>a2dissite monsite.com</​code>​+<code root> ​passwd web</​code> ​
  
-Et on recharge ​''​service apache2 reload''​.\\ +  * On crée les fichiers du site web, "​monsite.com"​ dans /home/web/: 
 +<​code>​mkdir -p monsite.com/​public_html</​code>​
  
-===Création d'​un ​nouvel ​Virtualhost ===+  * On corrige l'​appartenance et les droits : 
 + 
 +<code root>​chown -R root:​www-data /home/web/ && chmod -R 755 /​home/​web/</​code>​ 
 + 
 +  * On édite un index.html : 
 +<code root>vim /​home/​web/​monsite.com/​public_html/​index.html</​code>​ 
 + 
 +===Création du compte et du mot de passe=== 
 +Le dossier /etc/local est un bon endroit pour créer les fichiers de mots de passe. 
 +<code root>cd /usr/local/ && ls</​code>​ 
 +<​code>​bin ​ etc  games  include ​ lib  man  sbin  share  src</​code>​ 
 + 
 +  * 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>​ 
 + 
 +  * 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>​ 
 + 
 +-> ''​-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''​.\\  
 +-> le mot de passe est chiffré. 
 + 
 +  * On peut aussi créer un groupe par exemple aussi dans le même dossier /​usr/​local/​apache/​passwd/​ 
 +Par exemple du nom de "​groups"​ : 
 +<code root>vim groups</​code>​ 
 +<​code>​goupe1 web toto</​code>​ 
 + 
 +====Création d'un virtualhost avec restriction d'​accès ==== 
 +Pour restreindre l'​accès à l'​utilisateur apache afin qu'un login et mot de passe soit requis pour accéder au site du Virtualhost qui sera crée, il faut modifier d'​abord le virtualhost "/​etc/​apache2/​sites-available/​default"​ 
 +===Configurer le site "​default" ​ === 
 +Cela est nécessaire pour restreindre l'​accès du site qui sera crée dans le répertoire de l'​utilisateur du système ($USER). 
 + 
 +  * On désactive "​default"​ : ''​a2dissite default''​ 
 + 
 +  * On modifie "/​etc/​apache2/​sites-available/​default"​ comme ceci : 
 + 
 +<code root>vim /​etc/​apache2/​sites-available/​default</​code>​ 
 +<​code>​ 
 +<​VirtualHost *:80> 
 +        ServerAdmin webmaster@localhost 
 + 
 +        DocumentRoot /var/www 
 +        <​Directory /> 
 +                Options FollowSymLinks 
 +                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>​ 
 + 
 +===Création d'​un ​compte système pour le Virtualhost ​à créer===
   * Par exemple du nom de "​web"​   * Par exemple du nom de "​web"​
 <code root>​adduser --system web --ingroup www-data</​code>​ <code root>​adduser --system web --ingroup www-data</​code>​
  
-  * On lui crée un mot de passe :+  * On lui crée un mot de passe système ​:
 <code root> passwd web</​code> ​ <code root> passwd web</​code> ​
 +===Création du répertoire et des fichiers pour le site web "​monsite.com"​ ===
 +  * On crée des dossiers principaux :
  
-  * On crée les fichiers du site web, par exemple du nom de "​pegaseous.com":​ +<​code ​root>cd /home/web/ && ​mkdir -p monsite.com/public_html</​code>​
-<​code>​mkdir -p pegaseous.com/public_htlm</​code>​+
  
   * On corrige l'​appartenance et les droits :   * On corrige l'​appartenance et les droits :
Ligne 353: Ligne 437:
 <code root>​chown -R root:​www-data /home/web/ && chmod -R 755 /​home/​web/</​code>​ <code root>​chown -R root:​www-data /home/web/ && chmod -R 755 /​home/​web/</​code>​
  
-  * On édite un index : +  * On édite un index.html 
-<code root>vim /home/web/pegaseous.com/public_htlm/​index.html</​code>​+<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>​
  
-  * On crée un lien symbolique vers /var/www : +  * On supprime "​monsite.com"​ de /var/www
-<code root>ln -s /​home/​web/​pegaseous.com/ ​/var/www/pegaseous.com</​code>​+<code root>cd /var/www/</​code>​ 
 +<code root>rm -r monsite.com</​code>​
  
-  * On édite ​un fichier ​/etc/apache2/sites-available/​pegaseous.com ​+  * On crée un lien symbolique "​monsite.com"​ dans /var/www/ : 
-Pour aller plus vite on peut se servir d'un fichier "sites-available"​ existant qu'on modifie. Par exemple celui du site "monsite.com".+<code root>​ln ​-s /home/web/monsite.com/ /​var/​www/​monsite.com</​code>​
  
-Si on a suivi le wiki du début : +===Création d'un virtualhost pour le nouveau site "monsite.com===
-<​code>​cp /​etc/​apache2/​sites-available/​monsite.com ​/​etc/​apache2/​sites-available/​pegaseous.com</​code>​+
  
-Si on a pas de fichier : ''​vim /​etc/​apache2/​sites-available/​pegaseous.com''​ et on y colle ce qui suit.+<code root>vim /​etc/​apache2/​sites-available/​monsite.com</​code>​
  
-<​code ​text><​VirtualHost *:80>+<​code>​ 
 +<​VirtualHost *:80>
         ServerAdmin webmaster@localhost         ServerAdmin webmaster@localhost
         ServerName pegaseous.com         ServerName pegaseous.com
-        ServerAlias www.pegaseous.com +        ServerAlias www.monsite.com 
- +  
-        DocumentRoot /var/www/pegaseous.com +        DocumentRoot /var/www/monsite.com 
 + 
         <​Directory />         <​Directory />
-                Options FollowSymLinks +                Options ​-FollowSymLinks 
-                AllowOverride ​None+                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 396: Ligne 487:
                 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 406: Ligne 497:
 </​code>​ </​code>​
  
-  * On active le site pegaseous.com +  * On active le site "​monsite.com"
-<code root>​a2ensite pegaseous.com</​code>​+
  
-Et on recharge : ''​service apache2 reload''​.+<code root>​a2ensite monsite.com</​code>​
  
-  * Enfin on teste tout ça  +<code root>​service apache2 reload</code>
-Au niveau du navigateur : ''​http:​//​ip-du-serveur/​pegaseous.com''​+
  
-<​code>​Index of /pegaseous.com +  * On vérifie : 
-[ICO] Name Last modified Size Description +Depuis son navigateur : ''​http:​//​ip-serveur/​monsite.com/''​\\ ​
-[DIR] Parent Directory -  +
-[DIR] public_htlm/​ 20-Sep-2014 09:15 -  +
-</code>+
  
-Si on clique sur : ''​public_html'​' ​+8-) **Le login du compte apache (nom de l'utilisateur du système Linux) est demandé ainsi que son mot de passe.**
  
-<code>Bienvenue sur pegaseous.com+<note tip> 
 +**__À ne pas confondre avec le module userdir__**. 
 +Il permet de créer une page web servie par apache dans le répertoire utilisateur.\\  
 +Par exemple comme ceci :
  
-Site en cours de réalisation !</​code>​+<code root>​a2enmod userdir ​</​code>​ 
 +Cela vient de créer un lien symbolique pour chacun de ces fichier dans "/​etc/​apache2/​mods-enabled"​
  
-On peut réactiver "​monsite"​ si on le souhaite. +  * On recharge apache : ''​service apache2 restart''​ 
-> Dans ce cas on peut accéder à "​monsite" ​en tapant ​''​http://ip-du-serveur/monsite.com''​; + 
-> ou à "​pegaseous.com"​ en tapant ​''​http://​ip-du-serveur/pegaseous.com''​.+**__Pour tester ​le module__** : 
 + 
 +D'​abord il faut se loger en user ''​exit''​ 
 +  * On crée un index.html dans le répertoire de l'​utilisateur principal du système ​: 
 +<code user>​cd ​/home/$USER</​code>​ 
 +<code user>​mkdir ~/​public_html && echo\ 
 + "<​html><​body>​Notre test du module UserDir</​body></​html>"​\ 
 + > ~/​public_html/index.html</​code>​ 
 +  * On recharge apache : ''​service apache2 restart''​ 
 +  * On vérifie que la page est accessible : 
 +Dans le navigateur : ''​http://​ip-serveur/​~utilisateur''​ 
 +<​code>​Notre test du module UserDir</​code>​ 
 +</​note>​
  
 Il reste à ajouter un module par exemple pour le php.  Il reste à ajouter un module par exemple pour le php. 
Ligne 435: Ligne 537:
 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]])).\\ ​ 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>​install libapache2-mod-php5</​code>​+<code root>apt-get ​install libapache2-mod-php5</​code>​
  
  
Ligne 444: Ligne 546:
 -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>​
  
-Dans /​etc/​apache2/​mod-enabled, ​se 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>​
 <​code>​lrwxrwxrwx 1 root root 27 sept. 20 11:40 /​etc/​apache2/​mods-enabled/​php5.conf -> ../​mods-available/​php5.conf <​code>​lrwxrwxrwx 1 root root 27 sept. 20 11:40 /​etc/​apache2/​mods-enabled/​php5.conf -> ../​mods-available/​php5.conf
Ligne 486: Ligne 588:
 La date du jour est 20/09/2014! </​code>​ 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.+Puisque tout fonctionnepour 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 "pegaseous" :+  * Par exemple pour "monsite.com" :
  
-<code root>mv /home/web/pegaseous.com/public_htlm/index.html /home/web/pegaseous.com/public_htlm/​index.php</​code>​+<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/pegaseous.com/public_htlm/​index.php</​code>​+<code root>vim /home/web/monsite.com/public_html/​index.php</​code>​
 <​code><​html>​ <​code><​html>​
  <​body>​  <​body>​
- <​h1>​Bienvenue sur pegaseous.com</​h1>​+ <​h1>​Bienvenue sur monsite.com</​h1>​
   <​p>​Site en cours de réalisation !</p>   <​p>​Site en cours de réalisation !</p>
 <?php <?php
Ligne 508: Ligne 610:
  
   * Tester en tapant dans le navigateur :   * Tester en tapant dans le navigateur :
-''​http://​ip-du-serveur/​pegaseous.com''​+''​http://​ip-du-serveur/​monsite.com''​
  
-et cliquer sur ''​public_htlm/''​ :+et cliquer sur ''​public_html/''​ :
  
-<​code>​Bienvenue sur pegaseous.com+<​code>​Bienvenue sur monsite.com
  
 Site en cours de réalisation ! Site en cours de réalisation !
doc/reseau/apache2/tp01.txt · Dernière modification: 01/11/2019 08:43 par smolski

Pied de page des forums

Propulsé par FluxBB