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:
OutputAvailable 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 initsystemd
aby 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/www
dla 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:
<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:
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:
OutputSyntax 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ą poleceniaa2ensite
. -
/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 katalogusites-available
za2ensite
. 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 kataloguconf-available
można włączyć za pomocą poleceniaa2enconf
I wyłączyć za pomocą poleceniaa2disconf
. -
/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ą poleceniaa2enmod
Ia2dismod
.
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., DyrektywaLogLevel
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