ubuntuusers.de

apache2.conf vs. httpd.conf - wo ist der Unterschied?

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

dersven

Anmeldungsdatum:
16. August 2005

Beiträge: 792

Wohnort: Kreuzlingen, Schweiz

Hallo!

Ich habe gerade htaccess bei mir aktiviert. Beim lesen bin ich des öfteren auf die beiden Dateien "apache2.conf" und "httpd.conf" gestossen. Die Freischlatung von "Override" habe ich nun in "apache2.conf", da httpd.conf leer war. Allerdings wird auch sie eingelesen. NaJa, wenn beide auch in späteren Versionen eingelesen werden, dann würde ich all meine Änderungen in die httpd.conf schreiben, um zu sehen was ich selbst geändert habe.

Was gibt es für einen unterschied zwischen den Dateien?

Eine Allgemeine htaccess-Frage noch: Ich habe gelesen, dass es normal nicht so toll ist, wenn man das erlaubt,... aus welchem Grund? Was für gefahren können sich daraus ergeben. Ich meine, ich lege es doch auf einen Ordner fest (mit <Directory>),...

Grüße und Danke,...

comm_a_nder

Avatar von comm_a_nder

Anmeldungsdatum:
5. Februar 2006

Beiträge: 2533

Wohnort: Dresden

Der Unterschied ist der Name. Bei anderen Distributionen wird afaik auch weiterhin die httpd.conf genutzt. Bei Debian und Abkömmlingen halt apache2.conf sowie die Dateien in conf.d Namen sind Schall und Rauch ...

melc

Anmeldungsdatum:
28. Dezember 2008

Beiträge: 181

Wohnort: Karlsruhe

dersven schrieb:

Ich habe gerade htaccess bei mir aktiviert. Beim lesen bin ich des öfteren auf die beiden Dateien "apache2.conf" und "httpd.conf" gestossen. Die Freischlatung von "Override" habe ich nun in "apache2.conf", da httpd.conf leer war.

Die Dateinamen spielen grundsätzlich keine Rolle.

Bei einer Ubuntu-Standardinstallation liest Apache nur eine einzige Konfigurationsdatei: /etc/apache2/apache2.conf. Wenn du dir die Datei einmal anschaust, siehst du darin mehrere Include-Anweisungen:

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/

Die Datei bindet weitere Konfigurationsdateien ein, darunter auch /etc/apache2/httpd.conf. Das lässt sich aber natürlich auch ändern, falls du zB lieber eine Datei namens foo.bar haben möchtest.

Allerdings wird auch sie eingelesen. NaJa, wenn beide auch in späteren Versionen eingelesen werden, dann würde ich all meine Änderungen in die httpd.conf schreiben, um zu sehen was ich selbst geändert habe.

Was sinnvollerweise wo eingetragen werden sollte, um Ordnung zu halten, steht in /usr/share/doc/apache2.2-common/README.Debian.gz

Eine Allgemeine htaccess-Frage noch: Ich habe gelesen, dass es normal nicht so toll ist, wenn man das erlaubt,... aus welchem Grund? Was für gefahren können sich daraus ergeben. Ich meine, ich lege es doch auf einen Ordner fest (mit <Directory>),...

Der Zweck von htaccess-Dateien besteht darin, Nutzern ohne Superuser-Rechte die Möglichkeit zu geben die Einstellungen des Webservers für bestimmte Verzeichnisse zu ändern. Beispiel: Stellt man anderen auf einem Server Webspace zur Verfügung, sollten diese natürlich nicht die Konfigurationsdateien des Apache verändern können. Um ihnen trotzdem zu erlauben Einstellungen zu ändern, kann man in den Konfigurationsdateien bestimmte Befehle für die Verwendung in htaccess-Dateien freischalten. Dies sollte man jedoch nur soweit nötig tun, denn erstens kostet es Zeit, wenn Apache vor jedem Zugriff erst die Verzeichnisse nach htaccess-Dateien durchsuchen muss, und zweitens gibt man damit einen Teil der Kontrolle über den Webserver an Dritte ab.

otzenpunk Team-Icon

Avatar von otzenpunk

Anmeldungsdatum:
17. Oktober 2005

Beiträge: 8691

Wohnort: Hamburg-Altona

Vor allem kostet htaccess u.U. sogar ziemlich viel Zeit, weil nicht nur das aktuelle Verzeichnis, sondern alle bis hinauf zum DocumentRoot durchsucht werden müssen. Grundsätzlich gilt: Alles was du in eine .htaccess-Datei schreiben möchtest, kannst du auch in einen <directory>-Block schreiben. .htaccess brauchst du wirklich nur dann, wenn du Shared Hosting betreibst.

Die apache2.conf sollte man auf einem Debian/Ubuntu-System übrigens nach Möglichkeit nicht anfassen, da es sonst beim Update zu nervigen Konflikten kommt. Die lokale Konfiguration wird in Dateien unter /etc/apache2/sites-available durchgeführt, die dann via a2ensite aktiviert werden.

Die httpd.conf ist nur noch aus historischen Gründen vorhanden, vielleicht falls irgendwelche Installationsskripte da was reinschreiben, und sollte ebenfalls nicht verwendet werden.

ingo2

Avatar von ingo2

Anmeldungsdatum:
15. Juni 2007

Beiträge: 2145

Wohnort: wo der gute Riesling wächst

Ich stehe hier vor der gleichen Frage bezüglich httpd.conf.

Habe sie bis jetzt für meine <Directory> Einträge genutzt. Und wenn man sich die apache2.conf anschaut:

/etc/apache2# cat apache2.conf | grep Include
# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
# Include all the user configurations:
Include /etc/apache2/httpd.conf
# Include ports listing
Include /etc/apache2/ports.conf

ist die httpd.conf für user configurations vorgesehen ??? (Apache 2.2.9)

Viele Grüße, Ingo

Antworten |