Wprowadzenie
Serwer Apache HTTP to serwer WWW o otwartym kodzie źródłowym stworzony przez Apache Software Foundation. Jest to oprogramowanie, które łączy Twój lokalny serwer z serwerami stron internetowych, takimi jak Firefox czy Google Chrome. Połączenie to służy do wysyłania i odbierania plików oraz danych.
Jest to najpopularniejszy serwer na świecie. Ponad 40% wszystkich stron internetowych w sieci jest zasilanych przez Apache HTTP. Przyczynami jego popularności są wysoka możliwość dostosowania, świetne możliwości integracji i niezawodne wsparcie dla multimediów. Apache działa w oparciu o architekturę modułową. Możesz modyfikować poszczególne moduły, aby dodawać i usuwać różne funkcjonalności. W tym poradniku dowiesz się, jak zainstalować serwer Apache na systemie Ubuntu 18.04.
Przed instalacją
Zanim zaczniesz instalować Apache, musisz zadbać o kilka wymagań wstępnych. Na początek upewnij się, że masz już skonfigurowanego użytkownika innego niż root z uprawnieniami sudo na lokalnym serwerze. Kolejną rzeczą, której będziesz potrzebować, jest zapora sieciowa (firewall). Musisz włączyć podstawową zaporę i zablokować niepotrzebne porty. Przed rozpoczęciem instalacji zaloguj się na swojego użytkownika z uprawnieniami innego niż root. Możesz łatwo zainstalować swój serwer, postępując zgodnie z naszym poradnikiem dotyczącym konfiguracji serwera Ubuntu.
Jak zainstalować serwer WWW Apache na Ubuntu 18.04
Jeśli spełniłeś wymagania wstępne, możesz przejść do właściwej instalacji. Możesz zainstalować i poznać serwer WWW Apache w 6 prostych krokach:
Krok 1: Zainstaluj Apache
Z pewnością ucieszy Cię fakt, że Apache jest już częścią Ubuntu. Oznacza to, że możesz zainstalować Apache na swoim serwerze za pomocą typowych narzędzi do zarządzania pakietami. Jest on dostępny jako domyślne oprogramowanie w repozytorium. Najpierw musisz zaktualizować lokalny indeks pakietów:
|
1 |
sudo apt update |
To polecenie powoduje, że najnowsze zmiany z repozytorium nadrzędnego pojawiają się w indeksie pakietów. Następnie musimy wydać polecenie zainstalowania pakietu apache2:
|
1 |
sudo apt install apache2 |
Krok 2: Zmień ustawienia zapory sieciowej
Podczas dbania o wymagania wstępne musiałeś skonfigurować zaporę UFW. Jeśli postępowałeś zgodnie z instrukcjami, zapora będzie blokować dostęp do serwera. Przed uruchomieniem Apache musimy przyznać dostęp do serwera domyślnym portom WWW. W rezultacie należy zmienić ustawienia zapory.
W momencie instalacji Apache rejestruje się w UFW. Wynikiem tej rejestracji jest utworzenie kilku profili aplikacji. Ponadto możesz użyć tych profili, aby włączyć lub wyłączyć dostęp zapory do Apache. Następnie wyświetl te aplikacje ufw za pomocą następującego polecenia:
|
1 |
sudo ufw app list |
Zobaczysz swój profil aplikacji na liście takiej jak ta:

Powyższa lista pokazuje, że zostały utworzone trzy profile aplikacji, mianowicie Apache, Apache Full i Apache Secure. Oto kilka przydatnych szczegółów na temat każdego z tych profili:
-
Apache:
Profil Apache jest w stanie otworzyć tylko port 80. Port ten pozwala na normalny i nieszyfrowany ruch sieciowy.
-
Apache Full:
Profil Apache Full ma możliwość otwarcia zarówno portu 80, jak i 443. Podczas gdy port 80 pozwala na normalny, nieszyfrowany ruch sieciowy, port 443 odpowiada za ruch szyfrowany TLS/SSL.
-
Apache Secure:
Na koniec, Apache Secure otwiera tylko port 443. Jak wspomniano powyżej, odpowiada on za wpuszczanie ruchu sieciowego szyfrowanego za pomocą TLS lub SSL.
Wybierając między tymi profilami, pomyśl o skonfigurowanym ruchu. Będziesz chciał upewnić się, że pożądany ruch przechodzi, wybierając jednocześnie najbardziej restrykcyjny profil. Konfiguracja SSL wykracza obecnie poza nasz zakres. Dlatego na razie skupimy się na ruchu przychodzącym przez port 80. Oznacza to, że w tym scenariuszu włączamy profil aplikacji „Apache”. Możesz to zrobić w następujący sposób:
|
1 |
sudo ufw allow ‘Apache’ |
Aby zweryfikować modyfikację, wpisz następujące polecenie:
|
1 |
sudo ufw status |
To polecenie wyświetli dane wyjściowe (Output) zawierające ruch HTTP, który jest obecnie dozwolony. Zobaczysz coś takiego:

Przepływ ruchu pokazuje, że żądany profil Apache został aktywowany. Dostęp do serwera WWW został przyznany przez zaporę sieciową.
Krok 3: Sprawdź swój serwer WWW
Instalacja Apache została zakończona, a ustawienia zapory sieciowej zostały zmodyfikowane. Na koniec tego procesu Ubuntu 18.04 automatycznie uruchomi Apache. Następnie musisz sprawdzić za pomocą systemu inicjowania systemd, czy usługa działa w danym momencie. Jeśli chcesz dowiedzieć się więcej o systemach inicjowania, możesz zapoznać się z naszym samouczkiem dotyczącym zarządzania usługami i jednostkami Systemd za pomocą Systemctl. Aby sprawdzić, czy usługa działa, wpisz:
|
1 |
sudo systemctl status apache2 |
Wynik będzie następujący:

W powyższym wyniku należy szukać statusu Active lub running (aktywny lub uruchomiony). Pokazuje to, że usługa została pomyślnie uruchomiona i działa. Istnieje inny, bardziej preferowany sposób na przetestowanie działania usługi. Możesz sprawdzić jej status, żądając strony od Apache. Używając adresu IP swojego serwera, możesz potwierdzić, czy oprogramowanie działa, wyświetlając domyślną stronę startową Apache. Oto polecenie, którego możesz użyć, aby uzyskać adres IP swojego serwera, jeśli jeszcze go nie znasz:
|
1 |
hostname -I |
To polecenie wyświetli wynik z kilkoma adresami IP oddzielonymi spacjami. Przetestuj każdy z nich osobno w przeglądarce. Innym sposobem na uzyskanie dostępu jest pobranie publicznego adresu IP. Możesz użyć takiego polecenia:
|
1 |
curl -4 icanhazip.com |
To pokaże Twój adres IP widziany z innych miejsc w sieci. Następnie, gdy masz już swój adres IP, przejdź do przeglądarki internetowej. W pasku adresu wpisz i uruchom następujące polecenie:
|
1 |
http://your_server_ip |
To otworzy domyślną stronę internetową Apache w systemie Ubuntu 18.04. Wygląda ona tak:

Ta strona zawiera podstawowe informacje o Twoich plikach i katalogach. Ponieważ uruchomiła się po wpisaniu adresu, oznacza to, że Apache działa prawidłowo.
Krok 4: Podstawowe zarządzanie w Apache
Weryfikacja potwierdza, że Apache działa, a Twój serwer jest sprawny. Teraz przyjrzymy się podstawowym poleceniom, których możesz używać na serwerze do zarządzania.
Domyślna konfiguracja Apache uruchamia go przy każdym uruchomieniu serwera. Masz możliwość wyłączenia tego ustawienia. Wpisz:
|
1 |
sudo systemctl disable apache2 |
Aby ponownie aktywować tę domyślną funkcję, użyj tego polecenia:
|
1 |
sudo systemctl enable apache2 |
Następnie wpisz poniższe polecenie, jeśli chcesz ręcznie zatrzymać serwer:
|
1 |
sudo systemctl stop apache2 |
Jeśli chcesz uruchomić go ponownie po zatrzymaniu, użyj polecenia:
|
1 |
sudo systemctl start apache2 |
Aby zatrzymać i uruchomić serwer, czyli w zasadzie go odświeżyć, wpisz:
|
1 |
sudo systemctl restart apache2 |
Po zatrzymaniu serwera ma on tendencję do utraty wszystkich połączeń. Ponowne uruchomienie oznacza, że odnajduje i ponownie łączy te połączenia. Jeśli chcesz, możesz również przeładować Apache bez utraty połączenia. Jest to szczególnie przydatne podczas wprowadzania zmian w konfiguracji. Wpisz poniższe polecenie, aby przeładować bez zrywania połączeń:
|
1 |
sudo systemctl reload apache2 |
Krok 5: Konfiguracja wirtualnego hosta
Choć nie jest to obowiązkowe, wysoce zalecane jest skonfigurowanie wirtualnych hostów. Wirtualne hosty to małe bloki na serwerze, które zawierają grupy szczegółów konfiguracji. Możesz hostować kilka domen na jednym wirtualnym hoście ze swojego serwera.
Domyślnie, jeśli używasz Apache na Ubuntu 18.04, aktywny będzie jeden blok serwera, który będzie obsługiwał dokumenty w katalogu /var/www/html. Będziesz chciał zmienić to ustawienie, jeśli hostujesz wiele witryn zamiast tylko jednej. Istnieje jednak inna, jeszcze lepsza opcja. Pozostaw katalog /var/www/html nienaruszony. Zamiast tego przejdź do /var/www/, aby zbudować strukturę katalogów dla witryn w żądanej domenie. Jeśli to zrobisz, katalog /var/www/html zostanie skonfigurowany jako katalog domyślny. W przypadku, gdy żądanie klienta nie pasuje do żadnej z witryn w Twojej domenie, zostanie ono obsłużone stąd.
Następnie zobaczymy, jak utworzyć nową domenę i powiązany z nią katalog. Na potrzeby tego przykładu użyjemy hipotetycznej nazwy, your_domain. Zastąp your_domain w kolejnych instrukcjach własną nazwą domeny. Na początek zobaczmy, jak utworzyć nowy katalog dla your_domain:
|
1 |
sudo mkdir /var/www/your_domain |
Teraz musisz przypisać uprawnienia własności do katalogu. Możesz użyć do tego celu zmiennej środowiskowej $USER:
|
1 |
sudo chown -R $USER:$USER /var/www/your_domain |
Aby kontynuować, uprawnienia do katalogu głównego sieci web muszą być poprawne. Jeśli nie zmieniałeś wartości umask w konfiguracji, Twoje uprawnienia powinny być w porządku. Ale jeśli nie masz pewności, zawsze możesz to potwierdzić za pomocą:
|
1 |
sudo chmod -R 755 /var/www/your_domain |
Następnie utworzymy stronę index.html. Możesz użyć nano, tak jak my, lub dowolnego innego edytora, jeśli masz swoje preferencje:
|
1 |
nano /var/www/your_domain/index.html |
Dodaj ten przykładowy kod HTML wewnątrz pliku index, a następnie zapisz i zamknij:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Witaj w Your_domain!</title> </head> <body> <h1>Sukces! Wirtualny host your_domain działais working!</h1> </body> </html> |
Kolejnym krokiem jest utworzenie pliku wirtualnego hosta. Plik wirtualnego hosta ze wszystkimi odpowiednimi dyrektywami jest niezbędny, aby Apache mógł obsługiwać powyższą przykładową zawartość. Domyślny plik konfiguracyjny będzie znajdować się w: /etc/apache2/sites-available/000-default.conf. Zamiast modyfikować ten plik, utworzymy nowy w: /etc/apache2/sites-available/your_domain.conf.
|
1 |
sudo nano /etc/apache2/sites-available/your_domain.conf |
Podobnie jak poprzednio, dodamy przykładową konfigurację. Tym razem jednak zaktualizujemy ją pod kątem nazwy domeny i nowego katalogu, który właśnie utworzyliśmy. Dodaj ten blok, a następnie zapisz i zamknij:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Jak widać powyżej, zaktualizowaliśmy również nasz e-mail ServerAdmin. Jest to adres, pod którym administrator witryny your_domain może się skontaktować. Oprócz tego zaktualizowaliśmy również DocumentRoot do nowego katalogu i dodaliśmy dwie nowe dyrektywy. Dyrektywy te obejmują ServerName i ServerAlias. ServerName służy do ustawienia domeny bazowej. Domena bazowa musi pasować, aby zdefiniować wirtualnego hosta. Z kolei ServerAlias udostępnia inne nazwy, które również powinny pasować, podobnie jak nazwa bazowa. Możesz łatwo włączyć ten plik za pomocą narzędzia a2ensite:
|
1 |
sudo a2ensite your_domain.conf |
Aby wyłączyć domyślną stronę wspomnianą w 000-default.conf, użyj tego polecenia:
|
1 |
sudo a2dissite 000-default.conf |
Teraz, gdy konfiguracja jest gotowa, możesz sprawdzić błędy, wpisując:
|
1 |
sudo apache2ctl configtest |
Spowoduje to wyświetlenie następującego wyniku, jeśli nie ma błędów konfiguracji:
|
1 2 3 |
Output Syntax OK |
Aby zastosować zmiany, musisz zrestartować serwer Apache zgodnie z wcześniejszą instrukcją:
|
1 |
sudo systemctl restart apache2 |
Voila! Skonfigurowałeś swój wirtualny host i ustawiłeś nazwę domeny. Aby sprawdzić, czy Apache rzeczywiście obsługuje your_domain, przejdź do http://your_domain.
Krok 6: Przeglądanie plików i katalogów
Pomyślnie wykonałeś podstawową konfigurację swojego serwera Apache. Ponadto wiesz już, jak możesz zarządzać usługą Apache. Następnie możesz poświęcić trochę czasu na zapoznanie się z niektórymi z najważniejszych katalogów i plików.
Zawartość
- /var/www/html
Rozmawialiśmy już wcześniej o tym katalogu. Zawiera on domyślną stronę Apache. Jeśli chcesz, możesz zmienić zawartość tej strony. Aby to zrobić, będziesz musiał zmodyfikować pliki konfiguracyjne Apache.
Konfiguracja serwera
- /etc/apache2
Jest to główny katalog konfiguracyjny Apache. Oznacza to, że katalog ten zawiera wszystkie pliki konfiguracyjne powiązane z Apache.
- /etc/apache2/apache2.conf
Jak sugeruje dodatek na końcu ścieżki, jest to główny plik konfiguracyjny. Plik ten ładuje kilka innych plików w katalogu i może być używany do wprowadzania modyfikacji w konfiguracji Apache. Jeśli chcesz dokonać jakichkolwiek zmian w konfiguracji serwera Apache, to właśnie tutaj będziesz wprowadzać modyfikacje.
- /etc/apache2/ports.conf
Jak sugeruje nazwa, plik ten dotyczy portów, o których rozmawialiśmy wcześniej. Port 80 jest domyślnie włączony, a port 443 jest aktywowany po wprowadzeniu modułów zawierających SSL. Plik ten zawiera szczegółowe informacje o tym, które porty są otwarte i włączone.
- /etc/apache2/sites-available/
Tutaj trafią Twoje wirtualne hosty. Wszelkie konfiguracje bloków serwera są wykonywane w tym katalogu. Aby włączyć bloki serwera, muszą one zostać powiązane z innymi katalogami za pomocą a2ensite. Apache będzie miał dostęp do plików w tym katalogu tylko wtedy, gdy zostaną one włączone poprzez powiązanie z katalogiem sites-enabled.
- /etc/apache2/sites-enabled/
Jest to katalog, w którym znajdują się włączone wirtualne hosty. Jak wspomnieliśmy, hosty są włączane po powiązaniu plików w katalogu sites-available za pomocą polecenia a2ensite. Pliki w tym katalogu są ważne, gdy Apache uruchamia się, przeładowuje lub kompiluje konfigurację.
- /etc/apache2/conf-available/, /etc/apache2/conf-enabled/
Katalogi te działają w podobny sposób jak sites-available i sites-enabled. Aby włączyć pliki w katalogu conf-available, należy użyć polecenia a2enconf. Poleceniem wyłączającym jest a2disconf. Zamiast przechowywać wirtualne hosty dla poszczególnych witryn, katalogi te zawierają szczegóły konfiguracji, które nie są istotne dla wirtualnego hosta:
- /etc/apache2/mods-available/, /etc/apache2/mods-enabled/
Katalogi te również mają relację podobną do powyższych dwóch przykładów. Zawierają one moduły – te dostępne oraz te włączone za pomocą polecenia a2enmod. Aby wyłączyć moduł, można użyć polecenia a2dismod. Pliki z rozszerzeniem .load zawierają fragmenty, które mogą załadować dany moduł. Pliki z rozszerzeniem .conf przechowują odpowiednie szczegóły konfiguracji dla danego modułu.
Logi serwera
- /var/log/apache2/access.log
Ten plik dziennika zawiera wszystkie żądania wysyłane do Twojego serwera. Dzieje się tak domyślnie. Masz możliwość skonfigurowania Apache tak, aby rejestrował żądania w inny sposób.
- /var/log/apache2/error.log
To jest dziennik błędów. Domyślnie wszystkie błędy trafiają bezpośrednio do tego pliku. Szczegółowość, z jaką rejestrowane są błędy, można sprawdzić za pomocą dyrektywy LogLevel.
Podsumowanie
Na koniec, postępując zgodnie z powyższymi krokami, możesz łatwo zainstalować serwer WWW Apache na swoim systemie Ubuntu 18.04. Gdy masz już serwer w swoim systemie, możesz odkrywać różne opcje, które masz na tej platformie. Możesz używać różnych technologii do tworzenia różnego rodzaju treści. W ten sposób możesz stworzyć dla siebie wyjątkowe i ułatwiające pracę doświadczenie na serwerze.
Możesz również dowiedzieć się, jak zabezpieczyć swój serwer Apache za pomocą Let’s Encrypt, postępując zgodnie z naszym przewodnikiem krok po kroku. Jeśli chcesz dowiedzieć się, jak zainstalować Apache na CentOS 7, skorzystaj z naszego poradnika dotyczącego instalacji stosu Linux, Apache, MySQL, PHP (LAMP) na CentOS 7.
Miłego korzystania!
Komentarze
Brak komentarzy. Bądź pierwszy.