Apache to legendarny, sprawdzony w boju serwer WWW który pomógł zbudować internet. Pozostaje jednym z najczęściej używanych serwerów WWW na świecie, znany ze swojej mocy, niezawodności i ogromnego ekosystemu modułów (jak mod_rewrite szeroko używany przez WordPress i inne platformy CMS).
Na systemach Ubuntu i Debian, pakiet i usługa Apache są określane jako apache2. Konfiguracja zajmuje tylko kilka minut. Oto jak to zrobić.
Krok 1: Zainstaluj Apache
Apache to podstawowy pakiet dostępny bezpośrednio z domyślnych repozytoriów oprogramowania Ubuntu i Debian, co oznacza że możemy go zainstalować czysto używając menedżera pakietów apt.
Jak zawsze przed rozpoczęciem, zaktualizuj swój lokalny indeks pakietów aby zapewnić otrzymanie najnowszej dostępnej wersji:
sudo apt update
Zainstaluj pakiet apache2:

sudo apt install apache2 -y
Podobnie jak Nginx, proces apt automatycznie konfiguruje usługę Apache tak aby uruchamiała się automatycznie natychmiast po instalacji i zapewnia że działa automatycznie gdy serwer startuje.
Krok 2: Dostosuj zaporę
Przed przetestowaniem Apache, musisz zmodyfikować reguły zapory aby zezwolić na zewnętrzny dostęp do domyślnych portów WWW. Jeśli śledziłeś nasz polecany Przewodnik Konfiguracji Zapory UFW, użyjesz UFW aby bezproblemowo to obsłużyć.
Apache rejestruje kilka profili aplikacji z UFW przy instalacji. Wyświetl je wpisując:

sudo ufw app list
Powinieneś zobaczyć:
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
- Apache: Otwiera tylko port 80 (normalny, niezaszyfrowany ruch HTTP).
- Apache Secure: Otwiera tylko port 443 (zaszyfrowany ruch HTTP TLS/SSL).
- Apache Full: Otwiera zarówno port 80 jak i port 443.
Mocno zalecamy zezwolenie na oba porty od razu aby być gotowym do skonfigurowania szyfrowania SSL/TLS (HTTPS) w przyszłości.

sudo ufw allow 'Apache Full'
Sprawdź status aby zweryfikować zmianę:
sudo ufw status
Krok 3: Sprawdź swój serwer WWW
W tym momencie Apache działa i twoja zapora zezwala na ruch. Upewnijmy się że wszystko działa prosząc Apache o stronę.
Skieruj swoją ulubioną przeglądarkę internetową na publiczny adres IP swojego serwera. Jeśli musisz sobie przypomnieć adres IP serwera szybko z terminala:

curl -4 icanhazip.com
Wpisz ten adres IP w pasek URL przeglądarki:
http://your_server_ip

Powinieneś natychmiast zobaczyć domyślną Stronę Domyślną Ubuntu Apache2 (lub jej odpowiednik dla Debiana). Ta strona potwierdza że oprogramowanie serwera WWW jest poprawnie zainstalowane i dostępne przez internet w sposób bezpieczny.
Krok 4: Zarządzaj procesem Apache
Zarządzanie Apache opiera się na systemd poprzez polecenie systemctl. Oto podstawowe polecenia zarządzania których będziesz potrzebować do codziennej administracji serwerem WWW nad usługą apache2.
Aby całkowicie zatrzymać serwer WWW:

sudo systemctl stop apache2
Aby uruchomić serwer WWW gdy jest zatrzymany:

sudo systemctl start apache2
Aby zatrzymać i uruchomić usługę w jednym poleceniu, użyj restart (przydatne jeśli ciężko zepsułeś zależności konfiguracyjne):

sudo systemctl restart apache2
Jednakże, jeśli po prostu zmieniłeś plik konfiguracyjny lub dodałeś nowego Wirtualnego Hosta, możesz zmusić Apache do przeładowania swojej konfiguracji bez rozłączania połączeń kogokolwiek aktualnie przeglądającego stronę:

sudo systemctl reload apache2
Krok 5: Skonfiguruj Wirtualne Hosty
Jeśli planujesz hostować więcej niż jedną stronę internetową (nazwę domeny) na swoim serwerze, musisz skonfigurować Wirtualne Hosty (równoważne Server Blocks w Nginx).
Apache dostarcza domyślną konfigurację wirtualnego hosta od razu z pudełka (000-default.conf) która serwuje dokumenty z katalogu /var/www/html. To jest w porządku dla pojedynczej strony, ale szybko staje się koszmarem jeśli chcesz hostować wiele różnych domen.
Zamiast nadpisywać domyślną stronę, stworzymy całkowicie nową strukturę katalogów i plik konfiguracyjny dla twojej nowej domeny. Dla tego przykładu, użyjemy your_domain.com.
1. Utwórz katalog
Stwórz dedykowany folder dla twojej domeny wewnątrz /var/www/:

sudo mkdir -p /var/www/your_domain.com/html
2. Dostosuj własność
Nadaj swojemu kontu użytkownika własność folderu głównego WWW abyś mógł edytować lub przesyłać pliki bez ciągłej potrzeby uprawnień root:

sudo chown -R $USER:$USER /var/www/your_domain.com/html
3. Utwórz stronę testową
Umieść przykładowy plik w miejscu aby upewnić się że wszystko poprawnie się łączy.

nano /var/www/your_domain.com/html/index.html
Dodaj ten przykładowy blok HTML:
<html>
<head>
<title>Witaj na your_domain.com!</title>
</head>
<body>
<h1>Sukces! Wirtualny host your_domain.com działa!</h1>
</body>
</html>
Zapisz i wyjdź.
4. Utwórz plik konfiguracyjny Wirtualnego Hosta
Apache na Ubuntu izoluje konfigurację w czysto zorganizowane foldery. Wirtualne hosty powinny być zdefiniowane w /etc/apache2/sites-available.

sudo nano /etc/apache2/sites-available/your_domain.com.conf
Wklej następującą konfigurację podstawową do pliku, która mówi Apache jakiej domeny nasłuchiwać i gdzie znaleźć pliki źródłowe:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName your_domain.com
ServerAlias www.your_domain.com
DocumentRoot /var/www/your_domain.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Zapisz i zamknij plik.
5. Włącz Wirtualny Host
Apache zawiera wbudowane narzędzia do łatwego zarządzania konfiguracjami. Użyjemy narzędzia a2ensite (Apache 2 Enable Site) aby jawnie włączyć nowego wirtualnego hosta:

sudo a2ensite your_domain.com.conf
Skoro już przy tym, wyłączmy domyślną stronę lądowania która przychodzi z Apache (aby żądania przeznaczone dla naszej domeny nie były myląco mapowane z powrotem do domyślnego fallback):

sudo a2dissite 000-default.conf
6. Przetestuj konfigurację i zrestartuj
Za każdym razem gdy edytujesz pliki konfiguracyjne Apache, najlepszą praktyką jest przetestowanie ich pod kątem błędów składni przed pełnym restartem. Zapewnia to że nie zamkniesz przypadkowo swojego serwera WWW z powodu literówki.
sudo apache2ctl configtest
Powinieneś zobaczyć wynik który mówi Syntax OK. (Może pojawić się nieszkodliwe ostrzeżenie serwera 'Could not reliably determine the server's fully qualified domain name', ale walidacja składni jest tutaj kluczowa).
Teraz przeładuj Apache aby zainicjalizować nowego wirtualnego hosta:
sudo systemctl reload apache2
Apache powinien teraz aktywnie serwować twoją nazwę domeny. Dopóki twoje rekordy DNS dla your_domain.com wskazują na adres IP twojego VPS, możesz wpisać ją w przeglądarkę aby zobaczyć swój ciąg sukcesu.
Dla niezawodnego środowiska wspierającego szybkie prototypowanie projektów z warstwami WWW Apache, sprawdź naszą wysokowydajną linię przystępnych środowisk Budget VPS już dziś.