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
apache2 [Le 30/04/2013, 08:27]
tiramiseb [Configuration]
apache2 [Le 27/08/2016, 13:52]
85.218.40.80 [Mod_deflate - Compression gzip] m
Ligne 4: Ligne 4:
  
 ====== Serveur HTTP Apache 2 ====== ====== Serveur HTTP Apache 2 ======
 +
  
 **Apache** est le plus populaire des serveurs HTTP. Il est produit par la « Apache Software Foundation ». C'est un logiciel libre fourni sous la [[wpfr>​Licence_Apache|licence spécifique Apache]], [[http://​www.apache.org/​licenses/​|licence (en)]]. **Apache** est le plus populaire des serveurs HTTP. Il est produit par la « Apache Software Foundation ». C'est un logiciel libre fourni sous la [[wpfr>​Licence_Apache|licence spécifique Apache]], [[http://​www.apache.org/​licenses/​|licence (en)]].
Ligne 14: Ligne 15:
 Des liens vers [[tutoriel:​securiser_apache2_avec_ssl|sécuriser Apache avec SSL]], [[tutoriel:​virtualhosts_avec_apache2|virtualhosts avec Apache]] et d'​autres documentations seront donnés au moment opportun.\\ Des liens vers [[tutoriel:​securiser_apache2_avec_ssl|sécuriser Apache avec SSL]], [[tutoriel:​virtualhosts_avec_apache2|virtualhosts avec Apache]] et d'​autres documentations seront donnés au moment opportun.\\
  
 +<note important>​Utilisateurs de Ubuntu 13.10 et suivante : 
 +
 +La version de Apache installée sur cette distribution est la version 2.4.6-2.
 +Ce changement de version implique des changements de certaines directives présentes dans vos VHOSTS.
 +
 +Référez-vous à la page : [[http://​httpd.apache.org/​docs/​2.4/​upgrading.html]] ; cette page décrit, en détails, les changements entre la version 2.2 et la version 2.4.
 +</​note>​
 ===== Pré-requis ===== ===== Pré-requis =====
  
-  * Quelques connaissances de base des protocoles HTTP, DNS et TCP/IP (adressage, sous-réseaux,​ etc.) ;+  * Quelques connaissances de base des protocoles HTTP, DNS (ou /etc/hosts configuré) ​et TCP/IP (adressage, sous-réseaux,​ etc.) ;
   * Un réseau local en état de marche (IP attribuées,​ connexion à internet) ;   * Un réseau local en état de marche (IP attribuées,​ connexion à internet) ;
   * Un serveur ​    ​[[:​bind9|DNS]] configuré (pour le domaine).   * Un serveur ​    ​[[:​bind9|DNS]] configuré (pour le domaine).
  
-===== Introduction : HTTP l======+===== Introduction : HTTP ======
 ==== Qu'​est-ce que le Web ? ==== ==== Qu'​est-ce que le Web ? ====
  
Ligne 59: Ligne 67:
 ==== Mode de fonctionnement sommaire ==== ==== Mode de fonctionnement sommaire ====
  
-Au moment de son démarrage, Apache charge les [[#fichiers de configuration]] de la machine locale et se met en attente de requêtes sur les interfaces réseaux.+Au moment de son démarrage, Apache charge les  [[apache2#configuration|fichiers de configuration]] de la machine locale et se met en attente de requêtes sur les interfaces réseaux.
  
 Lorsque vous utilisez votre navigateur Web (un client HTTP), que vous cliquiez sur un lien ou que vous rentriez directement l'​adresse dans la barre d'​adresse,​ Lorsque vous utilisez votre navigateur Web (un client HTTP), que vous cliquiez sur un lien ou que vous rentriez directement l'​adresse dans la barre d'​adresse,​
Ligne 81: Ligne 89:
 ===== Installation ===== ===== Installation =====
  
-Apache est composé de plusieurs paquets.+Apache est composé de plusieurs paquets...
 ====Installation de base==== ====Installation de base====
  
-=== Versions ​Jusqu'à Ubuntu 6.06 ===+=== Versions ​jusqu'à Ubuntu 6.06 ===
 [[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​apache2,​apache2-utils,​apache2-mpm-prefork,​libapache2-mod-chroot,​libapache2-mod-auth-pam,​libapache2-mod-auth-sys-group|apache2 apache2-utils apache2-mpm-prefork libapache2-mod-chroot libapache2-mod-auth-pam libapache2-mod-auth-sys-group]]**\\ [[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​apache2,​apache2-utils,​apache2-mpm-prefork,​libapache2-mod-chroot,​libapache2-mod-auth-pam,​libapache2-mod-auth-sys-group|apache2 apache2-utils apache2-mpm-prefork libapache2-mod-chroot libapache2-mod-auth-pam libapache2-mod-auth-sys-group]]**\\
  
Ligne 95: Ligne 103:
 À la suite de cette installation votre serveur doit fonctionner et être accessible à l'​adresse suivante [[http://​localhost]] (à partir de la même machine). À la suite de cette installation votre serveur doit fonctionner et être accessible à l'​adresse suivante [[http://​localhost]] (à partir de la même machine).
  
-Un beau message va s'​afficher dans votre navigateur ​ **It Works**, c'est le contenu du fichier **/​var/​www/​index.html** (configuration par défaut)+Un beau message va s'​afficher dans votre navigateur ​ **It Works**, c'est le contenu du fichier **/var/www/​index.html** ou **/​var/​www/​html/​index.html** (configuration par défaut) 
 + 
 +=== Depuis Ubuntu 14.04=== 
 +Depuis cette version, le répertoire par défaut n'est plus "/​var/​www"​ mais "/​var/​www/​html"​. Si vous n'avez pas touché aux fichiers de config par défaut de apache et que vos sites en localhost ne sont plus accessibles,​ vous pouvez les déplacer dans ce dossier "/​var/​www/​html"​ ou changer le chemin du "​DocumentRoot"​ dans le fichier "/​etc/​apache2/​sites-available/​000-default.conf"​
 ====La bibliothèque,​ le serveur et ses outils==== ====La bibliothèque,​ le serveur et ses outils====
  
 ^ Nom ^ Rôle ^ ^ Nom ^ Rôle ^
-| [[apt>​libapr1|libapr1]] | Apache'​s Portable Runtime Library, bibliothèque de fonctions standards portables. | +**[[apt>​libapr1|libapr1]]** | Apache'​s Portable Runtime Library, bibliothèque de fonctions standards portables. | 
-| [[apt>​apache2|apache2]] | Ce paquet contient le serveur. | +**[[apt>​apache2|apache2]]** | Ce paquet contient le serveur. | 
-| [[apt>​apache2.2-common|apache2.2-common]] |Ce paquet contient les modules standards apache2, qui incluent le support SSL. | +**[[apt>​apache2.2-common|apache2.2-common]]** |Ce paquet contient les modules standards apache2, qui incluent le support SSL. | 
-| [[apt>​apache2-utils|apache2-utils]] | Outils pour serveurs web. |+**[[apt>​apache2-utils|apache2-utils]]** | Outils pour serveurs web. |
  
-<note tip>Pour Dapper, remplacez par ''​[[apt>​libapr0|libapr0]]'' ​et ''​[[apt>​apache2-common|apache2-common]]''​</​note>​+<note tip>​Pour ​[[Dapper]], remplacez par **[[apt>​libapr0|libapr0]]** et **[[apt>​apache2-common|apache2-common]]**.</​note>​
  
 ==== Le MPM ==== ==== Le MPM ====
Ligne 114: Ligne 125:
 | **[[apt>​apache2-mpm-worker|apache2-mpm-worker]]** | Modèle à processus haute vitesse pour Apache2 version avec thread, il est considérablement plus rapide que la version traditionnelle et **c'​est le MPM recommandé**. | | **[[apt>​apache2-mpm-worker|apache2-mpm-worker]]** | Modèle à processus haute vitesse pour Apache2 version avec thread, il est considérablement plus rapide que la version traditionnelle et **c'​est le MPM recommandé**. |
 | **[[apt>​apache2-mpm-itk|apache2-mpm-itk]]** | Permet d'​exécuter les scripts php avec les droits d'un utilisateur donné dans un virtualhost. | | **[[apt>​apache2-mpm-itk|apache2-mpm-itk]]** | Permet d'​exécuter les scripts php avec les droits d'un utilisateur donné dans un virtualhost. |
 +
 +<note important>​A partir de Trusty 14.04, ces paquets pour le choix du MPM sont devenus obsolètes. Cependant, ils continuent d'​exister pendant une phase de transition. Leur unique fonction est d'​installer le paquet //apache2// par le mécanisme des dépendances.</​note>​
  
  
Ligne 129: Ligne 142:
   * **''​httpd.conf''​** est le fichier utilisé par apache1, il est conservé vide dans Apache2 pour assurer la rétrocompatibilité. Il ne nous servira pas ;   * **''​httpd.conf''​** est le fichier utilisé par apache1, il est conservé vide dans Apache2 pour assurer la rétrocompatibilité. Il ne nous servira pas ;
   * **''​envvars''​** est utilisé pour définir des variables d'​environnement propres à Apache ;   * **''​envvars''​** est utilisé pour définir des variables d'​environnement propres à Apache ;
-  * **''​ports.conf''​** contient la directive listen qui spécifie les adresses et les ports d'​écoutes ;+  * **''​ports.conf''​** contient la directive ​//listen// qui spécifie les adresses et les ports d'​écoutes ;
   * **''​apache2.conf''​** est le fichier principal de configuration c'est à partir de lui que tous les autres fichiers sont chargés ;   * **''​apache2.conf''​** est le fichier principal de configuration c'est à partir de lui que tous les autres fichiers sont chargés ;
   * **''​conf.d''​** est un répertoire qui contient plusieurs petits fichiers qui seront analysés par apache. Le seul fichier pour le moment est ''​charset'',​ qui spécifie l'​encodage à utiliser par défaut ;   * **''​conf.d''​** est un répertoire qui contient plusieurs petits fichiers qui seront analysés par apache. Le seul fichier pour le moment est ''​charset'',​ qui spécifie l'​encodage à utiliser par défaut ;
   * **''​mods-available''​** contient la liste des modules d'​apache installés ;   * **''​mods-available''​** contient la liste des modules d'​apache installés ;
-  * **''​mods-enabled''​** celle des modules ​utilisés ​;+  * **''​mods-enabled''​** celle des modules ​activées ​;
   * **''​sites-available''​** contient la liste des vhosts installés ;   * **''​sites-available''​** contient la liste des vhosts installés ;
-  * **''​sites-enabled''​** celle des vhosts ​utilisés.+  * **''​sites-enabled''​** celle des vhosts ​activées
  
 ==== Configuration des interfaces ==== ==== Configuration des interfaces ====
Ligne 567: Ligne 580:
 Ce fichier contient les différents **vhosts**((Un vhost signifie //Virtual Host// ; //Hôte Virtuel//​.)) que vous utiliserez. Ils vous permettent de **définir plusieurs sites** sur une même machine,\\ Ce fichier contient les différents **vhosts**((Un vhost signifie //Virtual Host// ; //Hôte Virtuel//​.)) que vous utiliserez. Ils vous permettent de **définir plusieurs sites** sur une même machine,\\
 le plus souvent des sous-domaines (**www**.domain.tld,​ **machin**.domain.tld...),​ mais aussi d'​autres domaines (**domain**.tld,​ **autredomain**.tld...).\\ le plus souvent des sous-domaines (**www**.domain.tld,​ **machin**.domain.tld...),​ mais aussi d'​autres domaines (**domain**.tld,​ **autredomain**.tld...).\\
-<note note>Si vous voulez utiliser plusieurs hôtes ​virtuel ​voir [[:​tutoriel:​virtualhosts_avec_apache2|virtualhosts_avec_apache2]]</​note>​+<note note>Si vous voulez utiliser plusieurs hôtes ​virtuels ​voir [[:​tutoriel:​virtualhosts_avec_apache2|virtualhosts_avec_apache2]]</​note>​
 [[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/​etc/​apache2/​sites-available/​default** (le seul vhost existant pour le moment). [[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/​etc/​apache2/​sites-available/​default** (le seul vhost existant pour le moment).
  
Ligne 575: Ligne 588:
 # 127.0.0.1 (boucle locale), 192.168.x.x (ip reseau local), ou une IP externe. # 127.0.0.1 (boucle locale), 192.168.x.x (ip reseau local), ou une IP externe.
 # Cette directive est en dehors du Vhost, on pourrait donc la déplacer dans apache2.conf. # Cette directive est en dehors du Vhost, on pourrait donc la déplacer dans apache2.conf.
-# Dans tous les cas si elle est définie à * , elle ne doit pas être reprise dans les autres vhosts.+# Dans tous les cassi elle est définie à * , elle ne doit pas être reprise dans les autres vhosts.
 NameVirtualHost *:80 NameVirtualHost *:80
  
 # Le vhost proprement dit : il est compris dans un bloc <​VirtualHost>,​ # Le vhost proprement dit : il est compris dans un bloc <​VirtualHost>,​
 # Ces blocs définissent la "​portée"​ de la validité des directives qui y sont définies. # Ces blocs définissent la "​portée"​ de la validité des directives qui y sont définies.
-# Le * derrière VirtualHost définit ici que le vhost est valable pour toutes les IPs sur lesquelles apache écoute.+# Le * derrière VirtualHost définit ici que le vhost est valable pour toutes les IP sur lesquelles apache écoute.
 <​VirtualHost domain.tld:​80>​ <​VirtualHost domain.tld:​80>​
-# ServerName ​définie ​le nom utilisé pour le vhost. Mettez le nom de l'​hôte du domaine+# ServerName ​définit ​le nom utilisé pour le vhost. Mettez le nom de l'​hôte du domaine
 ServerName www.domain.tld ServerName www.domain.tld
-# ServerAlias ​définie ​les autres sous domaines pour lesquels le serveur répondra.+# ServerAlias ​définit ​les autres sous-domaines pour lesquels le serveur répondra.
 ServerAlias domain.tld *.domain.tld ServerAlias domain.tld *.domain.tld
 # ServerAdmin vous permet de spécifier un email à utiliser en cas de problème, sur une page d'​erreur 404 par exemple. # ServerAdmin vous permet de spécifier un email à utiliser en cas de problème, sur une page d'​erreur 404 par exemple.
Ligne 592: Ligne 605:
         # Directory définit les options par défaut du répertoire         # Directory définit les options par défaut du répertoire
  <​Directory /​var/​www/​htdocs>​  <​Directory /​var/​www/​htdocs>​
-                # Active les options:+                # Active les options :
                 # FollowSymLinks permet de suivre les liens symboliques.                 # FollowSymLinks permet de suivre les liens symboliques.
                 # Indexes autorise le listage de fichiers d'un répertoire qui ne contient pas d'​index.                 # Indexes autorise le listage de fichiers d'un répertoire qui ne contient pas d'​index.
Ligne 601: Ligne 614:
  Order allow,deny  Order allow,deny
  allow from all  allow from all
- # permet de rediriger les requêtes vers un fichier d'​index ​precis ​+ # permet de rediriger les requêtes vers un fichier d'​index ​précis ​
  RedirectMatch ^/$ /index.php  RedirectMatch ^/$ /index.php
  </​Directory>​  </​Directory>​
Ligne 618: Ligne 631:
  
 Il faut maintenant **activer le vhost**. Pour cela il faut créer un **lien symbolique** du fichier **de sites-available/​ vers sites-enabled/​**.\\ Il faut maintenant **activer le vhost**. Pour cela il faut créer un **lien symbolique** du fichier **de sites-available/​ vers sites-enabled/​**.\\
-En utilisant:+En utilisant :
  
 <​code>​sudo a2ensite nomduvhost</​code>​ <​code>​sudo a2ensite nomduvhost</​code>​
Ligne 628: Ligne 641:
 Cette méthode du lien symbolique permet de réaliser rapidement des changements dans la configuration d'​apache. Cette méthode du lien symbolique permet de réaliser rapidement des changements dans la configuration d'​apache.
  
-[[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/​etc/​hosts** et modifier la ligne avec nomduvhost le ServerName que vous avez choisi:+[[:​tutoriel:​comment_editer_un_fichier|Éditez le fichier]] **/​etc/​hosts** et modifier la ligne avec nomduvhost le ServerName que vous avez choisi :
  
 <​file>​127.0.0.1 localhost nomduvhost</​file>​ <​file>​127.0.0.1 localhost nomduvhost</​file>​
Ligne 634: Ligne 647:
 Cela permettra à votre système de faire la correspondance entre le nom de l'​hôte et votre machine locale. Cela permettra à votre système de faire la correspondance entre le nom de l'​hôte et votre machine locale.
  
-Notez que sous debian/ubuntu ​2 les pages a utiliser comme index sont spécifiées dans le module dir (mods-available/​dir.conf).+Notez que sous Debian/Ubuntu ​2 les pages a utiliser comme index sont spécifiées dans le module dir (mods-available/​dir.conf).
  
 == Activer les scripts CGI ==== == Activer les scripts CGI ====
Ligne 713: Ligne 726:
 <​code>​sudo service apache2 start | stop | restart | status </​code>​ <​code>​sudo service apache2 start | stop | restart | status </​code>​
  
-Il existe des interfaces graphiques pour utiliser Apache. De la plus simple à la plus complète : [[https://​launchpad.net/​localhost-indicator|localhost-indicator]][[https://​launchpad.net/​rapache|rapache]] ​et [[http://​doc.ubuntu-fr.org/​webmin|webmin]]. ​+Il existe des interfaces graphiques pour utiliser Apache. De la plus simple à la plus complète : [[https://​launchpad.net/​localhost-indicator|localhost-indicator]] ​et [[https://​launchpad.net/​rapache|rapache]] ​
  
 ==== Erreur au démarrage ==== ==== Erreur au démarrage ====
Ligne 723: Ligne 736:
 Pour corriger l'​erreur : Pour corriger l'​erreur :
 === Première solution === === Première solution ===
-On doit [[:​tutoriel:​comment_modifier_un_fichier|éditer le fichier]] **/​etc/​apache2/​httpd.conf**+On doit [[:​tutoriel:​comment_modifier_un_fichier|éditer le fichier]] **/​etc/​apache2/​apache2.conf**
  
 Par défaut ce fichier est vide, il faut donc ajouter la ligne suivante: Par défaut ce fichier est vide, il faut donc ajouter la ligne suivante:
  
 <​code>​ServerName localhost</​code>​ <​code>​ServerName localhost</​code>​
 +
 +<note tip>On peut l'​écrire aussi directement à la fin du fichier **/​etc/​apache2/​apache2.conf** si ça ne marche vraiment pas (ce qui a été mon cas).</​note>​
  
 On enregistre, on quitte et on redémarre Apache : On enregistre, on quitte et on redémarre Apache :
Ligne 760: Ligne 775:
 Nous pouvons maintenant passer à la phase de vérification.\\ Nous pouvons maintenant passer à la phase de vérification.\\
  
-Si il y a des messages d'​erreurs regarder les fichiers ​suivant:\\+S'il y a des messages d'​erreurs regarder les fichiers ​suivants ​:\\
 <​code>​ <​code>​
-tail /​var/​log/​syslog +tail -f /​var/​log/​syslog 
-tail /​var/​log/​apache2/​access.log +tail -f /​var/​log/​apache2/​access.log 
-tail /​var/​log/​apache2/​error.log+tail -f /​var/​log/​apache2/​error.log
 </​code>​ </​code>​
  
Ligne 797: Ligne 812:
  
 Il est possible d'​ajouter des modules à apache, ajoutant des fonctionnalités à votre serveur web. Il est possible d'​ajouter des modules à apache, ajoutant des fonctionnalités à votre serveur web.
-Tous les modules sont répertoriés ici :  +Tous les modules sont répertoriés ici : /​etc/​apache2/​mods-available 
-==== Activer l'url rewriting ====+==== Activer l'URL rewriting ====
  
 Chargez le module rewrite : Chargez le module rewrite :
-<​code>​sudo a2enmod rewrite</​code>​+<​code>​a2enmod rewrite</​code>​
  
 Ensuite, deux possibilités s'​offrent à vous suivant vos capacités de gestion de votre serveur : Ensuite, deux possibilités s'​offrent à vous suivant vos capacités de gestion de votre serveur :
-  * **pour un serveur mutualisé par exemple** : placer ​ un fichier .htaccess avec des règles de rewriting à la racine de votre site. Pour cela les fichiers .htaccess doivent être autorisé ​: [[:​apache2#​activer_les_fichiers_.htaccess | Activer les fichiers .htaccess]]+  * **pour un serveur mutualisé par exemple** : placer ​ un fichier .htaccess avec des règles de rewriting à la racine de votre site. Pour cela les fichiers .htaccess doivent être autorisés ​: [[:​apache2#​activer_les_fichiers_.htaccess | Activer les fichiers .htaccess]]
   * **pour un serveur dédié ou un serveur personnel** (sur votre propre distribution) il est conseillé d'​ajouter les règles de rewriting directement dans le fichier de configuration d'​Apache2 : /​etc/​apache2/​apache2.conf en recopiant les lignes suivantes à la fin dudit fichier.   * **pour un serveur dédié ou un serveur personnel** (sur votre propre distribution) il est conseillé d'​ajouter les règles de rewriting directement dans le fichier de configuration d'​Apache2 : /​etc/​apache2/​apache2.conf en recopiant les lignes suivantes à la fin dudit fichier.
  
Ligne 815: Ligne 830:
  
 # Lorsque l'on tape dans la barre d'​adresse www.votre_domaine.net/​page-1 c'est la page www.votre_domaine.net/​page.php?​id=1 qui s'​affiche # Lorsque l'on tape dans la barre d'​adresse www.votre_domaine.net/​page-1 c'est la page www.votre_domaine.net/​page.php?​id=1 qui s'​affiche
-# [L]=[last] signifie que si cette régle ​s'​applique on n'en cherche pas d'​autre+# [L]=[last] signifie que si cette règle ​s'​applique on n'en cherche pas d'​autre
 RewriteRule ^page-1$ /​page.php?​id=1 [L] RewriteRule ^page-1$ /​page.php?​id=1 [L]
  
Ligne 879: Ligne 894:
 Le mod_deflate sur apache2 permet de gagner en rapidité et en bande passante grâce à la compression des données qui transitent entre le serveur et les clients. La compression utilisée est gzip. L'​installation ci-dessous permet de compresser les fichiers texte (html, css,...). Le mod_deflate sur apache2 permet de gagner en rapidité et en bande passante grâce à la compression des données qui transitent entre le serveur et les clients. La compression utilisée est gzip. L'​installation ci-dessous permet de compresser les fichiers texte (html, css,...).
  
-**Activation des modules deflate et headers: ** +**Activation des modules deflate et headers : ** 
  
    sudo a2enmod headers    sudo a2enmod headers
    sudo a2enmod deflate    sudo a2enmod deflate
  
-**Configuration de deflate: **+**Configuration de deflate : **
  
-Créez ou modifiez le fichier /​etc/​apache2/​conf.d/​mod_deflate.conf et ajoutez-y:+Créez ou modifiez le fichier /​etc/​apache2/​conf.d/​mod_deflate.conf et ajoutez-y :
  
    <​Location />    <​Location />
Ligne 909: Ligne 924:
 Les pages seront compressées quand le client le supporte. Les pages seront compressées quand le client le supporte.
  
-<note tip>Si un message d'​erreur de ce type apparait ​:+<note tip>Si un message d'​erreur de ce type apparaît ​:
  
 apache2: Could not reliably determine the server'​s fully qualified domain name, using 127.0.1.1 for ServerName. apache2: Could not reliably determine the server'​s fully qualified domain name, using 127.0.1.1 for ServerName.
Ligne 915: Ligne 930:
 Voir [[apache2?&#​erreur_au_demarrage|ici]] </​note>​ Voir [[apache2?&#​erreur_au_demarrage|ici]] </​note>​
 ==== mod_userdir gérer les dossiers utilisateur ==== ==== mod_userdir gérer les dossiers utilisateur ====
-Cette partie est déjà documentée ​pour xampp ici http://​doc.ubuntu-fr.org/​xampp#​modifier_le_dossier_racine_du_serveur_apache mais je préfère ​le mettre dans apache.+Cette partie est déjà documentée ​sur [[:​xampp#​modifier_le_dossier_racine_du_serveur_apache|la page xampp]] ​mais reprenons ​le ici.
  
 Certaines personnes aimeraient faire en sorte à ce que chaque utilisateur du serveur puisse avoir son site web perso.\\ Certaines personnes aimeraient faire en sorte à ce que chaque utilisateur du serveur puisse avoir son site web perso.\\
 Ce site peut être accessible par : http://​mondomaine.com/​~nom_du_user Ce site peut être accessible par : http://​mondomaine.com/​~nom_du_user
 +<​note>​ dans la plupart des cas c'est http://​localhost/​~nom_du_user</​note>​
  
-Pour cela, le module userdir est fait pour vous. 
  
-Activer le module userdir +=== Permettre à chaque utilisateur d'​avoir son propre site dans public_html === 
-  sudo a2enmod userdir + 
-Le fichier suivant contient sa configuration ''​/​etc/​apache2/​mods-available/userdir.conf''​+Créer un répertoire public_html et lui donner les droits de lecture et d'​exécution 
 +<​code>​ 
 +mkdir ~/​public_html 
 +echo '<?​php echo "PHP est actif dans votre public_html";​ ?>' > ~/​public_html/​index.php 
 +chmod -R 755 ~/​public_html 
 +</​code>​ 
 + 
 +===Activer ​l'​exécution en php pour le module userdir ​(à partir de Ubuntu 10.04 (Lucid)) === 
 +Editer ​/​etc/​apache2/​mods-enabled/php5.conf et commenter les lignes correspondantes (avec ##) dans le fichier php5.conf qui se trouve dans /​etc/​apache2/​mods-enabled.
  
-Son contenu est le suivant : 
 <​file>​ <​file>​
-<IfModule mod_userdir.c+<FilesMatch ".+\.ph(p[345]?​|t|tml)$"​
-        ​UserDir public_html +    ​SetHandler application/​x-httpd-php 
-        ​UserDir disabled root+</​FilesMatch>​ 
 +<​FilesMatch "​.+\.phps$">​ 
 +    SetHandler application/​x-httpd-php-source 
 +    # Deny access to raw php sources by default 
 +    # To re-enable it's recommended to enable access to the files 
 +    # only in specific virtual host or directory 
 +    Order Deny,​Allow 
 +    Deny from all 
 +</​FilesMatch>​ 
 +# Deny access to files without filename (e.g. '​.php'​) 
 +<​FilesMatch "​^\.ph(p[345]?​|t|tml|ps)$">​ 
 +    Order Deny,​Allow 
 +    Deny from all 
 +</​FilesMatch>​
  
-        ​<​Directory /​home/​*/​public_html>​ +# Running PHP scripts in user directories is disabled by default 
-                ​AllowOverride FileInfo AuthConfig Limit Indexes +#  
-                ​Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec +# To re-enable PHP in user directories comment the following lines 
-                <Limit GET POST OPTIONS+# (from <​IfModule ...> to </​IfModule>​.) Do NOT set it to On as it 
-                        Order allow,deny +# prevents .htaccess files from disabling it. 
-                        Allow from all +##<​IfModule mod_userdir.c>​ 
-                </Limit+##    ​<​Directory /​home/​*/​public_html>​ 
-                <LimitExcept GET POST OPTIONS+##        php_admin_flag engine Off 
-                        Order deny,allow +##    </​Directory>​ 
-                        ​Deny ​from all +##</IfModule
-                </LimitExcept+</​file>​ 
-        </​Directory>​+ 
 +== (Pour mémoire) ​ Ancienne version de php5.conf == 
 +<​file>​ 
 +<​IfModule mod_php5.c>​ 
 +    <​FilesMatch "​\.ph(p3?​|tml)$">​ 
 + SetHandler application/​x-httpd-php 
 +    ​</FilesMatch
 +    <FilesMatch "​\.phps$"​
 + SetHandler application/​x-httpd-php-source 
 +    </​FilesMatch>​ 
 +    # To re-enable php in user directories comment the following lines 
 +    # (from <​IfModule ...> to </​IfModule>​.) Do NOT set it to On as it 
 +    # prevents .htaccess files from disabling it. 
 +    ##<IfModule mod_userdir.c>​ 
 +    ##      <​Directory ​/home/​*/​public_html
 +    ## ​       php_admin_value engine Off 
 +    ##     </​Directory
 +    ##</​IfModule>
 </​IfModule>​ </​IfModule>​
 </​file>​ </​file>​
  
-<​note>​La directive UserDir désigne le nom du dossier qui est contenu dans le dossier ​personnel ​de l'​utilisateur si une url du type ~utilisateur est reçue. Vous pouvez donc la changer si vous voulez que ça soit autre chose que la valeur par défaut.</​note>​+===Optionnel : Personnaliser votre répertoire de site === 
 +  
 +Il est possible de changer ​le dossier ​par défaut (public_html) ​de votre site par un autre répertoire.
  
-Redémarrer apache+==Éditer le fichier de configuration de userdir ==
  
-Créer un dossier nommé ​public_html dans votre home et essayer, ça devrait marcher ​:)+Modifier la variable <<​UserDir ​public_html>> ​dans le fichier /​etc/​apache2/​mods-available/​userdir.conf ​: 
 +<​file><​IfModule mod_userdir.c>​ 
 + UserDir public_html 
 + UserDir disabled root
  
-<note warning> Sur Ubuntu 11.04, les droits d'​accès au répertoire ​/home/user sont insuffisants. Vous risquez d'​avoir une erreur 403 "​permission denied"​. SI le user est john, faire la manip suivante : + <Directory ​/home/*/​public_html>​ 
- + AllowOverride FileInfo AuthConfig Limit Indexes 
-  chgrp www-data /home/john+ Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec 
-  chmod 750 /home/john+ <Limit GET POST OPTIONS>​ 
-   + Require all granted 
-</note>+ </Limit> 
 + <​LimitExcept GET POST OPTIONS>​ 
 + Require all denied 
 + </LimitExcept>​ 
 + </​Directory>​ 
 +</IfModule>
  
-<note warning>​Sur Ubuntu 10.04 (Lucid) et 11.04 l'​exécution en php est désactivée par défaut avec ce module. Pour changer ça et éviter que le navigateur télécharge le code php directement,​ éditer le fichier ''/​etc/​apache2/​mods-enabled/​php5.conf''​ et commentez les lignes comme ci dessous ​: +# vimsyntax=apache ts=4 sw=4 sts=4 sr noet
-<​file>​ +
-[..] +
-#    <​IfModule mod_userdir.c>​ +
-#        <​Directory /​home/​*/​public_html>​ +
-#            php_admin_value engine Off +
-#        </​Directory>​ +
-#    </​IfModule>​ +
-[..]+
 </​file>​ </​file>​
-</note>+ 
 +===Activer le module userdir=== 
 +<code> 
 +sudo a2enmod userdir 
 +sudo /etc/​init.d/​apache2 reload 
 +</​code>​ 
 + 
 +Dans le navigateur web rendez-vous à l'​adresse http://​127.0.0.1/​~nom_du_user et vérifier que le message <<//​PHP est actif dans votre public_htm//>​s'​affiche. 
  
 ==== mod_proxy ou comment rediriger certains domaines vers certaines machines ==== ==== mod_proxy ou comment rediriger certains domaines vers certaines machines ====
Ligne 1051: Ligne 1113:
  
 [[:​eaccelerator]] [[:​eaccelerator]]
 +
 +
 +===== Empêcher le démarrage automatique d'​apache =====
 +<note warning> Méthode déconseillée pour un serveur en production ! </​note>​
 +
 +<​note>​Dans le cas d'un ordinateur de bureau, **apache** est souvent utilisé de façon occasionnelle pour développer et tester en local.
 +
 +Pour les amoureux de l'​écologie c'est de l'​énergie gaspillée sans raison valable. ​
 +
 +Pour les machines à faibles ressources, apache diminue la vitesse de démarrage  ​
 +
 +Autant de raisons valables pour démarrer manuelle apache quand nous en avons besoin et enlever le <<​[[https://​fr.wikipedia.org/​wiki/​Daemon_%28informatique%29|daemon]]>>/​service de démarrage automatique ! </​note>​
 +
 +==== Modifier le service apache avec upstart ====
 +Se reporter à l'​exemple : [[upstart#​utilisation|Upstart]]
 +
 +==== 
 +==== Restaurer le démarrage automatique d'​apache avec update-rc.d ====
 +
 +<​code>​ user@PCMachine:​~$ sudo update-rc.d apache2 default </​code>​
 +
  
  
Ligne 1064: Ligne 1147:
    * [[tutoriel/​securiser_apache2]]    * [[tutoriel/​securiser_apache2]]
    * [[tutoriel/​securiser_apache2_avec_ssl]]    * [[tutoriel/​securiser_apache2_avec_ssl]]
-   * (fr) [[http://​www.neoflow.fr/​tutoriels.category.51/apache.html|Plusieurs tutoriels sur la configuration d'​Apache]]+   * [[lamp_plus|serveur LAMP aller plus loin]] 
 +   * (fr) [[http://​www.it-connect.fr/​tutoriels/​serveur-web/apache/|Plusieurs tutoriels sur la configuration d'​Apache ​sur IT-Connect]] 
 +   * (fr) [[http://​documentation.online.net/​fr/​serveur-dedie/​tutoriel/​installation-solution-lamp_apache-php-mysql]]
  
 ---- ----
-// Contributeurs : [[:​utilisateurs:​benje]],​ [[:​utilisateurs:​Pepou06]],​ [[:​utilisateurs:​Oxossi]],​ [[:​utilisateurs:​Karting06]]. //+// Contributeurs : [[:​utilisateurs:​benje]],​ [[:​utilisateurs:​Pepou06]],​ [[:​utilisateurs:​Oxossi]],​ [[:​utilisateurs:​Karting06]], [[:​utilisateurs:​albanmartel]]. //
  • apache2.txt
  • Dernière modification: Le 17/04/2024, 12:19
  • par krodelabestiole