Jak skonfigurować Apache (strony dostępne a httpd.conf)

27

Próbowałem wykonać kilka podstawowych samouczków wyjaśniających, jak uruchomić Apache (na Ubuntu, na Amazon). W większości wypadłem na pusto, ponieważ wszystkie samouczki mówiły mi, aby skonfigurować httpd.conf (aby dodać DocumentRoot itp.).

Natknąłem się teraz na jeden samouczek, który powiedział mi, żebym dodał konfiguracje witryn do katalogu witryn dostępnych (w / etc / apache), a następnie dowiązanie symboliczne do niego z włączonej strony. Konfiguracja w ten sposób wydaje się działać.

Ale teraz jestem zdezorientowany - jak mam skonfigurować Apache? Wydaje się, że większość samouczków mówi, że powinienem używać httpd.conf. Którego powinienem używać? Co za różnica? Dlaczego wszystkie samouczki są „złe” (jeśli są)?

Edan Maor
źródło

Odpowiedzi:

35

sites-availableMetoda jest powszechnie uważany za „Debian Way”:

  • konfiguracja „główna” w /etc/apache2/apache2.conf
  • konfiguracja „użytkownika” w /etc/apache2/httpd.conf
  • vhosty w /etc/apache2/sites-availableplikach (zazwyczaj jeden na plik)
    • możesz je ponumerować, np. 00-domena.com, 01-otherdomain.com
  • porty ( Listendyrektywy) w/etc/apache2/ports.conf
  • mody w /etc/apache2/mods-available

Możesz nimi manipulować za pomocą dowiązań symbolicznych lub a2serii poleceń:

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

W zależności od osobistych preferencji, można ponownie uruchomić Apache przy użyciu apachectl, /etc/init.d/apache2 (start|stop|reload|restart)lubservice apache2 (start|stop|reload|restart)

Przykładem użycia httpd.confzamiast pozycji vhost byłoby na przykład globalna reguła przekierowania lub przepisania. Inne ciekawostki - na ogół powinieneś zostawić to w apache2.confspokoju i upewnić się, że masz skonfigurowany spójny schemat nazewnictwa dla vhostów w sites-availablekatalogu.

Sam Halicke
źródło
Świetne podsumowanie! Znacznie bardziej przejrzysty i zwięzły niż ten, nad którym pracowałem. +1.
Steven poniedziałek,
2
Dostępne strony zapewniają dobrą modularyzację konfiguracji. Umożliwia łatwe skupienie się na konfiguracji pojedynczej witryny. Ułatwia także porównywanie witryn na serwerze lub przenoszenie lub replikowanie witryny między serwerami.
BillThor,
+1. Aby zachować te konfiguracje, przejdź do opcji „Witryny włączone” zamiast „Witryny dostępne” i uzyskaj do nich bezpośredni dostęp z tego miejsca. W ten sposób zawsze będziesz w stanie określić i uzyskać dostęp do aktualnie używanych konfiguracji witryny.
Ross
9

Lokalizacja i organizacja plików konfiguracyjnych jest konfigurowalna i może się zmieniać między głównymi wydaniami lub między dystrybucjami.

Wiki Apache ma przydatny przewodnik po nazwach i lokalizacjach plików konfiguracyjnych.

Ponieważ pliki konfiguracyjne mogą zawierać includedyrektywy, części konfiguracji można podzielić na mniejsze pliki. Ponieważ standardowy plik konfiguracyjny Apache zawiera wiele komentarzy i wiele standardowych elementów, warto rozdzielić części, które najprawdopodobniej zmienisz.

Nazwa głównego pliku konfiguracyjnego może zostać zmieniona w czasie kompilacji, aw ostatnich wydaniach zmieniła się z httpd.confnaapache2.conf

Przez lata nastąpiła pewna ewolucja w organizacji dołączonych plików konfiguracyjnych.

Na przykład zainstalowałem Apache2 w systemie Ubuntu przy użyciu apt-get install apache2- oto dołączone pliki

/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

Tak więc teraz znajduje się kilka ustawień konfiguracji, które mogą Cię najbardziej zainteresować /etc/apache2/sites-available/default.

Widzę, że jest to zgodne z dokumentacją Ubuntu dla Apache, którą polecam najpierw przeczytać. Jeśli masz inną dokumentację dla starszych wersji Apache (lub innych dystrybucji), możesz dostosować te informacje do sposobu organizacji rzeczy w Ubuntu.

RedGrittyBrick
źródło
-2

Apache w systemie Linux można zainstalować na dwa sposoby. jeden jest przez apt-get, a drugi pobierz plik tar i rozpakuj ... Tak więc w procesie apt-get strony są udostępniane z folderu / etc / apache2 / sites, ponieważ każda strona obsługująca świat zewnętrzny jest skonfigurowana w tym folderze przez Przykład plików .conf 000-default.conf jest domyślną witryną z włączoną funkcją wyświetlania apache.

w ten sposób, tworząc dowolny plik .conf z obsługą stron i przekierowując go do lokalizacji treści .. ta strona jest obsługiwana.

Aby więc dodać nową stronę statyczną, należy utworzyć nowy plik .conf w folderze obsługującym strony o nazwie jakkolwiek przykład example.conf. i musi dodać w nim poniższe linie

ServerAdmin webmaster @ localhost DocumentRoot / var / www / html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log łącznie

Gdzie as *: 80 oznacza „otwarty na świat przez port 80” DocumentRoot / var / www / html wskazuje „ścieżkę zawartości strony”

Basutkar. Karthik
źródło
To źle i wprowadza w błąd. Pliki tworzysz w witrynach dostępnych, aby narzędzia (zalecane), takie jak a2ensite, mogły działać. Zazwyczaj dowiązujesz te pliki conf za pomocą a2ensite do stron z obsługą. apt-get nie ma nic wspólnego z konfigurowaniem twoich stron.
HörmannHH