{{htmlmetatags>metatag-description=(Tutoriels et astuces pour Redis sur un serveur Linux Debian. ) metatag-og:image=(https://www1.zonewebmaster.eu/_media/serveur-apache2-debian:1920px-apache_http_server_logo__2016_.svg.png) metatag-og:description=(Tutoriels et astuces pour Redis sur un serveur Linux Debian. ) metatag-og:title=(Installation et configuration Apache2 - zonewebmaster.eu) metatag-og:type=(article) metatag-og:url=(https://www1.zonewebmaster.eu/serveur-apache2-debian:installation-configuration-apache2) metatag-og:locale=(fr_FR) metatag-og:site_name(zonewebmaster.eu) metatag-article:published_time=(2020-02-24) metatag-article:modified_time=(2020-02-24) metatag-article:author=(montuy337513) metatag-article:tag=(configuration, apache2 , SGBD, installation, sécurisation,help, tuto, wiki, debian) metatag-twitter:site=(@zonewebmaster) metatag-twitter:image=(https://www1.zonewebmaster.eu/_media/serveur-apache2-debian:1920px-apache_http_server_logo__2016_.svg.png) metatag-twitter:creator=(@cedricmontuy) metatag-geo.placename=(Millau) metatag-geo.region=(FR) }} ====== Installation et configuration de Apache2 sur serveur Debian ====== Sa modularité et son grand nombre de configurations possibles font d'**Apache** un //serveur HTTP// très répandu.\\ Cet article à pour but de vous présenter la mise en place et la configuration basique d'un **serveur Apache2** dans sa version **apache2-mpm-worker**. {{ :serveur-apache2-debian:1920px-apache_http_server_logo__2016_.svg.png?nolink&400 |}} ===== Pré-requis / Difficultés ===== Nous verrons dans ce guide l'installation de la version **mpm-worker** d'Apache. C'est une version multi-thread permettant de gérer un grand nombre de connexion avec une faible consommation de ressources.\\ \\ Les lignes de commandes suivantes doivent être saisie dans un terminal en tant que super-administrateur (utilisateur //root//).\\ Ce tuto a été testé sur les distributions Debian suivantes * Version 7 : //Wheezy// * Version 8 : //Jessie// * Version 9 : //Stretch// * Version 10 : //Buster// {{howhard>2}} ===== Installation des paquets Apache2 ===== Depuis Debian Stretch, la version //mpm-worker// est la version installée par défaut sur les distributions Debian. Le paquet //apache2-mpm-worker// a été renommé en //apache2// depuis cette version.\\ Nous testons donc la présence du paquet //apache2-mpm-worker// et s'il est absent nous installons le paquet //apache2//. if [ -n "$(command apt-cache pkgnames apache2-mpm-worker)" ]; then apt-get install apache2-mpm-worker else apt-get install apache2 fi ===== Activation du module mod_rewrite ===== Le module **mod_rewrite** fournit un moteur de réécriture à base de règles permettant de réécrire les URLs des requêtes à la volée. Nous allons activer cette extension a2enmod rewrite Puis nous relançons le service **apache2** pour prendre en compte l'activation de l'extension **mod_rewrite**. service 'apache2' 'force-reload' ===== Activation des hôtes virtuels (NameVirtualHost) ===== Les hôtes virtuels (NameVirtualHost) permettent d'héberger plusieurs noms de domaines sur une même adresse IP. [[ -z "$(command grep 'NameVirtualHost.*:80' /etc/apache2/ports.conf)" ]] \ && sed -i -e '/Listen[\t ]*80/i\ \ NameVirtualHost *:80\ ' '/etc/apache2/ports.conf' default_site='/etc/apache2/sites-available/default' [[ -e "${default_site}" ]] \ && || default_site='/etc/apache2/sites-available/000-default.conf' [[ -e "${default_site}" && -z "$(command grep 'VirtualHost[ \t]*\*:80' "${default_site}")" ]] \ && sed -i -e 's/\(VirtualHost[ \t]*\*\)>/\1:80>/g' \ -e 's/^\(NameVirtualHost.*\)$/#\1/g' \ "${default_site}" Puis nous relançons le service **apache2** pour prendre en compte l'activation des //NameVirtualHost//. service 'apache2' 'force-reload' Voilà, le serveur **HTTP** est configuré à minima sur votre serveur. Si vous entrer l'URL de votre serveur dans un navigateur, vous devez avoir une page affichant ceci : {{ :serveur-apache2-debian:itworks.jpg?nolink&400 |}} ===== Configuration pour un site internet ===== Nous verrons maintenant comment configurer votre serveur **HTTP**. Dans un premier temps, nous allons définir les variables pour configurer correctement votre site : * //NOM_SITE// : Préciser le nom de domaine de votre site, ici //www1.zonewebmaster.eu//. * //MAIL_ADMIN// : Votre adresse mail. * //URI_SITE// : Chemin de l'emplacement des fichiers composant votre site web. Vous pouvez laisser la valeur par défaut. * //URI_LOG// : Chemin où sont enregistrés les fichiers logs du site. Vous pouvez laisser la valeur par défaut. NOM_SITE="www1.zonewebmaster.eu" MAIL_ADMIN="webmaster@zonewebmaster.eu" URI_SITE="/home/${NOM_SITE}/www/" URI_LOG="/home/${NOM_SITE}/logs/" Ensuite nous créons les répertoires et fichiers nécessaires au fonctionnement de votre futur site et nous leurs attribuons les droits adéquats : Par défaut, les répertoires suivants sont créés : * // /home/nom_site/ // * // /home/nom_site/www/ // * // /home/nom_site/logs/ // if [ ! -e "/home/${NOM_SITE} " ]; then mkdir "/home/${NOM_SITE}" mkdir "${URI_SITE}" mkdir "${URI_LOG}" chown www-data:www-data "${URI_SITE}" touch "${URI_LOG}access.log" touch "${URI_LOG}error.log" echo "page OK" > "${URI_SITE}index.html" chown www-data:www-data "${URI_SITE}index.html" else if [ ! -e "${URI_SITE}" ]; then mkdir "${URI_SITE}" chown www-data:www-data "${URI_SITE}" fi if [ ! -e "${URI_LOG}" ]; then mkdir "${URI_LOG}" fi touch "${URI_LOG}access.log" touch "${URI_LOG}error.log" echo "page OK" > "${URI_SITE}index.html" chown www-data:www-data "${URI_SITE}index.html" fi Ensuite nous créons le fichier de configuration pour **Apache2**, le fichier de configuration est enregistré dans le répertoire// /etc/apache2/sites-available.// echo " ServerAdmin ${MAIL_ADMIN} ServerName ${NOM_SITE} DocumentRoot ${URI_SITE} Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted ErrorLog ${URI_LOG}error.log LogLevel warn CustomLog ${URI_LOG}access.log combined " > /etc/apache2/sites-available/${NOM_SITE}.conf Puis nous activons le site : a2ensite ${NOM_SITE} Pour finir, nous mettons en place la rotation des logs du site echo " ${URI_LOG}*.log { daily missingok rotate 14 compress delaycompress notifempty create 640 root adm sharedscripts postrotate if /etc/init.d/apache2 status > /dev/null ; then \ /etc/init.d/apache2 reload > /dev/null; \ fi; endscript prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi; \ endscript } " > "/etc/logrotate.d/${NOM_SITE}" On recharge la configuration et c'est sensé fonctionner sans problème. service 'apache2' 'force-reload' ===== Redirection des mails www-data ===== Nous allons rediriger les mails envoyés à l'utilisateur www-data vers le compte root: [[ -e '/etc/aliases' && -z "$(command grep '^www-data:' '/etc/aliases' )" ]] \ && ${cmdProxy} sed -i -e '/^root:/i\ www-data: root' \ '/etc/aliases' Puis nous rechargeons la liste des alias : type -f 'newaliases' &>'/dev/null' && newaliases ===== Pour allez plus loin =====
===== Notes de version ===== * [24/02/2020] : Création de l'article ===== Auteurs et sources ===== * Auteur : [[:user:montuy337513]] * Sources : [[https://httpd.apache.org/|Projet Apache]], ===== Navigation ===== {{page>navigation#serveur-debian-apache-2}} {{page>navigation#serveur-dedie-debian}}