So konfigurieren Sie Apache (sites-available vs httpd.conf)

27

Ich habe versucht, ein paar grundlegende Tutorials zu befolgen, die erklären, wie man Apache zum Laufen bringt (auf Ubuntu, auf Amazon). Ich bin meistens leer ausgegangen, weil ich in allen Tutorials aufgefordert wurde, httpd.conf zu konfigurieren (um DocumentRoot usw. hinzuzufügen).

Ich bin jetzt über ein Tutorial gestolpert, in dem ich aufgefordert wurde, Site-Konfigurationen zum für Sites verfügbaren Verzeichnis (unter / etc / apache) hinzuzufügen und von Sites aus einen Symlink zu diesem Verzeichnis zu erstellen. Die Konfiguration auf diese Weise scheint zu funktionieren.

Aber jetzt bin ich verwirrt - wie soll ich Apache konfigurieren? Die meisten Tutorials scheinen immer noch zu sagen, dass ich httpd.conf verwenden sollte. Welches sollte ich verwenden? Was ist der Unterschied? Warum sind alle Tutorials "falsch" (wenn sie sind)?

Edan Maor
quelle

Antworten:

35

Die sites-availableMethode wird allgemein als "Debian-Methode" bezeichnet:

  • "main" Konfiguration in /etc/apache2/apache2.conf
  • "user" config in /etc/apache2/httpd.conf
  • vhosts in /etc/apache2/sites-availableDateien (normalerweise einer pro Datei)
    • Sie können sie nummerieren, z. B. 00-domain.com, 01-otherdomain.com
  • Häfen ( ListenDirektiven) in/etc/apache2/ports.conf
  • Mods in /etc/apache2/mods-available

Sie können diese mit Symlinks oder mit den folgenden a2Befehlen bearbeiten:

a2ensite/a2dissite <site_config_filename>
a2enmod/a2dismod <module_name>

Je nach persönlicher Vorliebe können Sie Apache neu starten , verwenden apachectl, /etc/init.d/apache2 (start|stop|reload|restart)oderservice apache2 (start|stop|reload|restart)

Ein Beispiel, das Sie httpd.confanstelle eines vhost-Eintrags verwenden würden, wäre beispielsweise eine globale Umleitungs- oder Umschreibungsregel. Andere Leckerbissen - im Allgemeinen sollten apache2.confSie nichts tun und sicherstellen, dass Sie ein konsistentes Benennungsschema für vhosts im sites-availableVerzeichnis einrichten .

Sam Halicke
quelle
Tolle Zusammenfassung! Viel klarer und prägnanter als der, an dem ich gearbeitet habe. +1.
Steven Montag
2
Die verfügbaren Standorte ermöglichen eine gute Modularisierung der Konfiguration. Sie können sich auf einfache Weise auf die Konfiguration eines einzelnen Standorts konzentrieren. Dies erleichtert auch das Vergleichen von Sites auf einem Server oder das Verschieben oder Replizieren einer Site zwischen Servern.
BillThor
+1. Wenn Sie diese Konfigurationen pflegen müssen, wechseln Sie zu "Sites aktiviert" anstelle von "Sites verfügbar" und greifen Sie direkt von dort auf sie zu. Auf diese Weise können Sie immer die aktuell verwendeten Standortkonfigurationen ermitteln und auf diese zugreifen.
Ross
9

Der Speicherort und die Organisation der Konfigurationsdateien sind konfigurierbar und können zwischen Hauptversionen oder Distributionen wechseln.

Das Apache Wiki bietet eine praktische Anleitung zu den Namen und Speicherorten der Konfigurationsdateien.

Da die Konfigurationsdateien includeAnweisungen enthalten können , können Teile der Konfiguration in kleinere Dateien aufgeteilt werden. Da eine Apache-Standardkonfigurationsdatei viele Kommentare und viele Standardelemente enthält, ist es sinnvoll, die Teile, die Sie am wahrscheinlichsten ändern, herauszusuchen.

Der Name der Hauptkonfigurationsdatei kann zum Zeitpunkt der Kompilierung geändert werden und wurde in den letzten Versionen von httpd.confnach geändertapache2.conf

Im Laufe der Jahre hat sich auch die Organisation der enthaltenen Konfigurationsdateien weiterentwickelt.

Zum Beispiel habe ich Apache2 auf einem Ubuntu-basierten System installiert. apt-get install apache2Hier sind die enthaltenen Dateien

/etc/apache2$ ls
apache2.conf  envvars     mods-available  ports.conf       sites-enabled
conf.d        httpd.conf  mods-enabled    sites-available

/etc/apache2$ grep ^Include apache2.conf
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/ 

/etc/apache2$ ls -l sites-enabled
total 0
lrwxrwxrwx 1 root root 26 Dec 26 12:30 000-default -> ../sites-available/default

Die wenigen Konfigurationseinstellungen, an denen Sie wahrscheinlich am meisten interessiert sind, sind jetzt in /etc/apache2/sites-available/default.

Ich kann sehen, dass dies mit der Ubuntu- Dokumentation für Apache übereinstimmt. Ich empfehle, sie zuerst zu lesen. Wenn Sie eine andere Dokumentation für ältere Versionen von Apache (oder andere Distributionen) haben, können Sie diese Informationen an die Art und Weise anpassen, wie die Dinge in Ubuntu organisiert sind.

RedGrittyBrick
quelle
-2

Der Apache unter Linux kann auf zwei Arten installiert werden. eine ist per apt-get und andere per tar-datei herunterladen und extrahieren .... Somit werden in apt-get prozess sites aus dem / etc / apache2 / sites-enabled-ordner ausgeliefert, da jede site, die der außenwelt dient, in diesem ordner per konfiguriert wird Beispiel für CONF-Dateien 000-default.conf ist eine Standardwebsite, auf der Apache-Funktionen angezeigt werden.

Auf diese Weise wird eine beliebige .conf-Datei in sites-enabled erstellt und an den Speicherort des Inhalts weitergeleitet. Diese Site wird bedient.

Um eine neue statische Site hinzuzufügen, muss eine neue .conf-Datei in einem sites-fähigen Ordner mit dem Namen example.conf erstellt werden. und muss die folgenden Zeilen hinzufügen

ServerAdmin webmaster @ localhost DocumentRoot / var / www / html Fehlerprotokoll $ {APACHE_LOG_DIR} /error.log Benutzerdefiniertes Protokoll $ {APACHE_LOG_DIR} /access.log kombiniert

Wo als, *: 80 bedeutet "weltoffen über Port 80" DocumentRoot / var / www / html bedeutet "Pfad des Site-Inhalts"

Basutkar. Karthik
quelle
Das ist falsch und irreführend. Sie erstellen Ihre Dateien in sites-available, damit die (empfohlenen) Tools wie a2ensite funktionieren können. Normalerweise verknüpfen Sie diese Conf-Dateien mit a2ensite in sites-enabled. apt-get hat überhaupt nichts mit der Konfiguration Ihrer Sites zu tun.
HörmannHH