{{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}}