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