Apache 2.4 Installation et configuration - Version en ligne
Ce support s'adresse à tout administrateur système souhaitant découvrir Apache, ainsi qu'à ceux qui l'utilisent dans ses versions précédentes et préparent la mise à jour de ce serveur web vers la version 2.4.
Depuis 1996, et malgré une augmentation significative de solutions délivrant les mêmes services, Apache reste le serveur web le plus utilisé sur Internet. Il est employé dans différents...
- Niveau Initié à Confirmé
- Parution juin 2015
Ce support s'adresse à tout administrateur système souhaitant découvrir Apache, ainsi qu'à ceux qui l'utilisent dans ses versions précédentes et préparent la mise à jour de ce serveur web vers la version 2.4.
Depuis 1996, et malgré une augmentation significative de solutions délivrant les mêmes services, Apache reste le serveur web le plus utilisé sur Internet. Il est employé dans différents contextes grâce à sa grande modularité. Dans sa dernière version, de nombreuses optimisations ont été apportées en termes de performance et de sécurité, de nouveaux modules ont été intégrés élargissant les possibilités de configuration (industrialisation, traitement de données, utilisation de variables, etc.).
Dans ce livre, avec une approche pratique basée sur des exemples de configuration, vous apprendrez à effectuer des installations et configurations sur mesure en fonction des besoins fonctionnels, tels que l'hébergement de sites internet dynamiques avec PHP-FPM, la fonction de Reverse Proxy ou encore de Load Balancer. L'optimisation de service et de sécurité est également traitée avec notamment des exemples de solutions à mettre en place pour se prémunir de potentielles menaces dans le cadre d'une exposition sur Internet.
Pour finir, vous effectuerez l'installation complète d'une plate-forme LAMP spécifique à des CMS Open Source comptant parmi les références du marché, tels qu'eZ Publish et WordPress.
Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr pour la réalisation des installations de ce dernier chapitre (Apache, MySql et PHP).
Les chapitres du livre :
Avant-propos – Introduction – Installation d'Apache sous Linux – Configuration de base d'Apache – Configuration avancée – Gestion des logs sous Apache – Apache en tant que serveur web dynamique – Apache en tant que serveur reverse proxy – Notions de sécurité – Optimisation du service Apache – Les outils d'Apache – Cas pratiques
Depuis 1996, et malgré une augmentation significative de solutions délivrant les mêmes services, Apache reste le serveur web le plus utilisé sur Internet. Il est employé dans différents contextes grâce à sa grande modularité. Dans sa dernière version, de nombreuses optimisations ont été apportées en termes de performance et de sécurité, de nouveaux modules ont été intégrés élargissant les possibilités de configuration (industrialisation, traitement de données, utilisation de variables, etc.).
Dans ce livre, avec une approche pratique basée sur des exemples de configuration, vous apprendrez à effectuer des installations et configurations sur mesure en fonction des besoins fonctionnels, tels que l'hébergement de sites internet dynamiques avec PHP-FPM, la fonction de Reverse Proxy ou encore de Load Balancer. L'optimisation de service et de sécurité est également traitée avec notamment des exemples de solutions à mettre en place pour se prémunir de potentielles menaces dans le cadre d'une exposition sur Internet.
Pour finir, vous effectuerez l'installation complète d'une plate-forme LAMP spécifique à des CMS Open Source comptant parmi les références du marché, tels qu'eZ Publish et WordPress.
Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr pour la réalisation des installations de ce dernier chapitre (Apache, MySql et PHP).
Les chapitres du livre :
Avant-propos – Introduction – Installation d'Apache sous Linux – Configuration de base d'Apache – Configuration avancée – Gestion des logs sous Apache – Apache en tant que serveur web dynamique – Apache en tant que serveur reverse proxy – Notions de sécurité – Optimisation du service Apache – Les outils d'Apache – Cas pratiques
Téléchargements
Avant-propos
- 1. Introduction
- 2. À qui cet ouvrage s'adresse-t-il ?
- 3. Niveau de compétences requis
- 4. Structure de cet ouvrage
Introduction
- 1. Présentation du protocole HTTP
- 1.1 Introduction
- 1.2 La communication
- 1.2.1 Les méthodes utilisées par le client
- 1.2.2 Les en-têtes HTTP
- 1.2.3 La réponse HTTP
- 2.1 Qu'est-ce qu’un serveur web ?
- 2.2 Apache
- 2.3 Historique des versions stables d'Apache HTTP Server et événements marquants
- 3.1 Améliorations du noyau
- 3.2 Nouveaux modules
- 3.3 Améliorations des modules
- 3.4 Améliorations et nouveaux outils Apache
- 3.5 Modification des paramètres de compilation et d'activation des modules par défaut
- 3.6 Modifications des syntaxes de configuration
Installation d'Apache sous Linux
- 1. Distribution Linux Debian
- 1.1 Modification des sources d'installation
- 1.2 Installation d'Apache
- 1.3 Localisation des fichiers de configuration
- 1.4 Gestion du service Apache
- 2. Distribution Linux CentOS
- 2.1 Localisation des fichiers de configuration
- 2.2 Gestion du service Apache
- 3. Compilation depuis les sources
- 3.1 Téléchargement des sources
- 3.2 Configuration de la compilation
- 3.3 Création d'un layout d'installation personnalisé
- 3.4 Compilation et vérifications de fonctionnement
- 3.5 Création du script de démarrage
- 3.6 Activation du service au démarrage
- 3.7 Ajouter les binaires dans le path
- 3.8 Modifier le path pour sudo
- 3.9 Gestion du service Apache
Configuration de base d'Apache
- 1. Fichiers de configuration
- 1.1 Syntaxe des fichiers de configuration
- 1.2 Fichiers .htaccess
- 1.3 Fichier MIME
- 2. Première configuration
- 2.1 Création du compte utilisateur d'Apache
- 2.2 Modification du compte utilisateur d'Apache
- 2.3 Premier fichier de configuration
- 2.4 Tests et affinage de la configuration
- 3. Directives Core
- 3.1 Directives globales
- 3.1.1 ServerRoot
- 3.1.2 ServerName
- 3.1.3 ServerAlias
- 3.1.4 ServerAdmin
- 3.1.5 ServerSignature
- 3.1.6 ServerTokens
- 3.1.7 LoadModule
- 3.1.8 DocumentRoot
- 3.1.9 Error
- 3.1.10 ErrorLog
- 3.1.11 ErrorLogFormat
- 3.1.12 LogLevel
- 3.1.13 ErrorDocument
- 3.1.14 Include
- 3.1.15 UseCanonicalName
- 3.1.16 UseCanonicalPhysicalPort
- 3.1.17 TimeOut
- 3.1.18 KeepAlive
- 3.1.19 MaxKeepAliveRequests
- 3.1.20 KeepAliveTimeout
- 3.1.21 HostnameLookups
- 3.1.22 AccessFileName
- 3.1.23 AllowOverride
- 3.1 Directives globales
- 3.2 Directives de type bloc
- 3.2.1 <Directory>
- 3.2.2 <DirectoryMatch>
- 3.2.3 <Files>
- 3.2.4 <FilesMatch>
- 3.2.5 <Location>
- 3.2.6 <LocationMatch>
- 3.2.7 <VirtualHost>
- 3.2.8 <If>
- 3.2.9 <IfDefine>
- 3.2.10 <IfModule>
- 3.3 Directives MPM
- 3.3.1 PidFile
- 3.3.2 Port d'écoute et protocole
- 3.3.3 ServerLimit
- 3.3.4 ThreadLimit
- 3.3.5 ThreadsPerChild
- 3.3.6 MaxRequestWorkers (anciennement MaxClients)
- 3.3.7 StartServers
- 3.3.8 MaxSpareServers (MPM Prefork)
- 3.3.9 MinSpareServers (MPM Prefork)
- 3.3.10 MaxSpareThreads
- 3.3.11 MinSpareThreads
- 4.1 mod_unixd (unixd_module)
- 4.1.1 User
- 4.1.2 Group
- 4.1.3 ChrootDir
- 4.1.4 Suexec
- 4.2.1 Require
- 4.2.2 RequireAll
- 4.2.3 RequireAny
- 4.2.4 RequireNone
- 4.3.1 AuthName
- 4.3.2 AuthType
- 4.3.3 AuthnProviderAlias
- 4.4.1 AuthBasicProvider
- 4.4.2 AuthBasicAuthoritative
- 4.4.3 AuthBasicProvider
- 4.4.4 AuthBasicUseDigestAlgorithm
- 4.5.1 AuthUserFile
- 4.7.1 AddCharset
- 4.7.2 AddLanguage
- 4.7.3 AddEncoding
- 4.7.4 AddHandler
- 4.7.5 AddType
- 4.7.6 AddInputFilter
- 4.7.7 AddOutputFilter
- 4.7.8 DefaultLanguage
- 4.7.9 RemoveCharset
- 4.7.10 RemoveEncoding
- 4.7.11 RemoveHandler
- 4.7.12 RemoveInputFilter
- 4.7.13 RemoveOutputFilter
- 4.7.14 RemoveLanguage
- 4.7.15 RemoveType
- 4.7.16 TypesConfig
- 4.8.1 ForceLanguagePriority
- 4.8.2 LanguagePriority
- 4.9.1 CustomLog
- 4.9.2 LogFormat
- 4.9.3 TransferLog
- 4.10.1 DirectoryIndex
- 4.10.2 DirectoryIndexRedirect
- 4.10.3 DirectorySlash
- 4.10.4 FallbackResource
- 4.11.1 RewriteBase
- 4.11.2 RewriteCond
- 4.11.3 RewriteEngine
- 4.11.4 RewriteMap
- 4.11.5 RewriteRule
- 4.12.1 Alias
- 4.12.2 AliasMatch
- 4.12.3 Redirect
- 4.12.4 RedirectMatch
- 4.12.5 RedirectPermanent
- 4.12.6 RedirectTemp
- 4.12.7 ScriptAlias
- 4.12.8 ScriptAliasMatch
- 5.1 Fichier de configuration principal d'Apache httpd.conf
- 5.2 Fichier de configuration modules.conf
- 5.3 Fichier de configuration globale server.conf
- 5.4 Fichier de configuration du MPM Event mpm-event.conf
- 5.5 Répertoire applicatif et son fichier de configuration
Configuration avancée
- 1. Modules et fonctionnalités avancés
- 1.1 mod_setenvif
- 1.1.1 BrowserMatch
- 1.1.2 BrowserMatchNoCase
- 1.1.3 SetEnvIf
- 1.1.4 SetEnvIfExpr
- 1.1.5 SetEnvIfNoCase
- 1.1 mod_setenvif
- 1.2 mod_headers
- 1.2.1 Header
- 1.2.2 RequestHeader
- 1.3 mod_expires
- 1.3.1 ExpiresActive
- 1.3.2 ExpiresByType
- 1.3.3 ExpiresDefault
- 1.4 mod_sed
- 1.4.1 InputSed
- 1.4.2 OutputSed
- 1.5 mod_macro
- 1.5.1 Macro
- 1.5.2 Use
- 1.5.3 UndefMacro
- 1.6 mod_session
- 1.6.1 Session
- 1.6.2 SessionEnv
- 1.6.3 SessionExclude
- 1.6.4 SessionInclude
- 1.7 mod_session_cookie
- 1.7.1 SessionCookieName
- 1.7.2 SessionCookieRemove
- 1.8 mod_request
- 1.9 mod_unique_id
- 1.10 mod_auth_form
- 1.10.1 AuthFormProvider
- 1.10.2 AuthFormUsername
- 1.10.3 AuthFormPassword
- 1.10.4 AuthFormLocation
- 1.10.5 AuthFormLogoutLocation
- 2.1 mod_session_crypto
- 2.1.1 SessionCryptoCipher
- 2.1.2 SessionCryptoPassphrase
- 2.1.3 SessionCryptoPassphraseFile
- 2.1.4 Installation
- 2.1.5 Compilation des librairies APR et APR-util
- 2.1.6 Recompilation d'Apache
- 2.2.1 Installation
- 2.2.2 Activation du module
Gestion des logs sous Apache
- 1. Activation et configuration
- 1.1 Journaux d'erreur
- 1.1.1 Utilisation de LogLevel
- 1.1.2 Utilisation de ErrorLogFormat
- 1.1 Journaux d'erreur
- 1.2 Module mod_log_config
- 1.2.1 Utilisation de la directive LogFormat
- 1.3 Module mod_logio
- 1.4 Logs Apache au format JSON
- 2.1 Rotation avec Logrotate
- 2.2 Rotation avec rotatelogs
- 2.2.1 Rotation basée sur un intervalle de temps
- 2.2.2 Rotation basée sur une taille de fichier
- 3.1 Principe
- 3.2 Serveur Rsyslog
- 3.2.1 Installation de Rsyslog
- 3.2.2 Configuration du serveur Apache
- 3.2.3 Configuration du client Rsyslog
- 3.2.4 Configuration du serveur Rsyslog central
- 4.1 Installation
- 4.2 Configuration d'Apache
- 4.3 Configuration d'AWStats
Apache en tant que serveur web dynamique
- 1. Introduction
- 2. PHP avec Apache en MPM Prefork
- 2.1 Installation de PHP
- 2.1.1 Installation avec le gestionnaire de paquets Debian
- 2.1.2 Installation depuis les sources
- 2.1 Installation de PHP
- 2.2 Activation et configuration du module PHP
- 2.2.1 Activation du module PHP
- 2.2.2 Configuration d'Apache pour PHP
- 3.1 Installation de PHP
- 3.2 Configuration d'Apache en MPM Worker
- 3.3 Installation d'Apache en MPM Worker (depuis les sources)
- 3.4 Installation et configuration de mod_fcgid
- 3.4.1 Installation du module
- 3.4.2 Configuration du module
- 4.1 Installation de PHP-FPM
- 4.1.1 Distribution Linux Ubuntu/Debian
- 4.1.2 Installation depuis les sources
- 5.1 Distribution Ubuntu et Debian/Linux
- 5.2 Distribution CentOS/Red Hat
Apache en tant que serveur reverse proxy
- 1. Introduction
- 2. Mise en place d'un reverse proxy
- 2.1 Activation du module
- 2.2 Configuration du module mod_proxy
- 2.2.1 ProxyPass
- 2.2.2 ProxyPassReverse
- 2.2.3 ProxyAddHeaders
- 2.2.4 ProxyVia
- 2.2.5 ProxyPassMatch
- 2.2.6 ProxyPassReverseCookieDomain
- 2.2.7 ProxyPassReverseCookiePath
- 2.2.8 ProxyPreserveHost
- 3.1 Activation du module
- 3.2 Configuration du module mod_proxy_balancer
- 3.2.1 Répartition de charge
- 3.2.2 Pondération dans la répartition de charge
- 3.3.1 En cas d'indisponibilité de services
- 3.3.2 En cas d'erreur applicative/code HTTP
Notions de sécurité
- 1. Introduction
- 2. Permissions de répertoire
- 3. Chroot d'Apache
- 3.1 Installation d'Apache dans le chroot
- 3.2 Configuration d'Apache et VirtualHost
- 4. Protection d’accès
- 4.1 Autorisation d'accès
- 4.1.1 Contrôle d'accès en fonction du réseau
- 4.1.2 Contrôle d'accès en fonction de variables
- 4.1 Autorisation d'accès
- 4.2 Authentification Basic et Digest
- 4.2.1 Module mod_auth_basic
- 4.2.2 Module mod_auth_digest
- 4.3 Les fournisseurs d'authentification
- 4.3.1 Authentification par fichier de mot de passe
- 4.3.2 Authentification à la manière des sites FTP anonymes
- 4.3.3 Authentification avec une base de données MySQL
- 5.1 Protection contre les attaques de type "déni de service"
- 5.1.1 Ajustement du paramétrage d'Apache
- 5.1.2 Module mod_reqtimeout
- 5.1.3 Module mod_security
- 5.2.1 Jeux de règles de base
- 5.2.2 Jeux de règles orientés application
- 5.2.3 Jeux de règles orientés spam et usurpation d'identité
- 5.3.1 Module Apache mod_ratelimit
- 6.1 Présentation et historique
- 6.2 Utilisation avec Apache
- 6.2.1 Génération de certificats
- 6.2.2 Activation du module mod_ssl
- 6.2.3 Configuration du module mod_ssl
Optimisation du service Apache
- 1. Introduction
- 2. Gestion des ressources (matérielles, système, réseau)
- 2.1 Mémoire vive
- 2.1.1 Charger les modules strictement nécessaires
- 2.1.2 Limiter les ressources consommées par Apache
- 2.1 Mémoire vive
- 2.2 Stockage/disques durs
- 2.2.1 Directives FollowSymLinks et SymLinksIfOwnerMatch
- 2.2.2 Directive AllowOverride
- 2.2.3 Directive DirectoryIndex
- 2.2.4 Optimiser ou éliminer l’écriture de logs
Les outils d'Apache
- 1. Introduction
- 2. apachectl
- 3. ab
- 4. apxs
- 5. dbmmanage
- 6. fcgistarter
- 7. htcacheclean
- 8. htdigest
- 9. htdbm
- 10. htpasswd
- 11. httxt2dbm
- 12. logresolve
- 13. rotatelogs
Cas pratiques
- 1. Introduction
- 2. Environnement et contexte d'installation
- 2.1 Prérequis système
- 2.2 Apache
- 2.3 MySQL
- 3. Hébergement d'un CMS PHP
- 3.1 CMS eZ Publish
- 3.2 Prérequis du CMS
- 3.3 Préparation du système
- 3.4 Installation de PHP avec les prérequis
- 3.5 Configuration d'Apache
- 3.6 Création de la base de données et du compte utilisateur MySQL
- 3.7 Installation d'eZ Publish
- 4. Utilisation de plusieurs versions de PHP sur un même serveur Apache
- 4.1 CMS WordPress
- 4.2 Prérequis de WordPress
- 4.3 Installation de PHP
- 4.4 Préparation du système
- 4.5 Configuration d'Apache
- 4.6 Création de la base de données et du compte utilisateur MySQL
- 4.7 Installation de WordPress
- Index