Ubuntu Apache: httpd.conf czy apache2.conf?

43

który z tych dwóch plików powinienem użyć do skonfigurowania Apache?

httpd.confJest pusta, a apache2.confnie jest.

To mnie dezorientuje!

ajsie
źródło

Odpowiedzi:

46

Httpd.conf jest przeznaczony do konfiguracji użytkownika. Naprawdę nie powinieneś edytować pliku apache2.conf, ponieważ może on zostać zaktualizowany w przyszłych aktualizacjach.

Dodatkową opcją jest po prostu umieszczenie niestandardowej konfiguracji w /etc/apache2/conf.d, wszystkie pliki w tym katalogu również są uwzględnione.

Rob Di Marco
źródło
5
Nie mam pliku o nazwie apapche2.conf
Doug Molineux
18

To nie są twoje jedyne opcje. W Ubuntu / Debian Apache przetwarza również wszystkie pliki w /etc/apache2/sites-enabled/(które powinny być dowiązaniami symbolicznymi do plików w sites-available/katalogu, zarządzanymi przez programy a2ensitei a2dissite)

Masz zamiar używać tych katalogów dla VirtualHosts.

Władca
źródło
1
to jest poprawna odpowiedź! a także dostępne pliki konfiguracyjne portów / modów, jeśli chcesz rozwinąć swoją odpowiedź
Sudhi,
5

apache2.conf zawiera httpd.conf:

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

Myślę, że httpd.conf jest przestarzały, ale zostawił go tam konserwatywnym ludziom, aby znaleźli sobie drogę ... :)

EDYTOWAĆ:

Po przeczytaniu odpowiedzi Roba zrobiłem lepszy grep:

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

Konfiguracje użytkownika to ...

Alexander T.
źródło
6
+1 „httpd.conf jest przestarzałe”
feeela
1

Fundacja Apache Software Foundation publikuje wiele fragmentów oprogramowania, z których jednym jest serwer WWW o nazwie httpd. Źródła projektu httpd obejmują między innymi httpd.confprzykładowy plik konfiguracyjny, który jest domyślnie instalowany w /usr/local/etc/httpdlub /etc/httpd. Znajdziesz httpd nazwany jako taki w większości systemów.

Jednak dawno temu i daleko stąd ktoś z dystrybucji Debian GNU / Linux postanowił zmienić nazwę oprogramowania w tej dystrybucji z httpdna apache2. Tak więc w systemie Debian znajdziesz plik konfiguracyjny o nazwie apache2.confw katalogu o nazwie /etc/apache2. Nie wiem, kto to zrobił i dlaczego, ale jest to stałe źródło zamieszania na równi z nazywaniem Windows „Microsoft” lub ESXi „VMware”. Dystrybucje oparte na Debianie, takie jak Ubuntu, dziedziczą tę dziwność. Nawet obcy, oni następnie dołączyć plik /etc/apache2/httpd.conf, który jest Included Z apache2.conf, do której użytkownicy mogą umieszczać konfigurację niestandardową.

Więc odpowiedź brzmi: jeśli korzystasz z systemu opartego na Debianie, zmuszasz mózg do robienia rzeczy tak, jak chce tego Debian. W przeciwnym razie robisz to zwykle w normalny sposób, tak jak robi to projekt httpd.

Michael Hampton
źródło
1

Apache 2.4

Zgasić:

Umieść dowolne konfiguracje w /etc/apache2/conf-available/{name}.conf

Włącz / wyłącz konfigurację za pomocą sudo a2enconf {name}lub sudo a2disconf {name}.

(Następnie uruchom ponownie usługę apache2).

Nie używaj:

httpd.conf jest przestarzałe i NIE powinieneś go więcej widzieć - jeśli tak, pozostaw puste jak zainstalowane.

apache2.conf jest nadal zainstalowany, ale zostaw go w spokoju, jeśli chcesz łatwo / łatwo zaktualizować Apache.

-

Wszystko, co możesz zobaczyć w „globalnej” konfiguracji Apache, można dodać / przesłonić w konfiguracji niestandardowej, jak opisano powyżej.

Więcej: https://stackoverflow.com/a/11687212/503621

bshea
źródło
0

Jeśli apache2.confnie jest pusty i httpd.confjest pusty, prawdopodobnie powinieneś użyć apache2.conf;-)

Ale przypuszczam, że jedno obejmuje drugie (i że jedno z nich jest trzymane wyłącznie ze względu na kompatybilność wsteczną) - więc nie powinno to wiele zmieniać.


Jeśli jednak chcesz coś dodać, na przykład nowy VirtualHost: czy nie ma innego podkatalogu, w którym można umieścić plik i dołączyć go?

Prawdopodobnie byłoby to lepsze rozwiązanie: nie zmodyfikowałbyś domyślnego pliku - co uprościłoby aktualizacje.

Pascal MARTIN
źródło
Jak wspomniała Pascal, jeśli chcesz dodać nowy VirtualHost, powinieneś dodać nowy plik w zakładce dostępne, a następnie mieć dowiązanie symboliczne w włączonych witrynach za pomocą polecenia a2ensite - help.ubuntu.com/6.06/ubuntu/serverguide/ C / httpd.html
ccheneson
0

wystarczy otworzyć apache2.conf i spojrzeć na treść:

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

Więc jeśli chcesz dołączyć własną konfigurację, dodaj ją do httpd.conf, a apache2.conf automatycznie ją otrzyma.

Jak inni mówią, apache2.conf może być generowany maszynowo i lepiej go nie dotykać.

Aby uzyskać więcej informacji, ogólnie Ubuntu używa apache2.conf, a Centos używa httpd.conf. Więc wszystkie te pliki zależą od posiadanego systemu operacyjnego.

kazi Tanvir Ahsan
źródło
-2

Aby znaleźć nazwę i lokalizację pliku konfiguracyjnego, musisz:

1) Wyszukaj, jak wywoływany jest proces, w tym przypadku pracując z użytkownikiem apache:

ps -ef | grep apache

(w tym przykładzie, powraca: httpd)

2) Pokaż zmienne używane przez plik binarny:

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

Wyodrębniono i zrzuty ekranu: http://www.sysadmit.com/2016/12/linux-apache-donde-esta-httpdconf-apache2conf.html

Ray Tatooine
źródło
Witam, Wydaje mi się, że odpowiedzieliście na pytanie, na które już udzielono odpowiedzi, na które udzielono odpowiedzi lata temu. Ponadto twoje rozwiązanie nie pomaga pierwotnemu pytającemu rozwiązać problem, którego pliku konfiguracyjnego najlepiej użyć.
M. Glatki,