Ubuntu Apache: httpd.conf oder apache2.conf?

43

Mit welcher dieser beiden Dateien soll ich Apache konfigurieren?

Das httpd.confist leer, solange apache2.confnicht.

Das verwirrt mich!

ajsie
quelle

Antworten:

46

Die httpd.conf ist für Benutzerkonfigurationen ausgelegt. Sie sollten die apache2.conf wirklich nicht bearbeiten, da sie möglicherweise durch zukünftige Upgrades aktualisiert wird.

Eine zusätzliche Option ist, Ihre benutzerdefinierte Konfiguration einfach in /etc/apache2/conf.d zu platzieren. Alle Dateien in diesem Verzeichnis werden ebenfalls eingeschlossen.

Rob Di Marco
quelle
5
Ich habe keine Datei namens apapche2.conf
Doug Molineux
18

Dies sind nicht Ihre einzigen Optionen. Auf Ubuntu / Debian, Apache verarbeitet auch alle Dateien in /etc/apache2/sites-enabled/(die sollen symbolische Links zu Dateien in seinem sites-available/Verzeichnis, von den verwalteten a2ensiteund a2dissiteProgrammen)

Sie sollen diese Verzeichnisse für VirtualHosts verwenden.

Powerlord
quelle
1
das ist die richtige antwort! und auch die Ports / Mods-verfügbaren Konfigurationsdateien, wenn Sie Ihre Antwort
Sudhi
5

apache2.conf enthält httpd.conf:

a@test$:/etc/apache2$ cat apache2.conf | grep httpd.conf 
Include /etc/apache2/httpd.conf

Ich denke, dass httpd.conf veraltet ist, aber nur für konservative Leute da drin gelassen wird, damit sie sich zurechtfinden ... :)

BEARBEITEN:

Nachdem ich Robs Antwort gelesen hatte, machte ich ein besseres Grep:

a@test:/etc/apache2$ grep -C 1 httpd.conf apache2.conf 
# Include all the user configurations:
Include /etc/apache2/httpd.conf

Benutzerkonfigurationen ist es ...

Alexander T
quelle
6
+1 "httpd.conf ist veraltet"
feeela
1

Die Apache Software Foundation veröffentlicht viele Software-Teile, von denen einer als Webserver bezeichnet wird httpd. Die httpd-Projektquellen enthalten unter anderem eine httpd.confBeispielkonfigurationsdatei, die standardmäßig in /usr/local/etc/httpdoder installiert ist /etc/httpd. Auf den meisten Systemen ist httpd als solches angegeben.

Vor langer Zeit und in weiter Ferne entschied sich jedoch jemand in der Debian GNU / Linux-Distribution, den Namen der Software in dieser Distribution von httpdin zu ändern apache2. Auf einem Debian-System finden Sie daher eine Konfigurationsdatei mit dem Namen apache2.confin einem Verzeichnis mit dem Namen /etc/apache2. Ich weiß nicht, wer das getan hat oder warum, aber es ist eine ständige Verwirrung, die mit dem Aufruf von Windows "Microsoft" oder ESXi "VMware" vergleichbar ist. Auf Debian basierende Distributionen wie Ubuntu erben diese Seltsamkeit. Noch seltsamer ist, dass sie dann eine Datei enthalten /etc/apache2/httpd.conf, Includeaus apache2.confder Benutzer benutzerdefinierte Konfigurationen vornehmen können.

Die Antwort lautet also: Wenn Sie auf einem Debian-basierten System arbeiten, beugen Sie Ihrem Gehirn vor, Dinge so zu tun, wie Debian es möchte. Ansonsten verfahren Sie im Allgemeinen wie im vorgelagerten httpd-Projekt.

Michael Hampton
quelle
1

Apache 2.4

Verwenden Sie:

Platzieren Sie benutzerdefinierte Konfigurationen in /etc/apache2/conf-available/{name}.conf

Aktivieren / Deaktivieren Sie Ihre Konfiguration mit sudo a2enconf {name}oder sudo a2disconf {name}.

(Starten Sie dann den Apache2-Dienst neu.)

Verwenden Sie nicht:

httpd.conf ist veraltet und sollte NICHT mehr angezeigt werden. Wenn Sie dies tun, lassen Sie es leer, wie installiert.

apache2.conf ist immer noch installiert, aber lassen Sie es in Ruhe, wenn Sie Apache sauber / einfach aktualisieren möchten.

-

Alles, was Sie in einer 'globalen' Apache-Konfiguration sehen, kann wie oben beschrieben unter Ihrer benutzerdefinierten Konfiguration hinzugefügt / überschrieben werden.

Weitere Informationen : https://stackoverflow.com/a/11687212/503621

bshea
quelle
0

Wenn apache2.confnicht leer ist und httpd.confleer ist, solltest du wahrscheinlich verwenden apache2.conf;-)

Aber ich nehme an, dass das eine das andere einschließt (und dass eines davon nur aus Gründen der Abwärtskompatibilität beibehalten wird) - es sollte sich also nicht viel ändern.


Wenn Sie dennoch etwas wie ein neues hinzufügen möchten VirtualHost: Gibt es kein anderes Unterverzeichnis, in dem Sie Ihre Datei ablegen und einbinden können?

Es wäre wahrscheinlich eine bessere Lösung: Sie würden die Standarddatei nicht ändern, was Aktualisierungen vereinfachen würde.

Pascal MARTIN
quelle
Wie von Pascal erwähnt, sollten Sie, wenn Sie einen neuen VirtualHost hinzufügen möchten, eine neue Datei unter sites-available hinzufügen und diese dann mit dem Befehl a2ensite - help.ubuntu.com/6.06/ubuntu/serverguide/ als
Ccheneson
0

Öffne einfach die apache2.conf und sieh dir den Inhalt an:

Include /etc/apache2/mod-enabled/*.conf
Include /etc/apache2/httpd.conf

Wenn Sie also Ihre eigene Konfiguration hinzufügen möchten, fügen Sie diese zu httpd.conf hinzu, und apache2.conf wird sie automatisch abrufen.

Wie gesagt, apache2.conf kann maschinengeneriert werden und es ist besser, es nicht zu berühren.

Für weitere Informationen verwendet Ubuntu im Allgemeinen apache2.conf und Centos httpd.conf. Alle diese Dateien hängen also von Ihrem Betriebssystem ab.

Kazi Tanvir Ahsan
quelle
-2

Um den Namen und den Speicherort der Konfigurationsdatei zu finden, müssten Sie:

1) Suche als der Prozess aufgerufen wird, in diesem Fall mit dem Apache-Benutzer arbeiten:

ps -ef | grep apache

(in diesem Beispiel gibt: httpd)

2) Zeigen Sie die von der Binärdatei verwendeten Variablen an:

httpd -V | grep 'HTTPD_ROOT' && httpd -V | grep 'SERVER_CONFIG_FILE'

Extrahiert und Screenshots unter: http://www.sysadmit.com/2016/12/linux-apache-donde-esta-httpdconf-apache2conf.html

Ray Tatooine
quelle
Hallo, es scheint mir, dass Sie eine bereits beantwortete Frage beantwortet haben, eine, die vor Jahren beantwortet wurde. Darüber hinaus hilft Ihre Lösung dem ursprünglichen Fragesteller nicht dabei, das Problem zu lösen. Die zu verwendende Konfigurationsdatei ist die beste Vorgehensweise.
M. Glatki