{{tag> serveur web Apache}} ====== Serveur web Apache2 ====== Pour quoi faire ? Héberger son blog, son wiki... et les rendre accessibles par https (liaison chiffrée SSL rendant plus compliquée, par exemple, la capture d'identifiants et mots de passe). ===== Installation ===== Pour installer Apache2, tous ses petits copains habituels (MySQL, Php5) et même des invités surprise (module Python) : apt-get install apache2 apache2-mpm-prefork apache2-utils libapache2-mod-fastcgi libapache2-mod-php5 libapache2-mod-wsgi-py3 php5 php5-cli php5-gd php5-json php5-mysql php5-readline mysql-server mysql-client python-mysqldb openssl ssl-cert ca-certificates ===== Organisation ===== L'organisation choisie est largement inspirée de celle préconisée par [[https://www.jbfavre.org/|Jean-Baptiste Favre]] sur [[ http://publications.jbfavre.org/web/apache-vhosts-automatiques-avec-SSL-authentification-et-alias.fr|cette page]]. Cette organisation permet ensuite de configurer aisément avec Apache des hôtes virtuels avec : * support automatique des sous-domaines, du SSL et de l'authentification, * support des Alias. ==== Dans /etc/apache2 ==== Les fichiers de configuration d'Apache2 sont dans /etc/apache2, comme il se doit. (etc = editable text configurations.) /etc/apache2/ ├── apache2.conf ├── conf-available/ ├── conf-enabled/ ├── envvars ├── magic ├── mods-available/ ├── mods-enabled/ ├── ports.conf ├── sites-available/ └── sites-enabled/ Nous reviendrons sur le contenu de ces fichiers et répertoires. ==== Dans /var/www ==== Les sites sont stockés dans /var/www. Nous allons choisir une arborescence particulière : /var/www/ ├── domaine.ext/ │   ├── config/ │   │   ├── auth/ │   │   ├── htpasswd │   │   ├── ssl/ │   │   │   └── linux -> /var/www/domaine.ext/www/linux/ │ │ └── subdomains/ │   │   ├── apt -> /var/www/domaine.ext/www/apt/ │   │   └── linux -> /var/www/domaine.ext/www/linux/ │   ├── logs/ │   │   ├── access.log │   │   ├── error.log │   │   ├── rewrite.log │   │   └── ssl_error.log │   └── www/ │ ├── apt/ │ └── linux/ ├── index.html └── pythonCGI/ (On n'a pas déployé toute l'arborescence.) Le premier niveau de /var/www contient : - un dossier dévolu au nom de domaine //domaine.ext// (par exemple //claudeclerc.fr//) ; on créera un dossier par domaine. - un fichier index.html historique (celui qui indique //It works !//) ; on pourrait s'en passer. - un dossier pythonCGI (qui peut contenir des scripts python pour faire des pages web dynamiques). Le dossier //domaine.ext// contient : - un dossier //config// pour configurer aisément : * l'authentification basique (par identifiant/mot de passe) : un simple lien dans //auth// suffira pour protéger une partie d'un site ! * l'accès sécurisé par https (//ssl//) : là encore, un simple lien suffit. * les sous-domaines : apt et linux sont deux sous-domaines de domaine.ext (apt.domaine.ext et linux.domaine.ext) ; remarquez le lien et vers où il pointe, vous comprendrez le mécanisme mis en place pour créer un sous-domaine. - un dossier //logs// dont la fonction est évidente. - un dossier //www// qui contient les fichiers (html, php, images, vidéos etc) et dossiers du domaine et des sous-domaines. ===== Configuration d'Apache2 ===== Comme on l'a vu, les fichiers de configuration d'Apache2 sont dans /etc/apache2. Rappel : les variables d'environnement d'Apache2 sont renseignées dans le fichier //envvars// ; il vaut mieux en prendre connaissance. ==== Fichier ports.conf ==== Le port http est par défaut le port 80 ; Apache2 répondra donc aux requêtes effectuées sur ce port. Si l'un des modules ssl_module ou mod_gnutls.c est chargé, alors Apache2 répondra également aux requêtes effectuées sur le port 443 (https). Listen 80 Listen 443 Listen 443 ==== Fichier apache2.conf ==== nano /etc/apache2/apache2.conf ===== Liens externes ===== FIXME * Sources : [[http://publications.jbfavre.org/web/apache-vhosts-automatiques-avec-SSL-et-authentification.fr]] et [[http://publications.jbfavre.org/web/apache-vhosts-automatiques-avec-SSL-authentification-et-alias.fr]] * [[https://www.memoinfo.fr/tutoriels-linux/configurer-lets-encrypt-apache/|Certificats SSL gratuits !]] et [[https://www.perhonen.fr/blog/2017/07/passer-vos-sites-https-apache-lets-encrypt-3015|Passez vos sites sous HTTPS]] * [[https://wiki.kogite.fr/index.php/Seafile_:_installation_sur_CentOS|Installation de Seafile (sur CentOS)]] * [[https://blog.droidzone.in/2017/04/20/adding-a-letencrypt-certificate-for-a-server-running-seafile-server/|HTTPS pour Seafile]] * [[https://www.palabritudes.net/2018/03/11/certbot-challenge-dns-gandi-ovh.html|Certbot challenge DNS Gandi et OVH]] * [[https://udona.fr/sysadmin/installer-serveur-web-lamp-debian-9-stretch/|Installer un serveur web LAMP sous Debian 9 Stretch]] ---- {{counter|today| personne a visité cette page aujourd'hui| personnes ont visité cette page aujourd'hui}} et {{counter}} en tout.