Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Die Konfiguration des Apache-Dienstes wird ausführlich erklärt

Die Konfiguration des Apache-Dienstes wird ausführlich erklärt

王林
王林nach vorne
2019-08-23 13:52:382922Durchsuche

Apahce-Konfigurationsanweisungen können in zwei Teile unterteilt werden: Kernanweisungen und Anweisungen von Drittanbietern. In Apache entspricht jede Anweisung einem Modul, und unter allen Modulen sind die Module core_module, so_module, http_module und mpm die wichtigsten. Mit Ausnahme von so_moudle können andere Module nicht ausgeschaltet oder deaktiviert werden.

Eins: httpd.conf

(1) Hauptserverteil

1, ServerName: Definieren Sie den Apache-Standard-Hostnamen. Es handelt sich um einen Domänennamen oder IP-Adresse

2. ServerRoot: wird verwendet, um das Verzeichnis zu definieren, in dem sich der Server befindet. Dieser Pfad wird normalerweise durch --prefix während der Konfiguration angegeben.

3 Das Stammverzeichnis des Seitendienstes muss ein absoluter Pfad und kein relativer Pfad sein. Wenn Leerzeichen vorhanden sind, muss er in Anführungszeichen gesetzt werden.

4 an den Administrator nach einem Serverfehler

5, ServerAlias ​​​​und Alias: werden alle zum Zuordnen von Verzeichnissen verwendet, aber ServerAlias ​​​​identifiziert das zugeordnete Verzeichnis als CGI-Skriptverzeichnis und behandelt alle Dateien in diesem Verzeichnis als CGI Skripte. Aber Alias ​​​​wird nur einem normalen Verzeichnis zugeordnet

6, Benutzer und Gruppe: wird verwendet, um den Benutzer und die Benutzergruppe zu definieren, die zum Ausführen des Apache-Unterprozesses verwendet werden

7, Listen: wird verwendet um die lauschende Apache-Portnummer zu definieren

8. LoadModule-Befehl: Wird zum Laden von Modulen oder Zieldateien verwendet. LoadModule cgi_modules/mod_cgi.so_module

9. ErrorDocument: Benutzerdefinierte Fehlerseiteninformationen ErrorDocument 500 „unbekannt“. Fehler" ErrorDocument 404 "/var/server/www/cgi-bin/missing_404.pl" ErrorDocument 402 http://www.nicky.com/error_402.html

10. Optionen: Bestimmen Sie, welche Verzeichnisse verwendet werden sollen Diese Funktionen lauten wie folgt:

Keine: Der Optionsbefehl funktioniert nicht

ExecCGI: Ermöglicht die Ausführung von CGI-Skripten im aktuellen Verzeichnis

Beinhaltet: Ermöglicht die Verwendung von SSI-Funktionen

Enthält NOEXEC: Die SSI-Funktion ist zulässig, aber die Funktionen exec cgi und exec cmd sind deaktiviert

Indizes: Die Indizierungsfunktion ist beispielsweise aktiviert, wenn eine Anfrage an die Verzeichnis URLz verfügt nicht über eine durch die DirectoryIndex-Direktive angegebene Indexdatei. Der Server gibt automatisch eine Liste der angeforderten Verzeichnisinhalte zurück.

FollowSymLinks: Ermöglicht die Verwendung symbolischer Links in der aktuellen Umgebung, wird jedoch in der ignoriert Standortcontainer

Alle: Alle Funktionen außer MultiViews verwenden, auch Optionen. Die Standardparameter

MultiViews: werden zum Starten der Multi-View-Funktion verwendet, die vom Modul mod_negotiations bereitgestellt wird

11, ServerTokens: OS/Major/Full wirkt sich auf den Detaillierungsgrad der Fehlerfußinformationen aus und wird im Allgemeinen nicht empfohlen

(2) Containerteil
1, Der Container wirkt auf das Modul. Er bestimmt zunächst, ob das Modul geladen ist, und entscheidet dann, ob es verarbeitet werden soll. Das heißt, die Anweisungen im Container werden nur dann ausgeführt, wenn dies der Fall ist ist falsch, alle werden ignoriert. Sie können Modulname> um festzustellen, ob das Modul geladen ist

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


If Führen Sie beim Laden <IfModule !mpm_netware_module><br>    DirctoryIndex index.html <br></IfModule><IfModule! aus! mpm_netware_module><br> DirctoryIndex index.html

Ausführen, wenn nicht geladen

2 Container: Kapselt, wenn eine Reihe von Bedingungen wahr ist Der einzige wirksame Befehl ist für Serverkonfiguration, virtuellen Host, Verzeichnis, .htaccess. Der Unterschied zu IfModule besteht darin, dass er basierend darauf beurteilt wird, ob das Modul geladen ist, IfDefine jedoch basierend auf den Bedingungen

basierend auf <IfDefine Proxy>

LoadModule proxy_module modules/libproxy.so

</IfDefine>

3 Lassen Sie die gekapselte Direktive in ihrem angegebenen Verzeichnis oder Unterverzeichnis arbeiten. Dieses Verzeichnis muss ein vollständiger Pfad sein. Natürlich können Sie auch das Platzhalterzeichen * verwenden. Übereinstimmendes Verzeichnis. Erwägen Sie auch die Verwendung von [], um den Zeichenbereich zu bestimmen. Unabhängig vom Typ kann es jedoch nicht mit /

<Directory /var/apache/html>

    Order Deny,Allow

übereinstimmen Deny from all

</Directory>

Das obige Beispiel deaktiviert den Zugriff auf das Verzeichnis /var/Apache/html. Jede Anfrage an /var/Apache/html wird abgelehnt.

Wenn Sie möchten, dass das Verzeichnis reguläre Ausdrücke verwendet, müssen Sie ein ~

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

    Order Deny,Allow

Allow from all

</Directory>

DirectoryMatch: Ähnlich wie Directory, außer dass es reguläre Übereinstimmungen direkt akzeptieren kann, ohne ein ~-Symbol hinzuzufügen

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

    Order Deny,Allow

Allow from all

</DirectoryMatch>

4 und
Dateien: funktioniert nur bei Dateien. Sie können auch Platzhalter und [] und ~ vor dem regulären Ausdruck verwenden, um reguläre Ausdrücke zu verwenden
&lt ;Dateien „^.css“><code><Files "^.css"><br>    Order Deny,Allow<br>Allow from All<br></Files>Reihenfolge verweigern, zulassen

Zulassen von allen


<FilesMatch ".(gif|jpe?g|png)$"><br>Order Deny,Allow<br>Allow from All<br></FilesMatch>FilesMatch: Dateien ohne Hinzufügen eines ~-Symbols

<FilesMatch ".(gif|jpe?g|png)$"><p>Reihenfolge verweigern, zulassen<br>Von allen zulassen<span style="font-family: monospace;"></FilesMatch></span></p>
5 und : Führen Sie einfach eine Zugriffskontrolle für die URL durch
Zulassen, ablehnen
Von allen ablehnen

</Location>

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

Wenn die URL mit cgi beginnt, wird sie abgelehnt

Außerdem Sie können URL-Anfragen dem Apache-Modul-Handler zuordnen, beispielsweise mithilfe des Moduls mod_status:

<Location /server-status><p>SetHandler server-status<strong></Location></strong><br>Wenn Sie die obige Konfiguration verwenden. Wenn dann auf /server-status zugegriffen wird, übergibt Apache die Verbindung an das mod_status-Modul zur Verarbeitung und gibt eine Apache-Server-Laufstatusseite zurück </p> <p><code><Location /var/apache/html>Containerverarbeitungsauftragsproblem

:

Apache wird Behandeln Sie es zuerst Der Directory-Container (jedoch nicht Directory und .htaccess mit regulären Ausdrücken), verarbeitet dann die Files- und FilesMatch-Container und dann die Location- und LocationMatch-Container     Order deny,allow

    Allow from All

</Location>

<Direcotry /var/apache/html>

     Order allow,deny

Allow from All

Deny from www.jons.com

</Direcotry>

Da Apache im obigen Beispiel den Container zuerst verarbeitet, überschreibt der zuletzt verarbeitete Container Konfiguration, sodass Benutzer auf www.json.com zugreifen können. Wenn die Container gleich sind, werden sie in der Reihenfolge des Wörterbuchs von kurz nach lang verarbeitet. Weitere verwandte Fragen finden Sie auf der chinesischen PHP-Website: Linux-Video-Tutorial

Das obige ist der detaillierte Inhalt vonDie Konfiguration des Apache-Dienstes wird ausführlich erklärt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen