wprowadzenie

serwer HTTP Apache jest najczęściej używanym serwerem WWW na świecie. Zapewnia wiele zaawansowanych funkcji, w tym dynamicznie ładowane Moduły, solidną obsługę multimediów i szeroką integrację z innymi popularnymi programami.

w tym przewodniku wyjaśnimy, jak zainstalować serwer Apache na serwerze Ubuntu 20.04.

wymagania wstępne

zanim zaczniesz ten poradnik, powinieneś mieć zwykłego, Nie-rootowego użytkownika z uprawnieniami sudo skonfigurowanego na twoim serwerze., Dodatkowo musisz włączyć podstawową zaporę sieciową, aby blokować nieistotne porty. Możesz dowiedzieć się, jak skonfigurować zwykłe konto użytkownika i skonfigurować zaporę ogniową dla swojego serwera, postępując zgodnie z naszym wstępnym przewodnikiem konfiguracji serwera dla Ubuntu 20.04.

Gdy masz dostępne konto, zaloguj się jako użytkownik spoza roota, aby rozpocząć.

Krok 1 — instalacja Apache

Apache jest dostępny w domyślnych repozytoriach oprogramowania Ubuntu, dzięki czemu można go zainstalować przy użyciu konwencjonalnych narzędzi do zarządzania pakietami.,

zacznijmy od aktualizacji indeksu pakietów lokalnych, aby odzwierciedlić najnowsze zmiany w źródle:

  • sudo apt update

następnie zainstaluj apache2 pakiet:

  • sudo apt install apache2

Po potwierdzeniu instalacji, apt zainstaluje Apache i wszystkie wymagane zależności.

Krok 2 — dostosowanie zapory sieciowej

przed testowaniem Apache ' a należy zmodyfikować ustawienia zapory sieciowej, aby umożliwić dostęp z zewnątrz do domyślnych portów internetowych., Zakładając, że postępowałeś zgodnie z instrukcjami w warunkach wstępnych, powinieneś mieć zaporę UFW skonfigurowaną tak, aby ograniczyć dostęp do twojego serwera.

podczas instalacji Apache rejestruje się za pomocą UFW, aby zapewnić kilka profili aplikacji, które mogą być używane do włączania lub wyłączania dostępu do Apache przez zaporę sieciową.,

otrzymasz listę profili aplikacji:

Output
Available applications: Apache Apache Full Apache Secure OpenSSH

zgodnie z danymi wyjściowymi dostępne są trzy profile Apache:

  • Apache: ten profil otwiera tylko port 80 (normalny, niezaszyfrowany ruch sieciowy)
  • Apache Full: ten profil otwiera zarówno port 80 (normalny, niezaszyfrowany ruch sieciowy), jak i port 443 (zaszyfrowany ruch TLS/SSL)
  • Apache secure: ten profil otwiera tylko port 443 (ruch szyfrowany TLS/SSL)

zaleca się włączenie najbardziej restrykcyjnego profilu, który nadal będzie zezwalał na skonfigurowany ruch., Ponieważ nie skonfigurowaliśmy jeszcze protokołu SSL dla naszego serwera w tym przewodniku, będziemy musieli zezwolić na ruch na porcie 80:

  • sudo ufw allow 'Apache'

możesz zweryfikować zmianę, wpisując:

  • sudo ufw status

wyjście dostarczy listę dozwolonego ruchu HTTP:

jak wskazuje wyjście, Profil został aktywowany, aby umożliwić dostęp do na serwer WWW Apache.

Krok 3 — sprawdzenie serwera www

pod koniec procesu instalacji Ubuntu 20.04 uruchamia Apache. Serwer WWW powinien być już uruchomiony.,

sprawdź za pomocą systemu initsystemdaby upewnić się, że usługa jest uruchomiona, wpisz:

  • sudo systemctl status apache2

zgodnie z tym wyjściem usługa została uruchomiona pomyślnie. Jednak najlepszym sposobem, aby to przetestować, jest zażądanie strony od Apache.

możesz uzyskać dostęp do domyślnej strony docelowej Apache, aby potwierdzić, że oprogramowanie działa poprawnie przez twój adres IP. Jeśli nie znasz adresu IP serwera, możesz uzyskać go na kilka różnych sposobów z linii poleceń.,

spróbuj wpisać to w wierszu polecenia serwera:

  • hostname -I

otrzymasz kilka adresów oddzielonych spacjami. Możesz wypróbować każdy w swojej przeglądarce internetowej, aby określić, czy działa.,

inną opcją jest użycie narzędzia Icanhazip, które powinno dać ci Twój publiczny adres IP odczytany z innej lokalizacji w internecie:

  • curl -4 icanhazip.com

gdy masz adres IP serwera, wprowadź go do paska adresu przeglądarki:

You should see the default Ubuntu 20.04 Apache web page:

This page indicates that Apache is working correctly. It also includes some basic information about important Apache files and directory locations.

Step 4 — Managing the Apache Process

Now that you have your web server up and running, let’s go over some basic management commands using systemctl.

To stop your web server, type:

  • sudo systemctl stop apache2

aby uruchomić serwer WWW, gdy zostanie zatrzymany, wpisz:

  • sudo systemctl start apache2

aby zatrzymać, a następnie ponownie uruchomić usługę, wpisz:

  • sudo systemctl restart apache2

Jeśli po prostu dokonujesz zmian konfiguracyjnych, Apache może często przeładowywać się bez opuszczania połączeń., Aby to zrobić, użyj polecenia:

  • sudo systemctl reload apache2

domyślnie Apache jest skonfigurowany tak, aby uruchamiał się automatycznie po uruchomieniu serwera. Jeśli tego nie chcesz, wyłącz to zachowanie, wpisując:

  • sudo systemctl disable apache2

aby ponownie włączyć usługę podczas rozruchu, wpisz:

  • sudo systemctl enable apache2

Apache powinien teraz uruchomić się automatycznie, gdy serwer ponownie uruchomi się.,

Krok 5 — Konfigurowanie wirtualnych hostów (zalecane)

podczas korzystania z serwera WWW Apache możesz używać wirtualnych hostów (podobnych do bloków serwerów w Nginx) do hermetyzacji szczegółów konfiguracji i hostowania więcej niż jednej domeny z jednego serwera. Skonfigurujemy domenę o nazwie your_domain, ale powinieneś zastąpić ją własną nazwą domeny. Jeśli konfigurujesz nazwę domeny za pomocą DigitalOcean, zapoznaj się z naszą dokumentacją dotyczącą sieci.

Apache na Ubuntu 20.,04 ma domyślnie włączony jeden blok serwera, który jest skonfigurowany do serwowania dokumentów z katalogu /var/www/html. Chociaż działa to dobrze w przypadku pojedynczej witryny, może stać się nieporęczny, jeśli hostujesz wiele witryn. Zamiast modyfikować /var/www/html, stwórzmy strukturę katalogów w /var/wwwdla witryny your_domain, pozostawiając/var/www/html jako domyślny katalog, który będzie obsługiwany, jeśli żądanie klienta nie pasuje do innych witryn.,

Utwórz katalog dla swojej domeny w następujący sposób:

  • sudo mkdir /var/www/your_domain

następnie przypisz prawa własności do katalogu za pomocą zmiennej środowiskowej $USER:

  • sudo chown -R $USER:$USER /var/www/your_domain

uprawnienia Twoich korzeni sieciowych powinny być poprawne, jeśli nie zmodyfikowano wartość umask, która ustawia domyślne uprawnienia do plików., Aby upewnić się, że Twoje uprawnienia są poprawne i pozwalają właścicielowi na odczyt, zapis i wykonywanie plików, jednocześnie przyznając uprawnienia tylko do odczytu i wykonywania grupom i innym, możesz wprowadzić następujące polecenie:

  • sudo chmod -R 755 /var/www/your_domain

następnie utwórz stronę index.html używając nano lub swojego ulubionego edytora:

  • sudo nano /var/www/your_domain/index.html

w środku dodaj następujący przykładowy HTML:

/var/www/your_domain/Index.html
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain virtual host is working!</h1> </body></html>

Zapisz i zamknij plik po zakończeniu.,

aby Apache mógł obsługiwać tę zawartość, konieczne jest utworzenie pliku wirtualnego hosta z odpowiednimi dyrektywami. Zamiast bezpośrednio modyfikować domyślny plik konfiguracyjny znajdujący się w /etc/apache2/sites-available/000-default.conf, zróbmy nowy w /etc/apache2/sites-available/your_domain.conf:

  • sudo nano /etc/apache2/sites-available/your_domain.conf

Wklej w poniższym bloku konfiguracji, który jest podobny do domyślnego, ale zaktualizowany dla naszego nowego katalogu i nazwy domeny:

/etc/zapraszamy do zapoznania się z naszą ofertą.,conf

zauważ, że zaktualizowaliśmyDocumentRoot do naszego nowego katalogu iServerAdmin do wiadomości e-mail, do której administrator witryny your_domain może uzyskać dostęp. Dodaliśmy również dwie dyrektywy: ServerName, która określa domenę bazową, która powinna pasować do tej definicji wirtualnego hosta, oraz ServerAlias, która definiuje dalsze nazwy, które powinny pasować tak, jakby były nazwą bazową.

Zapisz i zamknij plik po zakończeniu.,

włączmy plik za pomocą narzędzia a2ensite:

  • sudo a2ensite your_domain.conf

Wyłącz domyślną stronę zdefiniowaną w 000-default.conf:

  • sudo a2dissite 000-default.conf

następnie przetestujmy błędy konfiguracji:

  • sudo apache2ctl configtest

powinieneś otrzymać następujące wyjście:

Output
Syntax OK

zrestartuj Apache, aby wprowadzić swoje zmiany:

  • sudo systemctl restart apache2

Apache powinien teraz obsługiwać twoją nazwę domeny., Możesz to przetestować, przechodząc do , gdzie powinieneś zobaczyć coś takiego:

Krok 6 – zapoznanie się z ważnymi plikami i katalogami Apache

teraz, gdy wiesz, jak zarządzać samą usługą Apache, powinieneś poświęcić kilka minut na zapoznanie się z kilkoma ważnymi plikami i katalogami Apache.katalogi i pliki.,

Content

  • /var/www/html: rzeczywista zawartość sieci web, która domyślnie składa się tylko z domyślnej strony Apache, którą widziałeś wcześniej, jest serwowana z katalogu/var/www/html. Można to zmienić, zmieniając pliki konfiguracyjne Apache.

Konfiguracja serwera

  • /etc/apache2: katalog konfiguracji Apache. Wszystkie pliki konfiguracyjne Apache znajdują się tutaj.
  • /etc/apache2/apache2.conf: główny plik konfiguracyjny Apache. Można to zmodyfikować, aby wprowadzić zmiany w globalnej konfiguracji Apache., Ten plik jest odpowiedzialny za załadowanie wielu innych plików w katalogu konfiguracyjnym.
  • /etc/apache2/ports.conf: plik ten określa porty, na których Apache będzie nasłuchiwał. Domyślnie Apache nasłuchuje na porcie 80, a dodatkowo nasłuchuje na porcie 443, gdy włączony jest moduł obsługujący SSL.
  • /etc/apache2/sites-available/: katalog, w którym można przechowywać wirtualne hosty dla poszczególnych stron. Apache nie będzie używać plików konfiguracyjnych znalezionych w tym katalogu, chyba że są one połączone z katalogiemsites-enabled., Zazwyczaj cała konfiguracja bloków serwerowych odbywa się w tym katalogu, a następnie włączana przez połączenie z innym katalogiem za pomocą polecenia a2ensite.
  • /etc/apache2/sites-enabled/: katalog, w którym przechowywane są włączone hosty wirtualne dla poszczególnych witryn. Zazwyczaj są one tworzone przez połączenie z plikami konfiguracyjnymi znajdującymi się w katalogu sites-available z a2ensite. Apache odczytuje pliki konfiguracyjne i linki znajdujące się w tym katalogu podczas uruchamiania lub przeładowywania, aby skompilować pełną konfigurację.,
  • /etc/apache2/conf-available/,/etc/apache2/conf-enabled/: te katalogi mają taką samą relację jak katalogisites-available Isites-enabled, ale są używane do przechowywania fragmentów konfiguracji, które nie należą do hosta wirtualnego. Pliki w katalogu conf-available można włączyć za pomocą polecenia a2enconf I wyłączyć za pomocą polecenia a2disconf.
  • /etc/apache2/mods-available/,/etc/apache2/mods-enabled/: te katalogi zawierają odpowiednio dostępne i włączone Moduły., Pliki kończące się .load zawierają fragmenty do załadowania określonych modułów, podczas gdy pliki kończące się .conf zawierają konfigurację dla tych modułów. Moduły można włączać i wyłączać za pomocą polecenia a2enmod I a2dismod.

dzienniki serwera

  • /var/log/apache2/access.log: domyślnie każde żądanie serwera www jest zapisywane w tym pliku dziennika, chyba że Apache jest skonfigurowany tak, aby zrobić inaczej.
  • /var/log/apache2/error.log: domyślnie wszystkie błędy są zapisywane w tym pliku., Dyrektywa LogLevel w konfiguracji Apache określa, ile szczegółów będą zawierać dzienniki błędów.

podsumowanie

teraz, gdy masz zainstalowany serwer WWW, masz wiele opcji dotyczących rodzaju treści, które możesz obsługiwać i technologii, których możesz użyć, aby stworzyć bogatsze doświadczenie.

Jeśli chcesz zbudować bardziej kompletny stos aplikacji, możesz przeczytać ten artykuł Jak skonfigurować stos LAMP na Ubuntu 20.04

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *