Contacts

Pourquoi les paramètres des fichiers de configuration Apache ont-ils soudainement disparu ? Fichier de configuration Apache. Configurations d'hôte virtuel

Concepts : configuration, directives. Fichiers de configuration, directives. Directives de configuration de base. Processus serveur. Contrôlez l'accès aux répertoires et aux fichiers.

La configuration (latin configuratio - arrangement mutuel) est une technique logique et méthodologique particulière, une technique mentale permettant de synthétiser les connaissances sur différents sujets, différentes idées sur le même objet.

Directives, g. (du latin directio - direction). Conseils généraux donnés par une autorité supérieure à un subordonné (serveur de poste de travail, etc.) .

Le fichier de configuration est un fichier au format assez simple. Chaque ligne représente un mot-clé et un ou plusieurs arguments. Par souci de simplicité, la plupart des lignes ne contiennent qu’un seul argument. Tout ce qui suit le symbole # est un commentaire et est ignoré.

Apache est configuré en modifiant les fichiers de service dans le répertoire /etc/httpd/conf/. Le fichier de configuration principal du serveur Web est httpd.conf. Les directives de configuration peuvent être placées dans divers fichiers, qui incluent file_name.conf dans la construction Include principale.

Si l'emplacement d'un fichier ou d'un répertoire est spécifié implicitement dans le fichier de configuration (l'emplacement explicite commence à la racine du système de fichiers - par le caractère "/"), Apache utilise le répertoire spécifié dans la directive ServerRoot pour déterminer l'emplacement réel de la cible.

Description des modules Apache et directives de configuration

Les directives peuvent être utilisées aux niveaux suivants :

Un niveau de configuration du serveur - la directive ne peut être utilisée que dans le fichier de configuration principal.

Niveau V - la directive peut être utilisée différemment pour différents hôtes virtuels.

Niveau D - pour n'importe quel répertoire, vous pouvez définir vos propres paramètres à l'aide d'une directive de ce niveau.

Niveau H des fichiers .htaccess - la directive peut être utilisée dans les fichiers .htaccess aux endroits où elles sont autorisées par le serveur.

À tout moment, l'utilisation du paramètre filename dans la directive spécifie un chemin absolu (commençant par "/") ou relatif au fichier à partir du répertoire ServerRoot.

CORE - noyau du serveur Web (module principal Apache)

Nom du fichier AccessConfig

Définit l'emplacement du fichier de configuration. Le fichier de configuration système par défaut est conf/access.conf ; Pour annuler la lecture de ce fichier, il est recommandé de définir /dev/null.

Fichier AccessFileName fichier...

Définit les noms des fichiers d'accès utilisés pour configurer la configuration à la volée par défaut - .htaccess.

Module module AddModule... [A]

Active un module chargé dynamiquement fourni sous forme de fichier de bibliothèque séparé.

Module module AddModule...

Active un module chargé dynamiquement, fourni sous forme de fichier de bibliothèque séparé ou compilé dans le module httpd principal.

AllowOverride param param...

Définit les règles selon lesquelles Apache utilise les directives dans les fichiers .htaccess internes ;

Aucun - ignore ;

Tout - utilise toutes les directives ;

Options - permet l'utilisation d'Options et de XBitHack ;

Index - directives de gestion de l'indexation des annuaires ;

FileInfo - directives pour gérer les types de fichiers et leurs gestionnaires ;

AuthConfig - directives pour accéder aux répertoires Auth* ;

Limite - directives autoriser/refuser/ordonner.

Domaine AuthName

Type d'authentification

Utilisé pour spécifier une méthode de demande et de transmission d'un nom d'utilisateur et d'un mot de passe pour accéder aux répertoires de sites Web. Le plus souvent, ils utilisent Basic, moins souvent - Digest et autres.

Adresse BindAddress [A]

Spécifie l'adresse à laquelle Apache acceptera les connexions. Vous pouvez utiliser le nom d'hôte, l'adresse IP ou *.

Effacer la liste des modules [A]

La directive efface la liste des modules chargés. Après cette directive, vous devez utiliser les directives AddModule pour travailler avec les modules nécessaires.

ContentDigest activé|désactivé

Active ou désactive le transfert de hachage de données MD5. Il est calculé pour toutes les pages transmises et n'est pas mis en cache.

Nom du répertoire CoreDumpDirectory [A]

Pointe Apache vers le répertoire dans lequel les fichiers de vidage de la mémoire (core) créés en cas d'erreurs d'urgence seront enregistrés.

Type MIME DefaultType

Définit le type MIME envoyé aux clients si Apache ne peut pas déterminer le type via le fichier mime.types ou les directives AddType. La valeur par défaut est text/plain.

...

Combine un groupe de directives qui spécifient le comportement d'Apache lors de l'accès aux documents situés dans un répertoire donné. Il est permis d'utiliser des masques de nom - symboles *, ? selon les règles du shell. Si un masque est utilisé, un tilde ~ est placé devant le nom.

...

Définit un groupe de répertoires spécifié par une expression régulière et définit les règles permettant à Apache de travailler avec les répertoires et les fichiers de ce groupe.

Nom du répertoire DocumentRoot

Indique au serveur l'emplacement de la racine de l'arborescence des répertoires en dessous de laquelle se trouve la structure des données du serveur web.

Nom de fichier ErrorDocument|chaîne|URL

En cas d'erreur, il redirige vers les pages spécifiées. Vous pouvez également définir un commentaire sur la situation qui s'est produite, qui doit commencer par un guillemet simple. Exemple:

Document d'erreur 500 http://foo.example.com/cgi-bin/tester

Document d'erreur 404 /cgi-bin/bad_urls.pl

Document d'erreur 401 /subscription_info.html

ErrorDocument 403 "Désolé, je ne peux pas vous autoriser l'accès aujourd'hui"

Nom du fichier du journal des erreurs

Nom du fichier journal des erreurs. Si la ligne de paramètre commence par (/), alors le chemin d'accès au fichier doit être spécifié à partir de ServerRoot ; s'il commence par (|), alors les messages d'erreur sont transmis à la commande spécifiée sur l'entrée standard. En particulier, de cette manière, par exemple, vous pouvez implémenter la sauvegarde du journal directement dans le SGBD SQL ou les enregistrer immédiatement compressés, en les transférant, par exemple, vers gzip. Les versions Apache 1.3 et ultérieures génèrent des messages vers syslog par défaut si le système prend en charge cette fonctionnalité ; mais cela peut être désactivé en utilisant syslog:facility.

...

Contrôle d'accès aux fichiers. Sections sont traités dans le même ordre que dans le fichier de configuration, après lecture des sections de directive et .htaccess, mais avant la lecture des sections du répertoire . L'argument doit contenir le nom du fichier ou un masque contenant "?" - n'importe quel caractère, "*" - n'importe quelle chaîne. Avec le symbole ~ supplémentaire, des enregistrements étendus peuvent être utilisés. expressions (voir la section EXPRESSIONS RÉGULIÈRES dans grep(1)) Par exemple : correspondra aux fichiers graphiques couramment utilisés sur Internet.

...

Pareil que , mais utilise des expressions régulières.

Il s'agit uniquement du démarrage d'Apache et du fork des processus dans l'environnement et avec les droits correspondant au nom donné.

Recherche de nom d'hôte activée | désactivée | double

Contrôle la capacité de déterminer le nom d'hôte du visiteur à l'aide du DNS inversé. Il fonctionne lentement et est considéré comme désactivé par défaut. Double indique que le nom d'hôte doit être soumis à une vérification supplémentaire pour garantir qu'il correspond à l'adresse IP de l'hôte qui a envoyé la demande.

IdentityCheck activé|désactivé

Activez l'authentification RFC1413. L'activation de la fonction augmentera considérablement le temps d'accès au serveur.

...

Et ne doit être exécuté que si cette option est définie dans les structures internes d'Apache. Le signe [!] précédant un paramètre indique que le bloc de directive ne sera lu que si le paramètre n'est pas défini.

...

Indique que les directives placées à l'intérieur d'un bloc formé par une paire de directives Et ne doit être exécuté que si ce module est compilé dans Apache. Le signe [!] précédant le module indique que le bloc de directive ne sera lu que si le paramètre n'est pas défini.

Inclure le nom de fichier [A]

La directive vous permet d'inclure des fichiers de configuration dans la configuration du serveur.

KeepAlive activé|désactivé [A]

Permet à un client de demander plusieurs fichiers de manière séquentielle sans rompre la connexion TCP.

KeepAliveTimeout sec [A]

Spécifie le temps (en secondes) avant la fermeture de la connexion TCP pendant lequel Apache attendra la prochaine requête du client.

...

Permet de spécifier à quelle méthode HTTP (par exemple GET ou POST) appartient le contenu placé à l'intérieur. ... commandes de restriction d’accès.

Les méthodes suivantes peuvent être utilisées : GET, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK.

Port d'écoute [A]

Force Apache à écouter les adresses et les ports spécifiés. Par exemple, pour forcer le serveur à écouter sur les ports 80 et 8000, utilisez :

Pour faire fonctionner Apache sur différentes interfaces avec des numéros de port spécifiés, utilisez :

Écoutez 192.170.2.1:80

Écoutez 192.170.2.5:8000

Longueur du ListenBacklog [A]

La longueur maximale de la file d'attente de traitement de connexion.

...

Détails dans le manuel Apache :)

...

Détails dans le manuel Apache

Nom du fichier de verrouillage [A]

La directive définit le chemin d'accès au fichier de verrouillage.

LogLevel emerg|alert|crit|error|warn|notice|info|debug

Définit le niveau de contenu informatif du protocole (fichier journal du fonctionnement du serveur). Il est recommandé d'utiliser au moins un niveau critique.

Nombre maximum de clients [A]

La directive fixe une limite au nombre de requêtes simultanées vers le serveur. En fait, ce nombre ne peut pas dépasser le nombre de processus enfants du serveur, qui par défaut ne peut pas être supérieur à 256. Pour corriger la situation, éditez HARD_SERVER_LIMIT dans httpd.h et compilez-le.

Nombre MaxKeepAliveRequest [A]

Permet au client de demander séquentiellement le nombre spécifié de fichiers sans interrompre la connexion TCP si KeepAlive est activé. Si le paramètre est défini sur 0, Apache fermera uniquement la connexion en fonction du paramètre KeepAliveTimeout.

Nombre MaxRequestsPerChild [A]

La directive fixe une limite au nombre de requêtes qu'un processus enfant individuel peut gérer. Si MaxRequestsPerChild est défini sur 0, le nombre de requêtes est illimité.

Nombre de MaxSpareServers [A]

La directive définit le nombre maximum souhaité de processus serveur inactifs. La directive est inutile si la version Microsoft Windows d'Apache est utilisée.

Nombre de MinSpareServers [A]

La directive définit le nombre minimum souhaité de processus serveur inactifs. La directive est inutile si la version Microsoft Windows d'Apache est utilisée.

NomPort VirtualHost [A]

Indique que les requêtes adressées à ce nom de port doivent être séparées par le nom de l'hôte auquel vous accédez (l'en-tête HTTP "Host:"). Vous permet de définir plusieurs hôtes virtuels pour une adresse IP.

Options paramètre paramètre...

Définit les paramètres d'action Apache pour le contenu spécifié. Tous les paramètres possibles sont décrits en détail dans le manuel Apache. Fréquemment utilisé : Index - active l'affichage du contenu du répertoire si le fichier d'index n'y est pas trouvé (directive DirectoryIndex) ; ExecCGI - permet de placer des fichiers exécutables (scripts cgi, perl) dans ce répertoire ; Comprend - permet de placer des fichiers dans le répertoire SSI. Chaque paramètre est pris en charge par le module correspondant qui l'utilise et peut ne pas fonctionner si le module requis n'est pas chargé. Chaque directive Options est considérée comme s'ajoutant aux options déjà connues définies pour les répertoires parents. Chaque paramètre peut être préfixé par + ou - pour l'activer ou le désactiver dans un contexte donné.

Nom du fichier PidFile [A]

La directive définit le nom du fichier dans lequel le serveur écrit l'identifiant du processus.

Spécifie le port Apache - un nombre compris entre 0 et 65535 (notez que certains ports peuvent être utilisés par d'autres protocoles, voir /etc/servises). Le port standard pour le protocole http est 80.

require userid|groupid|valid-user|file-owner|group-owner [A]

Détermine quels utilisateurs ont accès au répertoire.

Exiger l'ID utilisateur de l'utilisateur - seuls ces utilisateurs ont accès

Exiger le groupe nom-groupe [nom-groupe] - tous les utilisateurs de ces groupes

Exiger un utilisateur valide : tous les utilisateurs valides.

Nom du fichier ResourceConfig [A]

Le serveur lit d'autres directives de ce fichier après avoir lu httpd.conf. Le nom du fichier est défini par rapport à ServerRoot. Peut être désactivé : ResourceConfig /dev/null

RLimitCPU max|sec[ max|sec] [A]

RLimitMEM max|octets[ max|octets] [A]

RLimitNPROC max|compte[ max|compte] [A]

Satisfaire tout|tout [A]

Définit la stratégie d'accès si Autoriser et Exiger sont utilisés simultanément. Utilisé lorsque l'accès à la zone est limité par le nom/mot de passe et l'adresse du client. Dans ce cas, la valeur par défaut (« tous ») nécessite que le client soit vérifié à l'adresse et qu'il saisisse le nom d'utilisateur et le mot de passe corrects. Dans le cas du paramètre "any", le client obtiendra l'accès s'il a saisi le nom et le mot de passe corrects ou s'il a réussi la restriction d'hôte. Peut être utilisé pour restreindre l'accès via un mot de passe, mais autoriser les clients à partir d'une adresse spécifique sans mot de passe.

Nom du fichier ScoreBoardFile [A]

La directive est requise pour spécifier le nom de fichier utilisé par le serveur pour la communication entre les processus enfants et mères. Vous pouvez savoir si ce fichier est requis en exécutant Apache et en voyant s'il crée un fichier portant le nom donné. Si oui, vous devez vous assurer qu'il n'est utilisé que par une seule copie d'Apache.

SendBufferSize octets [A]

Définit la taille du tampon TCP.

E-mail de l'administrateur du serveur

Définit l'adresse e-mail que le serveur affiche au client dans les messages d'erreur.

Nom d'hôte ServerAlias ​​​​

Spécifie un autre nom d'hôte virtuel.

Nom d'hôte ServerName

La directive définit le nom du serveur ; utilisé dans la création de liens. Si aucun nom n'est spécifié, le serveur tentera de l'obtenir à partir de sa propre adresse IP.

Chemin du chemin du serveur

La directive définit le chemin d'accès hérité de l'hôte.

Chemin de la racine du serveur [A]

Définit le répertoire dans lequel réside le serveur. Contient généralement les sous-répertoires conf/ et logs/. Les chemins d'accès aux autres fichiers de configuration sont construits par rapport à ce répertoire.

Signature du serveur sur|ff|mail

Configure la ligne en bas du document généré par le serveur. Désactivé par défaut, Activé : affiche la version du serveur et le nom du serveur de l'hôte virtuel, Email ajoute un lien mailto : vers ServerAdmin

Jetons de serveur Minimal|OS|Complet [A]

Contrôle l'en-tête envoyé au client par le serveur décrivant le système d'exploitation du serveur et les modules compilés.

ServerType autonome|inetd [A]

Détermine la manière dont le serveur est démarré par le système. inetd - s'exécute à partir du processus système inetd. autonome - comme un processus démon.

Nombre de serveurs StartServers [A]

Définit le nombre de processus enfants créés au démarrage. De toute façon, le nombre change dynamiquement en fonction de la charge, il n'y a généralement aucune raison de modifier ce paramètre.

Le temps qu'Apache attendra : réception d'une requête GET, réception de paquets TCP sur les requêtes POST et PUT, pause entre les ACK lors de la transmission de paquets TCP dans les réponses.

UtiliserCanonicalName activé|désactivé

Permet à Apache de générer les noms des pages qu'il crée en utilisant les valeurs SERVER_NAME avec SERVER_PORT.

Nom d'utilisateur

Définit l'ID utilisateur par lequel le serveur répondra aux demandes. Pour utiliser la directive, le serveur doit être exécuté en tant que root.

...[UN]

Directives placées à l'intérieur d'un bloc formé d'une paire de directives Et Je détermine la configuration d'un hôte virtuel donné. Chaque hôte virtuel doit avoir une adresse IP, un numéro de port ou un nom d'hôte unique. Il est logique d'utiliser cette directive si, par exemple, le serveur dispose d'une interface réseau pour le réseau interne et d'une autre interface pour le réseau externe.

mod_env - définit et transmet les variables pour le traitement dans les fichiers CGI/SSI

Variable PassEnv[ variable] ...

Passe une variable d'environnement (par exemple HOME) aux gestionnaires.

Valeur de la variable SetEnv

Écrit la valeur spécifiée dans la variable d'environnement spécifiée.

Variable UnsetEnv[ variable] ...

Réinitialise une variable, rendant impossible sa lecture à partir des gestionnaires.

mod_setenvif - utilise des expressions conditionnelles pour définir les variables d'environnement

Variable d'environnement regex BrowserMatch[=valeur] ] ... [A]

Utilise l'expression régulière transmise comme filtre pour l'en-tête User-Agent du navigateur client. En cas d'accès réussi, initialise la variable avec la valeur donnée. Si seul le nom de la variable est spécifié, il est initialisé avec le chiffre 1. Si une variable est spécifiée avec un "!" - la variable est réinitialisée.

BrowserMatchNoCase regex env-variable[=valeur] ] ... [A]

Agit de la même manière que BrowserMatch, permettant des différences de casse de caractères entre la valeur User-Agent transmise et l'expression régulière utilisée comme filtre.

Attribut SetEnvIf regex env-variable[=value] ] ... [A]

L'action effectuée par la directive est complètement similaire à BrowserMatch, mais à la place de User-Agent, n'importe quel autre en-tête peut être utilisé : Remote_Host ; Adresse_Distante ; Utilisateur_distant ; Requête_Méthode ; Demande_URI ; Référent

Attribut SetEnvIfNoCase regex env-variable[=value] ] ... [A]

La différence avec SetEnvIf est la même que celle de BrowserMatchNoCase de BrowserMatch ci-dessus.

mod_unique_id - générer une variable d'environnement unique UNIQUE_ID

La variable est générée de manière aléatoire à partir de l'adresse IP du serveur, du numéro du processus en cours, des horodatages et des compteurs internes supplémentaires.

La variable est destinée à être utilisée dans des documents composés lorsqu'il n'est pas possible de suivre la même demande à l'aide d'autres méthodes.

mod_mime - conçu pour déterminer le type MIME d'un fichier lors de son transfert vers le client

Extension du jeu de caractères AddCharset...

Pour les extensions de fichier spécifiées, indique à Apache de transmettre ce jeu de caractères lorsqu'il répond au client.

Extension AddEncoding MIME-enc...

Pour les extensions de fichier spécifiées, indique à Apache de transférer le fichier en utilisant le codage MIME souhaité.

Extension du nom du gestionnaire AddHandler...

Indique à Apache que les fichiers avec des extensions données doivent être transmis à un gestionnaire spécifique. Le gestionnaire peut être soit interne (cgi-script et autres) soit externe, décrit précédemment par la directive Action.

Extension AddLanguage MIME-lang...

Établit une relation entre les extensions de fichiers et le code de langue envoyé dans la réponse.

Extension de type MIME AddType...

Met à jour la table des types MIME avec un nouveau mappage des extensions de fichiers et du code MIME pour la réponse au client.

DefaultLanguage MIME-lang

Définit la langue de réponse pour qu'elle soit toujours envoyée si cela ne peut pas être fait par d'autres moyens.

ForceType Type MIME

Force une réponse avec le type MIME donné dans le répertoire auquel la directive donnée est affectée.

Supprimer l'extension Encoding...

Supprime le code de codage MIME dans la réponse pour les fichiers portant ces extensions.

Extension RemoveHandler...

Indique à Apache de ne pas exécuter de gestionnaires pour les fichiers portant ces extensions.

Extension RemoveType...

Réinitialise le type MIME dans la réponse au client au type MIME par défaut

Gestionnaire SetHandler

Force l'appel de ce gestionnaire pour tous les fichiers auxquels cette directive est affectée.

Nom du fichier TypesConfig [A]

Spécifie l'emplacement de la table de mappage de type MIME. Par défaut - conf.mime.types

mod_mime_magic - un module qui utilise des règles complexes pour déterminer le type MIME du fichier envoyé dans la réponse

Nom de fichier MimeMagicFile

Active une action de module utilisant le fichier spécifié sur une zone de document donnée du serveur web ou sur tous les documents disponibles pour Apache.

mod_negotiation - permettant la négociation des types de données transmis entre le client et le serveur

CacheNégociéDocs [A]

Permet la mise en cache de documents au contenu cohérent sur les serveurs proxy intermédiaires et l'ordinateur client.

LanguagePriority MIME-lang... [A]

Détermine la priorité des langues utilisées dans la réponse au client lorsqu'il n'est pas possible de déterminer ou de retrouver précisément la langue du document demandée par le client.

mod_alias - vous permet de placer des documents dans les répertoires du serveur Web de manière plus arbitraire

Alias ​​​​URL-chemin du système de fichiers

Indique à Apache que les documents situés « en dessous » de l'URL donnée doivent être recherchés « en dessous » de l'emplacement du système de fichiers donné.

AliasMatch URL-regexp chemin du système de fichiers

Définit des règles plus complexes pour rechercher des données dans le système de fichiers en comparant les URL avec une expression régulière.

URL de redirection du chemin d'URL

En réponse à la demande, le chemin URL et les documents "ci-dessous" renvoient le code de réponse spécifié (302 par défaut) et redirigent le client vers une autre URL. Le statut peut être spécifié sous forme de nombre ou symboliquement : permanent (301), temporaire (302), voir autre (303), parti (410). Pour un code de réponse 410, l'URL de réponse doit être omise.

URL d'expression régulière d'URL RedirectMatch

Semblable à la redirection, utilisant une expression régulière spécifiée plutôt qu'une correspondance exacte pour comparer l'URL transmise.

URL du chemin d'URL de RedirectTemp

Semblable à la redirection utilisant le code de réponse 302.

RedirectPermanent URL-chemin d'URL

Semblable à la redirection utilisant le code de réponse 301.

ScriptAlias ​​​​URL-path chemin du système de fichiers

Fonctionne de manière similaire à Alias ​​​​mais définit automatiquement le gestionnaire cgi-handler pour qu'il s'exécute pour tous les fichiers du répertoire cible.

Chemin du système de fichiers ScriptMatch URL-regexp

Similaire à ScriptAlias, avec vérification d'URL à l'aide d'une expression régulière.

mod_rewrite - contrôle l'emplacement des documents sur le serveur

Dans un bref recueil de descriptions des directives Apache, il est difficile de décrire les tâches résolues par ce module complexe. Comme guide d'action, il est préférable d'utiliser les sections spéciales du manuel Apache "Module mod_rewrite URL Rewriting Engine" et "URL Rewriting Guide". Le moyen le plus simple d'apprendre à utiliser ce module est d'examiner des problèmes spécifiques et leurs solutions en l'utilisant.

Il existe un seul processus principal (parent) chargé de créer des processus enfants, qui à leur tour écoutent les connexions et traitent les demandes des clients. Apache essaie toujours de garder en réserve quelques processus serveur inutilisés qui sont prêts à traiter les requêtes entrantes. Ainsi, les clients n'ont pas à attendre la création de nouveaux processus enfants qui seront forkés avant que leur requête ne soit traitée. Les directives MaxSpareServers et MaxClients contrôlent la manière dont le processus parent crée des processus enfants pour répondre aux demandes.

En général, Apache est très autonome, donc pour la plupart des sites Web, il n'est pas nécessaire de modifier ces directives par rapport à leurs valeurs par défaut.

Pour les sites qui doivent traiter plus de 256 requêtes simultanées, il faudra peut-être augmenter MaxClients, et pour les sites situés sur des serveurs avec une mémoire limitée, il faudra peut-être réduire MaxClients pour éviter de forcer le serveur à échanger de la mémoire vers le disque et inversement), ce qui entraînera entraîner de graves ralentissements du travail.

Le choix des modules est l'une des étapes les plus importantes pour assurer une bonne sécurité du serveur Web Apache. Nous devrions être guidés par une bonne règle : moins il y en a, mieux c'est. Pour activer la fonctionnalité dont nous avons besoin et fournir une bonne protection, les modules suivants doivent être activés :

httpd_core - Noyau Apache, requis pour chaque installation d'Apache.

mod_access - Contrôle l'accès aux répertoires du serveur en fonction de l'adresse IP ou du nom d'hôte du client.

mod_auth - Requis pour autoriser les utilisateurs à utiliser des fichiers texte.

mod_dir - Obligatoire pour rechercher les fichiers d'index : "index.html", "default.html", etc.

mod_log_config - Fournit la journalisation des requêtes envoyées au serveur. mod_mime - Contient des directives qui facilitent l'organisation de différents types MIME sur le serveur.

Tous les autres modules Apache doivent être désactivés. Nous pouvons les désactiver en toute sécurité car nous n’en aurons pas besoin. En désactivant les modules inutiles, nous empêchons un attaquant d'exploiter une vulnérabilité trouvée dans l'un de ces modules.

Il convient également de noter que deux modules Apache (mod_autoindex et mod_info) sont les plus dangereux. Le premier module vous permet d'indexer automatiquement le répertoire et est activé par défaut. Pour voir comment cela fonctionne, saisissez par exemple http://nom_serveur/icons/ et s'il n'y a pas de fichiers d'index dans ce répertoire, le contenu de tout le répertoire sera affiché. Le deuxième module, mod_info, ne doit jamais être accessible sur Internet car il expose l'intégralité de la configuration du serveur Web Apache.

La question suivante est de savoir comment compiler les modules. Il me semble que la méthode statique est la meilleure (les codes sont intégrés dans des fichiers exécutables) plutôt que la méthode dynamique (les codes sont collectés au moment du lancement du programme). En choisissant une méthode statique, nous éliminons également le besoin d'un autre module, mod_so.

Travail indépendant: Travailler avec le serveur de base de données MySQL. Création de tableaux. Insérer, récupérer et mettre à jour des données dans une base de données.

Travail de laboratoire n°12. Installation et configuration du serveur Web Apache.

Travail indépendant: Travailler avec le serveur de base de données MySQL.

Serveur Linux DIY Kolisnichenko Denis Nikolaevich

12.2.2. Configuration d'Apache à l'aide de netconf

Presque tous les paramètres du serveur Web Apache peuvent être définis à l'aide du configurateur netconf (ou linuxconf). Pour cela, lancez netconf et allez dans l'onglet Tâches du serveur puis cliquez sur le bouton « Apache Webserver » (voir Figure 12.2).

Riz. 12.2. Configuration d'Apache à l'aide de netconf

Avec netconf, vous pouvez facilement définir les paramètres Apache de base (voir Figure 12.3), définir des hôtes virtuels, définir les paramètres de sous-répertoire, définir les spécifications de répertoire et de module et définir les paramètres du module mod_ssl (voir Figure 12.4), dont la configuration est discutée ci-dessous. dans ce chapitre.

Riz. 12.3. Options de base d'Apache

Riz. 12.4. Configuration du module mod_ssl

Extrait du livre Boostez votre site Web auteur Matsievski Nikolaï

Depuis Linux pour le livre d'utilisateur auteur Kostromin Viktor Alekseevich

Configuration d'Apache 2 Pour Apache 2, les étapes décrites semblent beaucoup plus simples.# ajoutez Content-Type pour tous les fichiers avec l'extension .gzAddEncoding gzip .gz# activez la compression pour les fichiers HTML et XMLAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xml# et pour les icônes (plus d'informations ci-dessous) AddOutputFilterByType DEFLATE image/x-icon#

Extrait du livre Serveur Linux DIY auteur

Configuration d'Apache Les tests sous Konqueror ont montré que ce navigateur ne comprend pas les fichiers archivés (CSS et JavaScript), donc pour sauver un dixième de pour cent des visiteurs d'une crise cardiaque (lorsqu'ils voient un site sans les styles appropriés), il vaut la peine l'ajouter à cet ensemble

Extrait du livre Linux : Le guide complet auteur Kolisnichenko Denis Nikolaïevitch

Extrait du livre Ubuntu 10. Guide de démarrage rapide auteur Kolisnichenko D.N.

Configuration Apache 2 # définissez l'en-tête Content-Encoding : gzipAddEncoding gzip .gz# dès le début, activez gzip pour les fichiers texteAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xml# et pour favicon.icoAddOutputFilterByType DEFLATE image/x-icon# également pour CSS et JavaScript -filesAddOutputFilterByType DEFLATE texte/cssAddOutputFilterByType DEFLATE

Extrait du livre Linux à travers les yeux d'un hacker auteur Flenov Mikhaïl Evgenievich

13.2.6. L'utilitaire netconf Dans les sections précédentes, j'ai essayé de décrire en détail et de manière cohérente comment configurer l'accès au réseau en éditant directement les fichiers de configuration. Cependant, les paramètres du réseau local peuvent être définis à l'aide d'utilitaires spéciaux.

Extrait du livre de l'auteur

12 Serveur Apache Ce chapitre est dédié au serveur WWW populaire Apache. Apache Server est développé et maintenu par le projet Apache. Apache était à l'origine une variante du serveur Web NCSA développé au National Supercomputing Center de l'Université de l'Illinois.

Extrait du livre de l'auteur

12.1. Installation d'Apache Pour installer le serveur Apache, vous devez installer les packages apache et apache-docs. Le premier contient le serveur lui-même et le second contient la documentation. Il est conseillé d'installer la dernière version. Dans les dernières versions, vous devez également installer le package apache-common, qui contient

Extrait du livre de l'auteur

12.5. SSL et Apache 12.5.1. Installation de SSL SSL (Secure Sockets Layer) est une méthode de cryptage développée par Netscape pour assurer la sécurité d'Internet. Cette méthode prend en charge plusieurs méthodes de chiffrement et fournit une authentification au niveau client et au niveau client.

Extrait du livre de l'auteur

12.5.2. Connecter SSL à Apache Il ne reste plus qu'à connecter mod_ssl à Apache. Veuillez noter que vous avez besoin d'une version de mod_ssl compatible avec votre version d'Apache. Sinon, le module mod_ssl ne fonctionnera pas correctement ou refusera de faire quoi que ce soit. Derniers numéros du titre

Extrait du livre de l'auteur

16.1. Installation d'Apache Selon la distribution, le package à partir duquel le serveur Web Apache est installé peut être appelé apache ou httpd, et le package de documentation peut être appelé respectivement apache-docs ou httpd-manual. Dans le premier cas, vous devrez installer le package apache-common contenant

Extrait du livre de l'auteur

16.10. SSL et Apache 16.10.1. Installation de SSL SSL (Secure Sockets Layer) est une méthode de cryptage développée par Netscape pour garantir une transmission sécurisée des données. Cette méthode prend en charge plusieurs méthodes de chiffrement et fournit une authentification au niveau du client et du client.

Extrait du livre de l'auteur

16.10.2. Connecter SSL à Apache La version de mod_ssl que vous devez installer doit être compatible avec votre version d'Apache, sinon le module mod_ssl ne fonctionnera pas correctement ou refusera de faire quoi que ce soit. Les derniers chiffres du nom du module indiquent la compatibilité avec un

Extrait du livre de l'auteur

16.13. Protection du serveur Apache Après avoir configuré le serveur, nous interdisons de modifier et de supprimer le fichier de configuration : # chattr +i /etc/httpd/conf/httpd.conf Après cela, vous (et personne d'autre) pourrez modifier cela fichier même en utilisant le configurateur. Il est également conseillé de définir les autorisations sur 511 pour

Extrait du livre de l'auteur

26.2.1. Installer Apache et PHP Lancez le gestionnaire Synaptic. Dans le champ Recherche rapide, saisissez Apache. Cliquez avec le bouton droit sur le package apache2 et sélectionnez Marquer pour l'installation. Le gestionnaire de packages vous indiquera que des packages supplémentaires doivent être installés (Figure 26.1). Cliquez sur le bouton

Extrait du livre de l'auteur

5.1.1. netconf Cette commande démarre le configurateur réseau (Figure 5.1). Le programme netconf possède une interface graphique conviviale et vous permet de configurer les paramètres réseau sans vous soucier des fichiers de configuration. Riz. 5.1. Fenêtre du programme

Le développement professionnel se concentre toujours sur ses propres outils - c'est une garantie d'un respect fiable et efficace des obligations. Un hébergement et des serveurs propres à diverses fins dans une gamme de configurations populaires élargissent la portée des tâches résolues, augmentent la sécurité et la confidentialité des développements.

HTTP natif : Apache, PHP, MySQL

Le serveur Web Apache est clairement en tête depuis le siècle dernier, car il offre un fonctionnement rapide, fiable et sécurisé. Une machine physique et un serveur exécutant Linux ou Windows constituent la base, HTTP est le module complémentaire, bien qu'il s'agisse essentiellement d'un protocole de transfert de données. Une machine Windows peut être utilisée comme serveur, mais la préférence est donnée à la famille Linux.

Apache sous Windows est une option locale utilisée sur une seule machine pour dupliquer le développement de ressources hébergées sur des serveurs externes. Le réglage sur est acceptable, mais pas très populaire. La configuration d'Apache sur CentOs offre plus d'options et est utilisée pour organiser les serveurs sur les réseaux locaux et mondiaux.

On pense que les serveurs Apache servent plus de 50 % de toutes les ressources Web actives, la part restante provient de produits similaires de Microsoft, Sun, etc. En fait, le serveur physique et son système d'exploitation peuvent être n'importe quoi. Le serveur HTTP est installé sur une plate-forme prête à l'emploi et s'exécute en parallèle avec d'autres applications. Apache est considéré comme natif de toute la famille Linux, mais dans chaque cas spécifique, il a ses propres caractéristiques.

La liberté, la simplicité et la fiabilité distinguent les systèmes Linux et leurs applications. Peu importe ce que vous utilisez : installer et configurer Apache sur Ubuntu n'est pas très différent de CentOs, Debian ou FreeBSD. La saturation d'un système d'exploitation particulier avec des logiciels supplémentaires joue souvent un rôle.

La famille Linux est petite en termes de nombre de « parents » sur la ligne de l'un ou l'autre noyau système. Les différences sont plutôt d'ordre social, dans le sens de l'attachement des développeurs à la formulation et à la mise en œuvre des capacités du système d'exploitation.

En réalité, pour résoudre un problème spécifique d'hébergement croissant, vous devez décider des fonctionnalités nécessaires, des performances requises, des priorités conceptuelles et d'un choix spécifique de représentant Linux, ou choisir Windows Server.

Changer les priorités de développement local

Il est difficile d'évaluer le rôle du réseau mondial dans le développement de la programmation, mais il est facile de constater un véritable déplacement du centre de gravité : les applications locales sont devenues habituelles pour s'exécuter comme une ressource Web. Il est facile d'écrire un programme pour un ordinateur local - il s'agit notamment de pilotes, d'antivirus, de petits projets dotés de fonctionnalités simples. Langage de programmation... VBA, bien que C/C++ ou C# puissent être utilisés.

Tout projet d’information est une ressource web sur le réseau local de l’entreprise, qui peut être partiellement accessible depuis le réseau mondial, par exemple pour coordonner les actions des collaborateurs extérieurs au bureau qui sont en déplacement ou en déplacement professionnel.

MySQL, PHP, Apache : la mise en place d'une application locale implique une dynamique complètement différente de l'application et des fonctionnalités requises. Les entreprises modernes, quels que soient leur taille, leur nombre d'employés et leur domaine d'activité, envisagent sérieusement la programmation Internet, tant locale que mondiale.

Dans le même temps, le local peut être distribué : les bureaux de l'entreprise peuvent être situés n'importe où, mais il ne s'agit pas d'Internet, mais d'un réseau local distribué de l'entreprise.

Configuration MySQL, PHP, Apache sous forme locale :

  • facilement dupliqué sur les ordinateurs du réseau ;
  • offre la possibilité de modifier dynamiquement le composant actif ou de le comparer avec un échantillon pour évaluer les tentatives de piratage ;
  • donne des raisons de développer un système de sécurité exempt du risque d'attaque par les méthodes de réseau classiques.

Si l'on considère que MySQL et Apache dans l'environnement Windows sont des services, et que le code PHP est du texte brut traité par un outil (interpréteur PHP) appelé au bon moment par le serveur HTTP, alors le niveau de variabilité, de mobilité et de portabilité du code sera bien supérieur aux outils de développement local.

Préparation de l'installation d'Apache

À l’époque du « début des commencements », le système d’exploitation Unix définissait des principes tacites de loyauté. Depuis lors, tout ce qui se faisait sur les systèmes de type Unix était automatiquement traduit sur d’autres plateformes. La configuration d'Apache sur Windows est extrêmement simple, mais la résolution de problèmes sérieux nécessitera de bonnes qualifications et une compréhension détaillée de la configuration du serveur HTTP.

Tout d'abord, vous devez télécharger la dernière version du serveur (il s'agit aujourd'hui de la version 2.4.33 du 17 mars 2018) depuis le site officiel au format archive zip. Il faut garder à l'esprit dans un premier temps que les versions de serveur sont nombreuses et proposées sur de nombreuses ressources tierces, il est donc important de choisir une implémentation officielle hébergée sur une ressource web de confiance.

Auparavant, il était courant d'installer un serveur à l'aide d'un programme d'installation spécial. Il est désormais courant de déployer simplement une archive zip. Ceci est plus simple et permet de comprendre l'essence du processus de configuration, ce qui est très important et permet par la suite d'optimiser le serveur pour la charge et les fonctionnalités requises.

Modification d'un fichier de configuration

La configuration du serveur est déterminée par un ensemble de fichiers de configuration situés dans le dossier conf. Le fichier de configuration principal d'Apache est httpd.conf.

Dans la grande majorité des cas, il est nécessaire d'apporter des modifications au fichier principal, de clarifier le contenu des fichiers responsables du SSL et des hôtes virtuels. D'autres ajustements sont généralement effectués en cours de route, à mesure que des problèmes surviennent ou sont résolus. Fondamentalement, d'autres paramètres sont liés à l'optimisation du fonctionnement d'Apache ou à l'extension de ses capacités.

Pour lancer avec succès le serveur, il suffit de modifier une seule ligne (dans l'ordre - 38ème) - et la configuration d'Apache est terminée.

Dans les versions précédentes de la configuration du serveur, il était nécessaire d'apporter de nombreuses modifications pour s'adapter à la situation réelle, mais il existe désormais une variable SRVROOT « universelle ». Il vous suffit de spécifier sa valeur correcte (le chemin d'accès à l'emplacement du serveur) et tout fonctionnera immédiatement.

Procédure de placement de serveur

L'emplacement du serveur doit être soigneusement étudié. Apache en lui-même est intéressant, mais lorsqu'il est équipé de PHP et MySQL, il l'est doublement. C'est mieux quand tout ce qui concerne le développement Web est au même endroit. Vous pouvez accepter les chemins par défaut, mais la programmation moderne n'est pas si idéale dans sa mise en œuvre, vous devrez donc garder le doigt sur le pouls clairement et souvent. De plus, lors du choix d'un emplacement pratique, tous les fichiers d'initialisation et de configuration, ainsi que les journaux sur le fonctionnement des produits installés, seront disponibles.

L'archive zip officielle Apache téléchargée doit être déployée à l'emplacement sélectionné, en plaçant l'outil et le travail séparément. Dans cet exemple, le dossier C:\SCiA est un outil (Apache24, PHP, MySQL, ...), et le dossier SCiB est l'œuvre des sites en cours de création, de maintenance ou de modernisation.

Suite à la première étape de travail, seuls les sous-dossiers bin, cgi-bin, conf, error, ... avec tout leur contenu se retrouvent dans le dossier C:\SCiA\Apache24.

Modification du fichier hosts

La deuxième étape consiste à configurer correctement le fichier hosts - une indication des adresses IP d'un ordinateur donné qui sont mappées à quels noms. Si un seul site Web est développé ou maintenu sur un ordinateur, vous n’avez rien à changer.

IP de base - 127.0.0.1 pointe généralement toujours vers localhost. Le fichier hosts de travail se trouve dans c:\Windows\System32\drivers\etc et ressemble à celui illustré ci-dessous.

Pour placer le fichier hosts au bon endroit, vous devez utiliser la ligne de commande en mode administrateur. Vous pouvez préparer le contenu correct du fichier n'importe où dans le système de fichiers de l'ordinateur, mais vous pouvez l'écrire à l'adresse c:\Windows\System32\drivers\etc uniquement avec un outil disposant des droits d'administrateur. Le moyen le plus simple de procéder consiste à utiliser la ligne de commande.

Installation du serveur Apache

Rien de plus simple. Exécutez simplement la ligne de commande en tant qu'administrateur et accédez au dossier C:\SCiA\Apache24. Puisqu'il s'agit d'un chemin Windows, des barres obliques sont utilisées. Dans un cas précis, le chemin peut être différent. Mais si vous pouvez encore expérimenter d'une manière ou d'une autre le nom du dossier pour héberger la Sainte Trinité - Apache, PHP et MySQL, alors changer les noms de dossier pour chacun d'eux n'est pas pratique.

Dans ce cas, l'archive du serveur est déployée dans le dossier C:/SCiA/Apache24, vous devez donc écrire la commande dans le dossier bin :

  • httpd.exe -k installer

Le serveur testera le fichier de configuration et s'installera lui-même. Très probablement, il y aura des erreurs mineures, mais si vous modifiez correctement le fichier de configuration, toutes les erreurs seront insignifiantes et pourront être rapidement corrigées.

Fenêtre de ligne de commande (1) - installation du service, fenêtre (2) - liste des services dans lesquels le serveur est déclaré, fenêtre (3) - fichier source index.html, situé dans C:/SCiB/localhost/www, fenêtre (4) - le résultat du fonctionnement du serveur.

Dans cet exemple, une erreur intentionnelle a été commise : au lieu de définir la valeur de la variable SRVROOT, de nombreuses modifications ont été effectuées « à l'ancienne » : tout a été modifié manuellement. Ce n'est pas la meilleure solution. Avant d'appliquer les connaissances, vous devez vous familiariser avec la version actuelle du produit. En règle générale, les choses changent rapidement et les connaissances doivent être appliquées « avec compétence et compréhension de la situation actuelle ».

Pratique du déploiement d'une archive zip

Les sites Web modernes ne sont pas toujours rédigés à l’aide de systèmes de gestion de contenu. Il y a beaucoup de travail manuel. Le problème du transfert d'un site vers un autre hébergement a fourni une bonne solution : une archive zip. Nous avons réduit le contenu à un endroit et l'avons développé à un autre.

Avoir un installateur est une bonne pratique, mais la dynamique des technologies de l'information modernes ne laisse pas le temps d'écrire de belles installations. L'utilisation de l'installation via le déploiement d'archives zip est moderne, pratique et pratique. Dans cette option, la configuration d'Apache se limite à modifier les fichiers de configuration.

Lors de l'installation du serveur, il est important de préciser :

  • Où se trouve-t-il ?
  • où se trouve la ressource Web (localhost) ;
  • en utilisant SSL ;
  • hôtes virtuels.

La dernière position est pertinente lorsque le serveur est censé développer ou maintenir plusieurs ressources à la fois. Pour un vrai développeur, il s'agit d'une décision obligatoire : même s'il assure le fonctionnement d'un site, il ne serait pas superflu de disposer d'une option de sauvegarde.

Ensembles pour gentleman

La facilité de déploiement d'une archive zip est évidente, Apache (installation et configuration) se fait en deux ou trois clics. Toutefois, le résultat lorsque les installateurs étaient populaires était équivalent. Le développeur a simplement passé plus de temps à développer la prochaine version de son produit. L'installation du serveur, de la langue du serveur et de la base de données consiste essentiellement en un ensemble de fichiers, de services de démarrage, d'un fichier hosts et de chemins par défaut dans la variable de chemin du système d'exploitation.

L'apparition de "Denver" et de kits de développement similaires pour hommes a constitué une étape révolutionnaire dans le domaine de la simplicité et de la commodité, mais il ne faut pas se tromper. La révolution et la programmation sont des choses absolument incompatibles. La première est l’enfant d’un conflit et de sa résolution orageuse, la seconde est une affaire sérieuse qui requiert un calme absolu, une ponctualité, une précision, une cohérence, une attention, une sécurité et une fiabilité.

La configuration d'un serveur Apache est une procédure sérieuse qui doit être traitée avec une extrême prudence et tout est fait pour que demain vous puissiez changer et clarifier quelque chose.

Dans la plupart des cas, le développement de ressources Web est un processus assez long dans lequel les exigences en matière de services (Apache, PHP, MySQL, ...) changent rapidement, mais il est toujours temps de comprendre la tâche suivante et sa solution optimale. Mais ce n’est pas une raison pour opter pour les sets pour messieurs. Le temps passe, mais le monsieur ne change pas, c'est un argument bien plus convaincant que la déclaration de Denver - il est simple, rapide et accessible.

Plusieurs sites - un serveur

Configurer Apache 2.4 pour le bien d'un seul hôte est un luxe injustifié. Malgré sa conception compacte, ce serveur porte une énorme responsabilité pour la plupart des ressources Web actives sur Internet. De plus, toutes les ressources n’ont pas une partie représentative et sont visibles sur le réseau.

Le serveur peut être utilisé comme base de données, comme point de transfert d'informations, comme filtre, comme analyseur, comme mécanisme de travail dans un processus d'information plus global. En conséquence de ce qui précède, la configuration d’hôtes virtuels Apache est presque toujours une procédure obligatoire.

Un serveur peut prendre en charge autant de ressources Web que vous le souhaitez ; pour ce faire, vous devez décommenter la ligne 501 dans le fichier httpd.conf :

  • # Inclure conf/extra/httpd-vhosts.conf

et décrivez tous les hôtes nécessaires dans le fichier

  • extra\httpd-vhosts.conf.

Vous devrez peut-être clarifier quels ports et IP le serveur écoute, mais il s'agit d'un sujet distinct ; pour la première fois, vous pouvez vous limiter à ce dont vous disposez.

Il convient de noter que dans l'exemple, pour faciliter la description des ressources Web virtuelles réelles (et elles sont nombreuses), une variable (DOCROOT) a été introduite avec le chemin d'accès au dossier partagé de toutes les ressources Web accessibles via le serveur installé. .

La configuration d'Apache SSL est disponible de la même manière. Dans le fichier httpd.conf, il suffit de laisser « telles quelles » les lignes 524 à 531, qui sont responsables du fonctionnement de SSL.

La simplicité et la complexité d'Apache

L’époque où la configuration d’un serveur était vraiment une tâche difficile est révolue depuis longtemps. Aujourd'hui, la configuration d'Apache est une procédure très simple qui ne nécessite pas de qualifications particulières de la part du développeur.

Trois étapes simples :

  • développer les archives ;
  • modifier le fichier de configuration ;
  • installer le serveur.

En conséquence, Apache est entièrement fonctionnel. Si vous ne tenez pas compte des subtilités du processus d'exécution d'un serveur à charge maximale ou si vous effectuez un développement local sur un ordinateur Windows, aucune connaissance supplémentaire n'est requise.

Des difficultés peuvent survenir sur les systèmes Linux. Une compréhension significativement différente du système de fichiers, des droits des utilisateurs et des groupes, ainsi que de l'organisation du processus d'interaction avec d'autres applications nécessitent une plus grande compétence et une plus grande compréhension de la part du développeur du fonctionnement des ordinateurs Linux.

La configuration d'Apache sur n'importe quel système Linux ouvre beaucoup plus de possibilités au développeur et donne accès au réseau local et à Internet. Selon la tradition établie, un ordinateur Windows est un poste de travail local et le serveur est interne. Un ordinateur Linux est un nœud de réseau local ou un point dans l'espace Internet.

Environnement de développement professionnel

Apache est un élément fondamental d’Internet qui peut être facilement configuré, utilisé et devient l’épine dorsale d’une entreprise.

Cette logique suppose la présence d'au moins un serveur sur le réseau sur la plateforme CentOS, Ubuntu, FreeBSD et les postes de travail Windows. Il est optimal d'avoir deux serveurs Linux (principal et auxiliaire), configurant Apache pour un ordinateur local dans un environnement Windows. En cas d'attaque de virus ou de situation imprévue, le serveur auxiliaire remplacera le serveur principal, et le serveur principal sera utilisé pour la réparation et la restauration. Vous pouvez remplacer l'installation locale d'Apache sur un poste de travail (sous Windows) à partir de l'archive.

Cette solution triviale peut être affinée et complétée dans la pratique réelle. La taille des flux d'informations d'une entreprise peut déterminer la configuration souhaitée et le nombre de serveurs nécessaires. En fait, Apache est conçu pour fonctionner sous charge, mais rien ne vous empêche de répartir les responsabilités d'un serveur sur plusieurs. Une solution qui prend en compte les caractéristiques d'une entreprise spécifique est toujours plus prometteuse que l'adaptation d'une option tierce.

Hébergement de sites Web

Peut être mis en œuvre de quatre manières :

    Par défaut dans le dossier /var/www/html. L'accès est http://localhost/

    Principaux paramètres d'hébergement. Par exemple, http://localhost/phpmyadmin

    Dans n'importe quel dossier utilisant le module d'hôtes virtuels. Par exemple, http://monsite/

    Dans le dossier public_html de l'utilisateur (module userdir). Par exemple, http://localhost/~username

Installation

Pour installer Apache, exécutez dans un terminal :

sudo apt-get install apache2

Paramètres

Pour appliquer les modifications dans les paramètres, vous devez redémarrer le démon Apache : sudo service apache2 restart

Sous Ubuntu, le fichier de configuration final (apache2.conf) est divisé en plusieurs fichiers situés dans des sous-répertoires différents. Plus de détails sont écrits dans les commentaires du fichier. apache2.conf.

/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.charger | `-- *.conf |-- conf-enabled | `-- *.conf `-- sites activés `-- *.conf

Les paramètres du module se trouvent dans le répertoire /etc/apache2/mods-disponible. Pour activer ou désactiver des modules (paramètres du module), utilisez les commandes a2enmod ou a2dismod appropriées. Exemple de connexion de module :

sudo a2enmod< mod-name>

Vos paramètres doivent être enregistrés dans des fichiers situés dans le répertoire /etc/apache2/conf-disponible. Pour activer ou désactiver vos paramètres, utilisez les commandes a2enconf ou a2disconf appropriées. Un exemple de connexion d'un fichier avec vos propres paramètres :

sudo a2enconf< config-name>

Les paramètres de l'hôte virtuel doivent être enregistrés dans des fichiers situés dans le répertoire /etc/apache2/sites-disponibles. Pour connecter des hôtes virtuels, utilisez les commandes a2ensite ou a2dissite appropriées. Exemple de connexion d'un hôte virtuel :

sudo a2ensite< site-name>

Encodage par défaut

Pour spécifier l'encodage par défaut, utilisez la directive AddDefaultCharset dans le fichier /etc/apache2/conf-available/charset.conf(ou décommentez la ligne correspondante) :

AddDefaultCharset UTF-8

Hôtes virtuels

Les fichiers de configuration de l'hôte virtuel sont stockés dans /etc/apache2/sites-available/*.conf. Par défaut, Apache a déjà un hôte virtuel configuré. Ses paramètres sont dans le fichier 000-default.conf. Vous pouvez utiliser cet hôte virtuel comme exemple.

Exemple de configuration d'un hôte virtuel :

#Nom d'hôte ServerName host1.server1 #Dossier racine de l'hôte DocumentRoot /var/www/host1.server1 #Autorisation d'écraser toutes les directives à l'aide de .htaccess AllowOverride All

Nommez le fichier de configuration avec votre nom d'hôte host1.server1.conf et enregistrez.

Après avoir créé le fichier de paramètres, ajoutez votre nom d'hôte à /etc/hosts :

127.0.0.1 hôte1.server1

Pour activer l'hôte virtuel créé, utilisez l'utilitaire a2ensite :

sudo a2ensite hôte1.server1

L'hôte est déconnecté de la même manière que l'utilitaire a2dissite :

sudo a2dissite hôte1.server1

Modules

mod_userdir

Le module mod_userdir vous permet d'utiliser des répertoires situés dans les répertoires personnels des utilisateurs pour stocker des pages Web. Par défaut, Apache recherche les pages demandées dans le répertoire ~/public_html

mkdir ~/ public_html

Pour activer mod_userdir, exécutez :

sudo a2enmod répertoire utilisateur

et ajoutez l'utilisateur requis au groupe www-data :

sudo adduser $USER www-data

puis redémarrez Apache :

Les pages seront accessibles sur http://localhost/~username, où username est le nom d'utilisateur.

Image de synthèse

Si vous souhaitez exécuter des scripts cgi sur le serveur, connectez le module cgi avec la commande

sudo a2enmod cgi

Par défaut, les scripts cgi sont placés dans le répertoire /usr/lib/cgi-bin, mais vous pouvez les placer n'importe où en le spécifiant dans les paramètres de votre hôte virtuel, ou globalement pour tous les hôtes du fichier. /etc/apache2/conf-enabled/serve-cgi-bin.conf.

Si votre serveur fonctionne sur un réseau externe, alors pour des raisons de sécurité il est fortement recommandé de placer les scripts cgi en dehors du répertoire racine de l'hôte virtuel

Configuration de HTTPS dans Apache

Le serveur Web Apache prend entièrement en charge HTTPS. Pour activer la prise en charge HTTPS sur un Apache déjà installé, vous devez procéder comme suit.

Création d'une clé et d'un certificat SSL

L'utilisation de certificats auto-signés, bien qu'elle protège contre les écoutes passives, ne garantit pas aux clients que le serveur est exactement celui dont ils ont besoin. L’avantage des certificats auto-signés est qu’ils sont gratuits. Un certificat signé par une autorité de certification coûte de l'argent.

Pour créer une clé et un certificat, entrez la commande :

Openssl req -new -x509 -days 30 -keyout server.key -out server.pem

À la question « Entrez la phrase de passe PEM : », nous répondons avec le mot de passe, confirmons et mémorisons.

Nous répondons à toutes les questions suivantes de manière aléatoire, vous pouvez simplement cliquer sur Entrée, en acceptant les options proposées, répondre uniquement à la question « Nom commun (par exemple, VOTRE nom) : » avec le nom du site pour lequel nous créons un certificat, pour exemple www.exemple.com.

Après avoir répondu à toutes les questions, deux nouveaux fichiers devraient apparaître dans le répertoire : server.pem (clé) et server.crt (certificat).

Pour utiliser la clé générée, nous devons connaître le mot de passe que nous avons entré, et Apache nous le demandera lors du chargement, mais pourquoi avons-nous besoin de questions inutiles de la part des démons ? :) Par conséquent, nous supprimons le mot de passe de la clé :

cp server.key( ,.orig) openssl rsa -in server.key.orig -out server.key rm server.key.orig

Copions-les dans /etc/ssl et attribuons les droits de lecture sur le fichier de clé uniquement à l'administrateur :

sudo cp server.pem / etc/ ssl/ certs/ sudo cp server.key / etc/ ssl/ private/ sudo chmod 0600 / etc/ ssl/ private/ server.key

Configuration d'Apache

Vous devez d'abord activer mod_ssl :

sudo a2enmod ssl

Et puis activez les paramètres HTTPS par défaut du site :

sudo a2ensite par défaut-ssl

Vous devez maintenant modifier le fichier avec les paramètres du site HTTPS par défaut, en y indiquant les chemins d'accès à vos certificats. Le fichier lui-même s'appelle /etc/apache2/sites-enabled/default-ssl (ou /etc/apache2/sites-enabled/default-ssl.conf).

Moteur SSL activé

ajouter une ligne

SSLProtocole tout -SSLv2

pour désactiver l'utilisation de l'ancien protocole SSLv2.

# Certificat public du serveur SSLCertificateFile /etc/ssl/certs/server.pem # Clé privée du serveur SSLCertificateKeyFile /etc/ssl/private/server.key

Maintenant, redémarrez Apache :

sudo service apache2 redémarrage

Et si tous les paramètres sont correctement précisés, vos sites deviendront accessibles via HTTPS.

Le protocole HTTPS fonctionne sur le port 443, donc si le serveur est situé derrière une passerelle, vous devez lui rediriger ce port.

Redirection des requêtes HTTP vers HTTPS

Si vous souhaitez désactiver l'utilisation de HTTP, la chose la plus judicieuse à faire est de rediriger toutes les requêtes HTTP vers les pages vers leur adresse HTTPS. Faisons cela en utilisant mod_alias. S'il n'est pas activé, activez-le :

sudo a2enmod alias sudo service apache2 redémarrage

Ensuite, nous modifions le fichier /etc/apache2/sites-enabled/000-default, qui est responsable de l'hôte virtuel par défaut pour les requêtes HTTP. Ajouter une directive à ce fichier

Redirection / https://example.com/

Dans ce cas, tous les paramètres du répertoire peuvent être supprimés, puisque vos sites ne seront toujours pas accessibles via HTTP.

Voilà, redémarrez maintenant Apache et assurez-vous que lorsque vous accédez via HTTP, vous êtes automatiquement redirigé vers la page HTTPS.

Apache est un serveur Web.

Fichiers de configuration

Par défaut, tous les fichiers de configuration sont stockés dans le dossier "conf".

httpd.conf est fichier de configuration principal serveur apache. Les modifications apportées à ce fichier nécessitent un redémarrage du serveur Apache pour prendre effet.

Dans le dossier "extra" (à l'intérieur du dossier "conf") se trouvent fichiers de configuration supplémentaires. Si nécessaire, ils peuvent être connectés dans le fichier de configuration principal.

Syntaxe des fichiers de configuration

Il ne devrait y avoir qu'une seule directive sur une seule ligne. Le caractère \ (barre oblique inverse) peut être utilisé comme dernier caractère d'une ligne pour indiquer que la directive continue sur la ligne suivante. Il ne doit y avoir aucun autre caractère d'espacement après le caractère \ à l'exception du caractère de fin de ligne.

La directive et ses arguments sont séparés par un espace. Les arguments eux-mêmes sont également séparés par des espaces. Si l'argument contient des espaces, il doit être placé entre guillemets.

Les directives ne sont pas sensibles à la casse, mais les arguments, au contraire, le sont.

Une ligne commençant par un caractère # (dièse) est considérée comme un commentaire et est ignorée. Un commentaire ne peut pas être placé sur la même ligne qu'une directive.

Les caractères d'espacement insérés avant la directive sont ignorés, ils peuvent donc être utilisés pour insérer des retraits afin de rendre le code plus facile à lire. Les lignes vides sont également ignorées.

Modules

Un module est simplement un fichier plug-in qui vous permet d'ajouter des fonctionnalités supplémentaires. Tous les plugins se trouvent par défaut dans le dossier "modules".

Les modules vous permettent d'utiliser des directives qui ne sont pas incluses dans le noyau du serveur Web Apache.

.htaccess

Htaccess est un fichier de configuration supplémentaire pour le serveur Web Apache, ainsi que pour les serveurs similaires. Il vous permet de configurer des fonctionnalités pour des répertoires individuels, sans modifier le fichier de configuration principal, puisque l'accès à celui-ci est le plus souvent interdit.

Le fichier .htaccess affecte uniquement le répertoire dans lequel il se trouve et ses répertoires enfants. Le fichier .htaccess peut être placé dans n'importe quel répertoire. Les directives de ce fichier affectent tous les fichiers du répertoire courant et tous ses sous-répertoires (sauf si ces directives sont remplacées par les directives des fichiers .htaccess sous-jacents).

Les modifications apportées au fichier .htaccess ne nécessitent pas de redémarrage du serveur.

Si une erreur a été commise dans le fichier .htaccess, par exemple, une directive ou la valeur d'une directive a été écrite de manière incorrecte, le serveur renverra une erreur : Erreur 500.

Le fichier .htaccess utilise la même syntaxe que les fichiers de configuration Apache.

Vous pouvez voir quelles directives peuvent être situées à l'intérieur du fichier .htaccess dans le répertoire des directives dans le « Contexte » d'une directive spécifique.



Avez-vous aimé l'article? Partagez-le