Maison  >  Article  >  Opération et maintenance  >  Configuration du service Apache expliquée en détail

Configuration du service Apache expliquée en détail

王林
王林avant
2019-08-23 13:52:382988parcourir

Les instructions de configuration d'Apahce peuvent être divisées en deux parties : les instructions de base et les instructions fournies par des tiers. Dans Apache, chaque instruction correspond à un module, et parmi tous les modules, les plus importants sont les modules core_module, so_module, http_module et mpm À l'exception de so_moudle, les autres modules ne peuvent pas être désactivés ou désactivés.

Un : httpd.conf

(1) Partie du serveur principal

1, ServerName : définissez le nom d'hôte par défaut d'Apache, vous pouvez C'est un nom de domaine ou adresse IP

2. ServerRoot : utilisé pour définir le répertoire où se trouve le serveur. Ce chemin est généralement spécifié par --prefix lors de la configuration

3. le répertoire racine du service de page. Ce chemin doit être un chemin absolu plutôt que relatif. S'il y a des espaces, il doit être mis entre guillemets

4. à l'administrateur après une erreur de serveur

5, ServerAlias ​​​​et Alias : sont tous utilisés pour mapper des répertoires, mais ServerAlias ​​​​identifie le répertoire mappé comme un répertoire de script CGI et traite tous les fichiers de ce répertoire comme CGI scripts. Mais l'alias est simplement mappé à un répertoire normal

6, Utilisateur et groupe : utilisé pour définir l'utilisateur et le groupe d'utilisateurs utilisés pour exécuter le sous-processus Apache

7, Écouter : utilisé pour définir le numéro de port Apache d'écoute

8. Commande LoadModule : utilisée pour charger des modules ou des fichiers cibles LoadModule cgi_module modules/mod_cgi.so_module

9. ErrorDocument : informations sur la page d'erreur personnalisée ErrorDocument 500 "inconnu. error" ErrorDocument 404 "/var/server/www/cgi-bin/missing_404.pl" ErrorDocument 402 http://www.nicky.com/error_402.html

10. options : Déterminer les répertoires à utiliser ces fonctionnalités, ces fonctionnalités sont les suivantes :

Aucun : La commande option ne fonctionnera pas

ExecCGI : Permet l'exécution de scripts CGI dans le répertoire courant

Inclut : Permet le utilisation des fonctions SSI

InclutNOEXEC : La fonction SSI est autorisée, mais les fonctions exec cgi et exec cmd sont désactivées

Index : La fonction d'indexation est activée par exemple, si une requête au. L'URL du répertoire n'a pas de fichier d'index spécifié par la directive DirectoryIndex, le serveur renverra automatiquement une liste du contenu du répertoire demandé

FollowSymLinks : autorise l'utilisation de liens symboliques dans l'environnement actuel, mais sera ignoré dans le Conteneur d'emplacement

Tous : Utiliser toutes les fonctionnalités sauf MultiViews, également les options Les paramètres par défaut

MultiViews : utilisé pour démarrer la fonction multi-vues fournie par le module mod_négociations

11, ServerTokens : OS/Major/Full affecte le niveau de détail des informations du pied de page d'erreur et n'est généralement pas recommandé

(2) Partie conteneur
1, Le conteneur agit sur le module. Il déterminera d'abord si le module est chargé, puis décidera s'il doit le traiter, c'est-à-dire que les instructions contenues dans le conteneur seront exécutées uniquement lorsque le résultat du jugement est vrai. est faux, tout sera ignoré. Vous pouvez utiliser Nom du module> pour déterminer si le module est chargé

<IfModule mpm_netware_module><p> DirectoryIndex index.html <code><IfModule mpm_netware_module><br>    DirctoryIndex index.html <br></IfModule>

If Lors du chargement, exécutez
<IfModule! mpm_netware_module><code><IfModule !mpm_netware_module><br>    DirctoryIndex index.html <br></IfModule> DirctoryIndex index.html

Exécuter s'il n'est pas chargé

2 seule la commande efficace concerne la configuration du serveur, l'hôte virtuel, le répertoire, .htaccess. La différence avec IfModule est qu'elle est jugée en fonction du chargement du module, mais IfDefine est jugée en fonction des conditions

basées sur

<IfDefine Proxy>

LoadModule proxy_module modules/libproxy.so

</IfDefine>

3 Laissez-le La directive encapsulée fonctionne dans son répertoire spécifié ou son sous-répertoire. Ce répertoire doit être un chemin complet. Bien entendu, vous pouvez également utiliser le caractère générique *? Répertoires correspondants, pensez également à utiliser [] pour déterminer la plage de caractères, mais quel que soit le type, il ne peut pas correspondre à /

<Directory /var/apache/html>

    Order Deny,Allow

Deny from all

</Directory>L'exemple ci-dessus désactive l'accès au répertoire /var/apache/html. Toute requête vers /var/apache/html sera rejetée

Si vous souhaitez que le répertoire utilise des expressions régulières, vous devez ajouter un ~

<Directory ~ "^/var/apache[0-9]{2}/html">

    Order Deny,Allow

Allow from all

</Directory>DirectoryMatch : similaire à Directory, sauf qu'il peut directement accepter la correspondance régulière sans ajouter de symbole ~

<DirectoryMatch "^/var/apache[0-9]{2}/html">

    Order Deny,Allow

Allow from all

4 et
Fichiers : ne fonctionne que sur les fichiers. Vous pouvez également utiliser des caractères génériques et [] et ~ devant l'expression régulière pour utiliser des expressions régulières
&lt. ; Fichiers "^.css"><code><Files "^.css"><br>    Order Deny,Allow<br>Allow from All<br></Files> Ordre refusé, Autoriser

Autoriser de tous


<FilesMatch ".(gif|jpe?g|png)$"><br>Order Deny,Allow<br>Allow from All<br></FilesMatch>FilesMatch : Fichiers sans ajouter de symbole ~

<FilesMatch ".(gif|jpe?g|png)$"><p>Ordre refusé, autoriser<br>Autoriser de tous<span style="font-family: monospace;"></FilesMatch></span></p>
5 et  : effectuez simplement le contrôle d'accès sur l'URL
Order Allow,Deny
Refuser de tous

</Location>

<Location /server-status><br>SetHandler server-status<br></Location>

Si l'URL commence par cgi, elle sera rejetée

De plus , vous pouvez mapper les requêtes URL au gestionnaire de module Apache, par exemple, à l'aide du module mod_status :

<Location /server-status><p>SetHandler server-status<strong></Location> </strong></p>
Si vous utilisez la configuration ci-dessus. Ensuite, lors de l'accès à /server-status, Apache transmettra la connexion au module mod_status pour le traitement et renverra une page d'état d'exécution du serveur Apache

<Location /var/apache/html>Problème de commande de traitement des conteneurs

 :

Apache le fera gérez-le d'abord. Le conteneur Directory (mais pas Directory et .htaccess avec des expressions régulières) traite ensuite les conteneurs Files et FilesMatch, puis les conteneurs Location et LocationMatch     Order deny,allow

    Allow from All

</Location>

<Direcotry /var/apache/html>

     Order allow,deny

Allow from All

Deny from www.jons.com

</Direcotry>

Dans l'exemple ci-dessus, étant donné qu'Apache traitera le conteneur en premier, le conteneur configuration, donc pour www.json.com, les utilisateurs pourront y accéder. Si les conteneurs sont les mêmes, ils seront traités dans l'ordre du dictionnaire du court au long. Pour plus de questions connexes, veuillez visiter le site Web PHP chinois : Tutoriel vidéo Linux

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer