webh.pl

Stawianie LEMP/LAMP od zera na systemie Ubuntu

Jak krok po kroku zainstalować i skonfigurować stos LAMP (Apache) lub LEMP (Nginx) z obsługą PHP na serwerze VPS z najnowszym systemem Ubuntu.

  • czytania
  • Zaktualizowano:
LEMP LAMP Ubuntu Nginx Apache
Serwery VPS

Własny serwer VPS pozwala na pełną kontrolę nad środowiskiem uruchomieniowym Twojej strony internetowej. W tym artykule dowiesz się, jak zainstalować stos LAMP lub LEMP na systemie Ubuntu 26.04 LTS. Dzięki temu zyskasz szybką platformę zoptymalizowaną pod kątem wydajności Twoich aplikacji.

Informacja

Przed rozpoczęciem instalacji zaloguj się do serwera przez SSH jako użytkownik z uprawnieniami administracyjnymi i wykonaj aktualizację systemu.

Przygotowanie systemu

Zaktualizuj listę pakietów oraz zainstalowane oprogramowanie:

sudo apt update && sudo apt upgrade -y

Polecenie odświeża indeksy dostępnego oprogramowania i instaluje najnowsze poprawki systemowe. Dzięki temu zyskasz stabilną bazę pod nowe usługi i zminimalizujesz ryzyko konfliktów między bibliotekami.

Wariant A: Instalacja stosu LAMP (Apache, MySQL, PHP)

Stos LAMP to klasyczne zestawienie oprogramowania składające się z systemu Linux, serwera Apache, bazy danych MySQL oraz języka PHP. Wybierzesz to rozwiązanie, jeśli Twoje aplikacje wymagają tradycyjnej konfiguracji za pomocą plików konfiguracyjnych .htaccess.

Krok 1: Instalacja serwera Apache

Wprowadź w terminalu komendę instalującą serwer WWW Apache::

sudo apt install apache2 -y

Serwer uruchomi się automatycznie po zakończeniu procesu pobierania. Otrzymasz sprawdzone środowisko gotowe do natychmiastowego serwowania stron internetowych.

Skonfigurujesz teraz zaporę sieciową UFW (wbudowany system filtrowania ruchu), aby zezwolić na ruch sieciowy:

sudo ufw allow 'Apache Full'

Ta operacja otwiera porty komunikacyjne dla protokołów HTTP oraz HTTPS. W ten sposób umożliwisz użytkownikom bezpieczne otwieranie Twojej strony w przeglądarce.

Krok 2: Instalacja bazy danych MySQL

Zainstaluj system zarządzania relacyjnymi bazami danych MySQL:

sudo apt install mysql-server -y

Baza danych posłuży do bezpiecznego przechowywania treści Twojej strony, na przykład postów czy kont użytkowników.

Po instalacji uruchom skrypt zabezpieczający:

sudo mysql_secure_installation

Narzędzie przeprowadzi Cię przez proces konfiguracji haseł i usuwania domyślnych, testowych kont. Dzięki temu zablokujesz nieautoryzowany dostęp zewnętrzny do cennych danych.

Krok 3: Instalacja języka PHP

Zainstaluj środowisko wykonawcze PHP wraz z modułem dla serwera Apache i obsługą bazy danych:

sudo apt install php libapache2-mod-php php-mysql -y

Ubuntu 26.04 automatycznie wdroży najnowszą stabilną wersję PHP (obecnie z gałęzi 8.4) z oficjalnych repozytoriów. Pozwoli to na dynamiczne generowanie stron internetowych i zapewni pełną kompatybilność z nowoczesnymi systemami zarządzania treścią.

Wariant B: Instalacja stosu LEMP (Nginx, MySQL, PHP-FPM)

Stos LEMP różni się od LAMP zastosowaniem serwera Nginx zamiast Apache. Litera E reprezentuje angielską wymowę nazwy serwera (Engine-X). Wybierzesz ten wariant, jeśli zależy Ci na maksymalnej wydajności przy bardzo dużym natężeniu ruchu sieciowego.

Krok 1: Instalacja serwera Nginx

Zainstaluj serwer WWW Nginx:

sudo apt install nginx -y

Nginx słynie z minimalnego zużycia pamięci RAM pod obciążeniem. Zredukujesz koszty utrzymania infrastruktury, zachowując szybkie tempo ładowania witryny.

Następnie zezwól na ruch HTTP i HTTPS:

sudo ufw allow 'Nginx Full'

Komenda ta otworzy niezbędne porty dla ruchu szyfrowanego i nieszyfrowanego. Zapewnisz swoim klientom stałą dostępność do publikowanych zasobów.

Krok 2: Instalacja bazy danych MySQL

Proces instalacji i zabezpieczania bazy danych jest identyczny jak w przypadku stosu LAMP. Wykonaj kolejno komendy:

sudo apt install mysql-server -y
sudo mysql_secure_installation

Zabezpieczysz bazę danych przed próbami ataków sieciowych. Zyskasz stabilną platformę do natychmiastowego przetwarzania zapytań SQL.

Krok 3: Instalacja PHP-FPM i konfiguracja Nginx

Serwer Nginx nie posiada wbudowanego modułu do bezpośredniej interpretacji kodu PHP, dlatego zainstaluj usługę PHP-FPM (FastCGI Process Manager, czyli zaawansowany menedżer procesów PHP):

sudo apt install php-fpm php-mysql -y

PHP-FPM działa jako niezależny demon przetwarzający skrypty. Dzięki temu odciążysz serwer WWW, który skupi się wyłącznie na szybkim wydawaniu plików statycznych.

Skonfiguruj teraz domyślny plik konfiguracyjny Nginx, aby przekierowywał zapytania do PHP-FPM. Edytuj plik /etc/nginx/sites-available/default i upewnisz się, że zawiera odpowiedni blok obsługi indeksów oraz rozszerzeń .php:

Przykładowa konfiguracja:

server {
    listen 80;
    root /var/www/html;
    index index.php index.html index.htm;
    server_name twoja_domena.pl;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
    }
}

Po zapisaniu zmian sprawdź konfigurację:

sudo nginx -t

Jeżeli test zakończył się pomyślnie, uruchom ponownie serwer:

sudo systemctl restart nginx

Testowanie poprawnego działania serwera

Sprawdź działanie interpretacji PHP poprzez utworzenie pliku testowego w głównym katalogu serwera. Utworzysz plik za pomocą następującego polecenia:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

Następnie otwórz w przeglądarce:

http://twoj_adres_ip/info.php

Wyświetlenie strony z informacjami o PHP potwierdza poprawne działanie konfiguracji.

Uwaga

Nigdy nie zostawiaj pliku info.php na serwerze produkcyjnym po zakończeniu testów. Pozostawienie go to ogromne ryzyko bezpieczeństwa, ponieważ udostępnia on publicznie szczegółową architekturę Twojego środowiska.

Po zakończeniu testu usuniesz ten plik poniższą komendą:

sudo rm /var/www/html/info.php

Najczęstsze pytania (FAQ)

Który stos wybrać: LAMP czy LEMP?

Wybór zależy od specyfiki Twojego projektu i wymagań aplikacji. Stos LAMP oferuje łatwiejszą konfigurację dla osób przyzwyczajonych do tradycyjnych rozwiązań, podczas gdy LEMP zapewnia znacznie lepszą skalowalność pod dużym obciążeniem.

Wskazówka

Jeśli to Twój pierwszy serwer i zamierzasz korzystać z gotowych rozwiązań (np. skryptów wymagających plików .htaccess), LAMP będzie łatwiejszym wyborem na start.

Co zrobić, gdy strona wyświetla błąd 502 Bad Gateway w stosie LEMP?

Najczęściej oznacza to problem z komunikacją między Nginx a PHP-FPM.

Sprawdź status usługi:

sudo systemctl status php8.4-fpm

Upewnij się również, że ścieżka do gniazda unix w konfiguracji Nginx odpowiada rzeczywistej lokalizacji pliku .sock.

Jak podpiąć własną domenę do nowego serwera?

Skierujesz rekordy A w konfiguracji swojej domeny na adres IP serwera VPS, wykorzystując dedykowany panel klienta u swojego rejestratora. Jeśli napotkasz nieprzewidziane trudności, możesz szybko wysłać oficjalne zgłoszenie z panelu klienta, a wsparcie techniczne pomoże w poprawnej konfiguracji.