Haftpflicht Blogger
Virtual Server von Host Europe

Apache Konfigurationsdatei httpd.conf unter Ubuntu 8.04 LTS

| 16. November 2009 | 4 Kommentare

Die Linux-Distribution Ubuntu basiert auf Debian und dort geht man einen etwas anderen Weg, wenn es darum geht, den Webserver Apache zu konfigurieren.

Problem: httpd.conf  ist leer

Der Webserver Apache besitzt eine Hauptkonfigurationsdatei httpd.conf, von der aus dann auch weitere Konfigurationsdateien eingebunden werden.
Als langjähriger Apache Anwender, aber Ubuntu-Novice wird einem unmittelbar auffallen, dass die Konfigurationsdatei httpd.conf unter /etc/apache2 leider Null Bytes groß ist, also bei der Installation „fehlerhaft“ installiert wurde.

Lösung
Um es kurz zu machen. Das Betriebssystem Debian und damit Ubuntu gehen hier einen anderen Weg. Die Datei httpd.conf wird wohl aus Kompatibilitätsgründen mitgeführt. Die Apache-Konfigurationsdatei nach einer Ubuntu Installation ist aber
/etc/apache2/apache2.conf.

Von apache2.conf aus werden dann wie gewohnt weitere Konfigurationsdateien eingebunden.

Es bleibt: Die Frage nach dem Warum?
Warum man von einem Standard (httpd.conf als Konfigurationsdatei bei Apache) abweicht, ist mir wirklich unverständlich.  Wenn jemand hierfür einen plausiblen Grund nennen kann, dann bitte einen Kommentar hinterlegen.

Weitere Blog-Artikel zu diesem Themenkomplex:

Stichworte: ,

Kategorie: Server

Kommentare (4)

Trackback-URL | Kommentarfeed

  1. Manfred Roos robo47 sagt:

    Weil man bei einer Linux-Distribution vielleicht das große ganze sehen muss ? Man will ja ein einheitliches Layout für die ganzen Konfigurations-Dateien am besten von allen Programmen und bei debian-basierten Distributionen ist das /etc/$appname$/$appname$.conf .

    Wenn man dem Kommentar unten in der apache2.conf vertrauen kann zum Include der Datei (die httpd.conf wird auch genutzt)

    # Include all the user configurations:
    Include /etc/apache2/httpd.conf

    Dann ist die httpd.conf wohl für alle Änderungen die man machen will, was ja auch Sinn macht, weil z.b. bei einem Update von Apache, die apache2.conf irgendwann ja Änderungen haben könnte und man dann beim update jedes mal chauen muss was sich geändert hat und was man beibehalten will.
    Macht man jedoch alle seine Änderungen in der httpd.conf, kann man einfach sagen „beibehalten“ und weis dass dort nur eigene Änderungen drin sind.

    • Manfred Roos Manfred sagt:

      Hallo Benjamin,

      1.) Es tut mir leid, aber man kann ja im Debian-Apache-Package einen Symbolic Link von /etc/$appname$/$appname$.conf auf die httpd.conf machen.

      Das ist ein simpler Einzeiler und schon wäre man Debian konform, was die Konfigurationsdatei betrifft. Seinen „eigenen“ Standard auf Kosten des anderen Programms durchzusetzen, ist ein schlechter Programmierstil.

      2.) Auch Dein Argument von wegen die apache2.conf enthält die Masterkonfiguration und die httpd.conf dann die individuellen Einstellungen, so dass bei einem Update diese nicht überschrieben werden, zieht nicht.
      Diese Konzept wird doch von Apache schon praktiziert. Die httpd.conf Datei ist die Masterdatei, die man nicht verändert und die individuellen .conf Dateien werden includiert. Also auch diese Idee ist nichts neues, sondern nur bei Apache geklaut. Werden für die Debian-Installation abweichende Direktiven benötigt, so hätte man die einfach in einer eigenen *.conf Datei auslagern können.

      3.) Standards wie beim Webserver Apache, der millionenfach eingesetzt wird, sind dazu da, eingehalten zu werden. Natürlich gilt es, das Große und Ganze zu sehen, aber doch bitte nicht mit Scheuklappen für eine Distribution, sondern unter Berücksichtigung fremder Programmkonventionen.
      Würden die Debian Leute nicht ihr eigenes Süppchen kochen, könnte man viel leichter mal schnell den Apache Webserver gegen die neueste Version updaten, ohne auf ein neues Debian-Package warten zu müssen.

      Die derzeitige Art und Weise ist ein Hemmschuh und wäre mit einem Symbolic Link und/bzw. Auslagerung der speziellen Direktiven in eine eigene Konfigurationsdatei nicht notwendig.

      Es grüßt Dich
      Manfred

  2. Manfred Roos robo47 sagt:

    Gentoo kocht das Süppchen meines wissens nach auch so und nach noch etwas Googlen kam noch dazu dass die Aufteilung in kleinere einzelne Configs wohl gewollt ist.
    Ausserdem ist das ja nicht nur so bei Apache, die Configs von Exim zum beispiel sind bei Debian auch weiter aufgeteilt, bei PHP liegen unter /etc/php5/conf.d/ auch configs für JEDE extension.

    • Manfred Roos Manfred sagt:

      Hallo Benjamin,

      die Modularisierung von Programmcode, aber auch von Konfigurationsdateien ist eine Best Practice und wird von mir geschätzt. Die Codequalität eines Programms läßt sich dadurch enorm steigern und der Zeitbedarf bei einer Fehlersuche und der Wartungsaufwand bei der Weiterentwicklungen verringert sich. Das Ganze kann man bis zum Extrem treiben, dass es für jede PHP-Extension eine eigene Datei gibt (dein ergoogeltes Ergebnis).

      Aber das hatte ich ja auch gar nicht in Frage gestellt.

      Mein Kritikpunkt am augenblicklichen Ubuntu-Apache-Paket ist, dass man die Standard-Namensgebung der Apache-Konfigurationsdateien ändert. Da wird „httpd.conf“ zu „apache2.conf“ und die Konfigurationsdatei „listen.conf“ wird nun zu „ports.conf“. Durch solche Namensumbenennungen hat sich die Codequalität um keinen Deut verbessert, es wird nur Verwirrung gestiftet.

      Man könnte – meines Erachtens – durchaus ein Ubuntu-Package von Apache zusammenstellen, welches die Standards von Apache akzeptiert/unverändert läßt und gleichzeitig alle Konventionen die man von Ubuntu (Debian) kennt und schätzen gelernt hat, berücksichtigt.

      Mit freundlichen Grüßen
      Manfred

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.