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 08/05/2013, 15:40]
109.28.132.11 [Installation]
apache2 [Le 20/05/2016, 20:42]
90.31.31.10 [La bibliothèque, le serveur et ses outils]
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...
- +
-béta installation apache 2.4.+
- +
-installer les depots officiel multiverse et backport ainsi que leur sources +
- +
-ex ubuntu 12.04 +
- +
- +
-<​code>​sudo su</​code>​ +
-<​code>​cat > /​etc/​apt/​sources.list <<​EOF +
-deb http://​fr.archive.ubuntu.com/​ubuntu/​ precise main restricted +
-deb http://​security.ubuntu.com/​ubuntu precise-security main restricted +
-deb http://​fr.archive.ubuntu.com/​ubuntu/​ precise-updates main restricted +
- +
-# Dépôts de sources (uniquement utiles pour télécharger les sources avec apt-get source. Dans ce cas, enlever les #) +
-deb-src http://​fr.archive.ubuntu.com/​ubuntu/​ precise main restricted +
-deb-src http://​security.ubuntu.com/​ubuntu precise-security main restricted +
-deb-src http://​fr.archive.ubuntu.com/​ubuntu/​ precise-updates main restricted +
- +
-deb http://​fr.archive.ubuntu.com/​ubuntu/​ precise universe multiverse +
-deb http://​security.ubuntu.com/​ubuntu precise-security universe multiverse +
-deb http://​fr.archive.ubuntu.com/​ubuntu/​ precise-updates universe multiverse +
- +
-# Dépôts de sources (uniquement utiles pour télécharger les sources avec apt-get source. Dans ce cas, enlever les #) +
-deb-src http://​fr.archive.ubuntu.com/​ubuntu/​ precise universe multiverse +
-deb-src http://​security.ubuntu.com/​ubuntu precise-security universe multiverse +
-deb-src http://​fr.archive.ubuntu.com/​ubuntu/​ precise-updates universe multiverse +
-deb http://​fr.archive.ubuntu.com/​ubuntu/​ precise-backports main restricted universe multiverse +
- +
-# Dépôts de sources (uniquement utiles pour télécharger les sources avec apt-get source. Dans ce cas, enlever les #) +
-deb-src http://​fr.archive.ubuntu.com/​ubuntu/​ precise-backports main restricted universe multiverse +
-EOF +
-exit</​code>​ +
- +
- +
-installer les dépendance +
- +
- +
-<​code>​sudo apt-get update</​code>​ +
-<​code>​sudo apt-get -y upgrade</​code>​ +
-<​code>​sudo apt-get -y install git vim libmcrypt-dev</​code>​ +
-<​code>​sudo apt-get -y purge apache2 php5</​code>​ +
-<​code>​sudo apt-get -y build-dep apache2 php5</​code>​ +
- +
- +
- +
- +
- +
-compilation manuelle +
- +
-<​code>​cd /​usr/​local/​src</​code>​ +
-<​code>​git clone https://​github.com/​apache/​httpd.git httpd-2.4.4</​code>​ +
-<​code>​cd httpd-2.4.4</​code>​ +
-<​code>​git clone https://​github.com/​apache/​apr.git srclib/​apr</​code>​ +
-<​code>​./​buildconf</​code>​ +
-<​code>​./​configure -enable-modules=all --with-included-apr --enable-mpm=worker --enable-suexec --enable-rewrite</​code>​ +
-<​code>​make</​code>​ +
-<​code>​sudo apt-get -y install checkinstall</​code>​ +
-<​code>​sudo checkinstall --pkgname=apache2-4 --pkgversion="​2.4.4"​ --backup=no --deldoc=yes --fstrans=no --default</​code>​ +
-<​code>​mkdir $HOME/​deb</​code>​  +
-<​code>​sudo mv *.deb $HOME/​deb</​code>​ +
-vous pouvez récupérer le pacquet deb dans votre répertoire perssonelle $HOME/deb +
-celui ci a déjà était installer +
- +
- +
-  +
- +
-installation depuis pacquet deb ubuntu 12.04 and 64 uniquement +
- +
- +
-<​code>​wget http://​www.petit-fichier.fr/​2013/​05/​08/​apache2-4-2-4-4-1-amd64/​apache2-4-2-4-4-1-amd64.deb</​code>​ +
-<​code>​sudo dpkg -i apache2-4-2-4-4-1-amd64.deb</​code>​ +
- +
-configurer +
- +
- +
-<​code>​sudo ln -s /​usr/​local/​apache2/​bin/​* /​usr/​local/​bin/</​code>​ +
-<​code>​sudo rm -rf /​etc/​init.d/​apache2</​code>​ +
-<​code>​sudo ln -s /​usr/​local/​bin/​apachectl /​etc/​init.d/​apache2</​code>​ +
-<​code>​sudo update-rc.d -f apache2 remove</​code>​ +
-<​code>​sudo sed -i '​s|Define DOCROOT "/​usr/​local/​apache2/​htdocs"​|Define DOCROOT "/​var/​www"​|'​ /​usr/​local/​apache2/​conf/​httpd.conf</​code>​ +
-<​code>​sudo chown -Rf www-data:​www-data /​var/​www</​code>​ +
-<​code>​sudo update-rc.d -f apache2 defaults 91 09</​code>​ +
-<​code>​sudo /​etc/​init.d/​apache2 stop</​code>​ +
-<​code>​sudo mkdir /​usr/​local/​apache2/​logs/</​code>​ +
-<​code>​sudo /​etc/​init.d/​apache2 start</​code>​ +
- +
-désinstaller +
- +
-<​code>​sudo /​etc/​init.d/​apache2 stop +
-sudo rm -f /​usr/​local/​bin/​ab /​usr/​local/​bin/​apachectl /​usr/​local/​bin/​apr-2-config /​usr/​local/​bin/​apxs /​usr/​local/​bin/​checkgid /​usr/​local/​bin/​dbmmanage /​usr/​local/​bin/​envvars /​usr/​local/​bin/​envvars-std /​usr/​local/​bin/​fcgistarter /​usr/​local/​bin/​firehose /​usr/​local/​bin/​htcacheclean /​usr/​local/​bin/​htdbm /​usr/​local/​bin/​htdigest /​usr/​local/​bin/​htpasswd /​usr/​local/​bin/​httpd /​usr/​local/​bin/​httxt2dbm /​usr/​local/​bin/​logresolve /​usr/​local/​bin/​rotatelogs /​usr/​local/​bin/​suexec +
-sudo update-rc.d -f apache2 remove +
-sudo rm -rf /​etc/​init.d/​apache2 +
-sudo apt-get -y purge apache2-4 +
-sudo rm -rf /​usr/​local/​apache2</​code>​+
 ====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 190: 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 209: 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 224: 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 677: Ligne 595:
 # 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 IPs 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 808: 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 818: 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 855: 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 892: 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 :
Ligne 1010: 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 1146: 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]]
 +
 +==== Supprimer le service apache de démarrage avec  update-rc.d====
 +
 +<​code>​ user@PCMachine:​~$ sudo update-rc.d -f apache2 remove </​code>​
 +
 +==== Restaurer le démarrage automatique d'​apache avec update-rc.d ====
 +
 +<​code>​ user@PCMachine:​~$ sudo update-rc.d apache2 default </​code>​
 +
  
  
Ligne 1159: Ligne 1150:
    * [[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