le Service Apache2

Configuration
sudo apt-get install apache2installer apache2
Options [+|-] FollowSymLinksactive ou désactive les liens symboliques
AllowOverride None
Require [ all denied | all granted ] choisi le partage par default, soit c'est par restriction ou par autorisations
Options [+|-] Indexesautorise ou interdit l'indexation des dossier (lister les fichiers)
Options [+|-] Indexesautorise ou interdit l'indexation des dossier (lister les fichiers)
AccessFileName .htaccess Le nom du fichier à rechercher dans chaque répertoire# pour des directives de configuration supplémentaires. Voir aussi le AllowOverride# directive.
Timeout300Le nombre de secondes avant la réception et l'envoi du délai.
KeepAlive On autorise ou non les connexions persistantes (plus de une demande par connexion). Réglez sur «Off» pour désactiver.
MaxKeepAliveRequests 100 Le nombre maximum de requêtes à autoriser lors d'une connexion persistante. Réglez sur 0 pour autoriser un montant illimité.
KeepAliveTimeout 5 nombre de secondes à attendre la prochaine requête du # même client sur la même connexion.
ErrorLog ${APACHE_LOG_DIR}/error.log emplacement du fichier journal des erreurs.
LogLevel warn contrôle la gravité des messages consignés dans le journal des erreurs. Valeurs disponibles: trace8, ..., trace1, debug, info, notice, warn, erreur, critique, alerte, émergence. Il est également possible de configurer le niveau de journalisation pour des modules particuliers, par ex. "Informations de niveau journal ssl: avertir"
controler un dossier <Directory /WEB>
Options -Indexes -FollowSymLinks
AllowOverride None
Require all granted
</Directory>
permet de gérer un dossier indépendamment de l'architecture générale





Droits système
sudo chown -R www-data:www-data Vers_votre_racine (/var/www/monsite)donne les droits à www-data et au groupe
sudo find Vers_votre_racine -type d -exec chmod 755 {} \;Donne les droits 755 à tout les repertoires
sudo find Vers_votre_racine -type f -exec chmod 644 {} \; Donne les droits 644 à tout les fichiers





Redirection d'une erreur
ErrorDocument TypeCode explicationErrorDocument 500 /error/404.html
Information 100 Continue
101 Switching protocols
102 Processing
103 Early hints
Success 200 OK
201 Created
202 Accepted
204 No content
206 Partial Content
Redirect 300 Multiple choices
301 Moved Permanently
304 Not Modified
307 Temporary Redirect
308 Permanent Redirect
Client Error 400 Bad Request
401 Unauthorized
403 Forbiden
404 Not Found
409 Conflict
Server Error 500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unevalable
504 Gateway Timeout





Les log Apache
Spécification du format des entrées du journal des erreursErrorLogFormat [connection|request] format
Niveau de log Description
emerg Urgences - le système est inutilisable.
alert Des mesures doivent être prises immédiatement.
crit Conditions critiques.
error Erreurs.
warn Avertissements.
notice Evènement important mais normal.
info Informations.
debug Messages de débogage.
Chaîne de format Description
%% Le signe pourcentage
%a Adresse IP et port clients
%{c}a Port et adresse IP sous-jacents du correspondant pour la connexion (voir le module mod_remoteip)
%A Adresse IP et port locaux
%{name}e Variable d'environnement de requête name
%E Etat d'erreur APR/OS et chaîne
%F Nom du fichier source et numéro de ligne de l'appel du journal
%{name}i En-tête de requête name
%k Nombre de requêtes persistantes pour cette connexion
%l Sévérité du message
%L Identifiant journal de la requête
%{c}L Identifiant journal de la connexion
%{C}L Identifiant journal de la connexion si utilisé dans la portée de la connexion, vide sinon
%m Nom du module qui effectue la journalisation du message
%M Le message effectif
%{name}n Note de requête name
%P Identifiant du processus courant
%T Identifiant du thread courant
%{g}T Identifiant unique de thread système du thread courant (l'identifiant affiché par la commande top par exemple ; seulement sous Linux pour l'instant)
%t L'heure courante
%{u}t L'heure courante avec les microsecondes
%{cu}t L'heure courante au format compact ISO 8601, avec les microsecondes
%v Le nom de serveur canonique ServerName du serveur courant.
%V Le nom de serveur du serveur qui sert la requête en accord avec la définition de la directive UseCanonicalName.
\  (anti-slash espace) Espace non délimiteur
%  (pourcentage espace) Délimiteur de champ (aucune sortie)
LogFormat "%h %l %u %t \"%r\" %>s %b" commonLe nom de connexion distante, L'utilisateur distant, Date à laquelle la requête a été reçue, La première ligne de la requête , Le status de la dernière requête, La taille de la réponse en octets





configuration générale des écoutes
/etc/apache2/sites-available/000-default.conf OU /etc/apache2/sites-enable/000-default.conf
<VirtualHost *:80> </VirtualHost> defini une écoute type sur un port
ServerName www.domotrix.fr Nom d'hôte et port que le serveur utilise pour s'authentifier lui-même
ServerAdmin n0_reply@live.fr L'adresse électronique que le serveur inclut dans les messages d'erreur envoyés au client
DocumentRoot /WEB le chemin root du mappage d'apache
exemple conf du port 80 <VirtualHost *:80> (le port sur lequel s'applique les directives)
    <Directory />
       Options Indexes FollowSymLinks
       AllowOverride All
       Require all granted
    </Directory>
   ServerName www.domotrix.fr
   Redirect permanent "/" "https://www.domotrix.fr"
   ServerAdmin schnellbach.tanguy@ac-amiens.fr
   DocumentRoot /var/www/html
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>





demenagement de la racine (changer le repertoire racine d'apache2)
fichier de configuration des variables de apache2
mkdir /home/hostname/websites création d'un repertoire
chown www-data /home/hostname/websites -Rf on donne les droit en récursif à l'user www-data
sudo chmod 700 -R /home/hostname/websites on change les droit des fichiers
sudo nano /etc/apache2/sites-available/000-default.conf Documentroot « /home/hostname/websites »
sudo nano /etc/apache2/apache2.conf Directory /home/hostname/websites
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domotrix\.fr [NC]
RewriteRule ^(.*)$ https://www.domotrix.fr/$1 [L,R=301
rediriger le sans www vers le www





Troubleshooting
apachectl configtestvérifier la bonne configuration des fichier de configuration apache





/etc/apache2/envvars
fichier de configuration des variables de apache2





le module status
pour connaitre l'etat de votre apache2
apache2ctl -M | grep status pour connaitre l'etat du module status
<Location "/mes_super_mesures">
SetHandler server-status
</Location>
pour connaitre l'etat du module status il faut ajouter ces lignes dans la configuration d'apache2 (/etc/apache/apache2.conf ou http.conf selon les versions
ensuite pour acceder à tout ça: votre url: http://votre_super_site/mes_super_mesures
pache2ctl -M | grep status SetHandler server-status