Frage So konfigurieren Sie Apache (Sites-verfügbar vs httpd.conf)


Ich habe versucht, ein paar grundlegende Tutorials zu folgen, die erklären, wie man Apache zum laufen bringt (auf ubuntu, läuft auf Amazon). Ich bin meistens leer, weil alle Tutorials mir gesagt haben, httpd.conf zu konfigurieren (um DocumentRoot hinzuzufügen, etc.).

Ich bin nun über ein Tutorial gestolpert, das mir sagte, dass ich Site-Konfigurationen zum Verzeichnis sites-available (unter / etc / apache) hinzufügen und dann einen symbolischen Link von sites-enabled herstellen sollte. Die Konfiguration dieses Weges 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 benutzen sollte. Welchen sollte ich benutzen? Was ist der Unterschied? Warum sind alle Tutorials "falsch" (wenn sie sind)?


23
2017-12-26 16:45


Ursprung




Antworten:


Das sites-available Methode wird allgemein als "Debian Way" bezeichnet:

  • "Haupt" Konfig in /etc/apache2/apache2.conf
  • "Benutzer" config in /etc/apache2/httpd.conf
  • Vhosts in /etc/apache2/sites-available Dateien (normalerweise eine pro Datei)
    • Vielleicht möchten Sie sie nummerieren, z. 00-domain.com, 01-otherdomain.com
  • Häfen (Listen Richtlinien) /etc/apache2/ports.conf
  • Mods in /etc/apache2/mods-available

Sie können diese mit Symlinks oder mit den a2 Befehlsfolge:

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

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

Ein Beispiel, wo Sie verwenden würden httpd.conf anstelle eines vhost-Eintrags wäre zum Beispiel eine globale Umleitungsregel oder eine Umschreiberegel. Andere Leckerbissen - im Allgemeinen sollten Sie gehen apache2.conf allein, und stellen Sie sicher, dass Sie ein konsistentes Benennungsschema für vhosts in der sites-available Verzeichnis.


29
2017-12-26 17:50



Tolle Zusammenfassung! Viel klarer und prägnanter als der, an dem ich arbeitete. +1. - Steven Monday
Die verfügbaren Sites bieten eine gute Modularisierung der Konfiguration. So können Sie sich ganz einfach auf die Konfiguration einer einzelnen Site konzentrieren. Es vereinfacht außerdem 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, gehen Sie auf "Sites-enabled" anstatt auf "sites-available" und greifen Sie von dort direkt darauf zu. Auf diese Weise können Sie immer die aktuell verwendeten Standortkonfigurationen ermitteln und aufrufen. - Ross


Der Speicherort und die Organisation der Konfigurationsdateien ist konfigurierbar und kann zwischen Hauptversionen oder zwischen Verteilungen wechseln.

Das Apache Wiki hat ein handliches führen zu den Namen und Positionen der Konfigurationsdateien.

Weil die Konfigurationsdateien enthalten können include Direktiven können Teile der Konfiguration in kleinere Dateien aufgeteilt werden. Da eine Standard-Apache-Konfigurationsdatei viele Kommentare und viele Standardelemente enthält, ist es sinnvoll, die Teile, die Sie am wahrscheinlichsten ändern, voneinander zu trennen.

Der Name der Hauptkonfigurationsdatei kann zum Zeitpunkt der Kompilierung und in den letzten Versionen geändert werden httpd.conf zu apache2.conf

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

Zum Beispiel habe ich Apache2 auf einem Ubuntu-basierten System mit installiert apt-get install apache2 - Hier 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 sich wahrscheinlich am meisten interessieren, sind jetzt in /etc/apache2/sites-available/default.

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


9
2017-12-26 17:23





Der Apache in Linux kann von zwei Arten installiert werden. man ist von apt-get und anderen download tar-datei und extrahieren .... Daher werden in apt-get Prozess-Sites aus dem Ordner / etc / apache2 / sites-enabled ausgeführt, da jeder externe Server in diesen Ordnern durch .conf-Dateien konfiguriert wird. Beispiel 000-default.conf ist eine Standard-Site, die Apache anzeigen kann funktioniert.

Also, indem Sie eine .conf-Datei in Sites-enabled erstellen und auf den Speicherort des Inhalts verweisen. So wird die Site bedient.

Um also eine neue statische Site hinzuzufügen, muss eine neue .conf-Datei in einem Site-aktivierten Ordner erstellt werden, in dem das Beispiel example.conf steht. und muss die folgenden Zeilen hinzufügen

    Server Admin Webmaster @ localhost     DocumentRoot / var / www / html     FehlerLog $ {APACHE_LOG_DIR} /error.log     CustomLog $ {APACHE_LOG_DIR} /access.log kombiniert   

Wohingegen , *: 80 bedeutet "offen für die Welt durch Port 80"  DocumentRoot / var / www / html gibt "Pfad des Seiteninhalts" an


-2
2017-11-28 11:40



Das ist falsch und irreführend. Sie erstellen Ihre Dateien in Websites - verfügbar, damit die Tools (empfohlen) wie a2ensite funktionieren können. In der Regel verknüpfen Sie diese conf-Dateien mit a2ensite in sites-enabled. apt-get hat überhaupt nichts mit der Konfiguration Ihrer Seiten zu tun. - RichieHH