Instalacja i konfiguracja Apache2 z PHP-FPM – kompletny przewodnik dla Debian i Ubuntu

Apache2 + PHP-FPM – instalacja i konfiguracja krok po kroku | LAMP na Debian/Ubuntu
Opublikowano: 2026-01-28 00:00:00 Autor: Zespół Sferahost
Instalacja i konfiguracja Apache2 z PHP-FPM – kompletny przewodnik dla Debian i Ubuntu

Instalacja i konfiguracja Apache2 z PHP-FPM – przewodnik krok po kroku

W tym artykule dowiesz się, jak krok po kroku zainstalować i skonfigurować serwer Apache2 wraz z silnikiem interpretera PHP działającym w trybie FPM, jak ustawić własne virtualhosty dla różnych domen oraz jak zintegrować to z bazą danych (np. MariaDB) w popularnym stosie LAMP.

Na końcu artykułu znajduje się także FAQ – odpowiedzi na najczęściej zadawane pytania oraz propozycja serwera VPS, który idealnie nadaje się do hostingu stron opartych o Apache 2 i PHP-FPM.


1. Podstawowe pojęcia

  • Apache2 – popularny serwer HTTP, który odpowiada na zapytania przeglądarek i serwuje witryny internetowe.
  • PHP-FPM – “FastCGI Process Manager” – wydajny menadżer procesów PHP, poprawiający szybkość i skalowalność w porównaniu z tradycyjnym modułem mod_php.
  • VirtualHost – konfiguracja w Apache umożliwiająca obsługę wielu stron (wiązanych z różnymi domenami) na jednym serwerze.
  • Domena – adres, pod którym użytkownicy znajdują Twoją stronę (np. moja-strona.pl).
  • LAMP – skrót od Linux, Apache, MySQL/MariaDB, PHP – popularny stos technologii do hostingu aplikacji webowych.

2. Wymagania wstępne

Zakładamy, że masz dostęp do serwera z systemem Debian lub Ubuntu oraz konto z uprawnieniami sudo. Przyda się też własna domena wskazująca na adres IP serwera.


3. Instalacja Apache2

Połącz się z VPS przez SSH i wykonaj:

sudo apt update
sudo apt install apache2

Po instalacji sprawdź status:

sudo systemctl status apache2

Jeśli zobaczysz, że serwer działa – super!


4. Instalacja PHP i PHP-FPM

Instalujemy PHP oraz moduły, które przydadzą się do pracy z aplikacjami webowymi:

sudo apt install php php-fpm php-mysql libapache2-mod-fcgi

Sprawdź konfigurację PHP-FPM:

sudo systemctl status php*fpm

(Zamiast php*fpm może być np. php8.1-fpm – zależy od wersji PHP.)


5. Konfiguracja Apache2 do pracy z PHP-FPM

W Apache wyłączamy tradycyjny moduł PHP (mod_php), a włączamy proxy_fcgi:

sudo a2dismod php*
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php*fpm

Na koniec restart:

sudo systemctl restart apache2

Teraz Apache przekazuje żądania PHP do procesu PHP-FPM, co jest korzystne – szczególnie przy większym ruchu.


6. Tworzenie VirtualHost – krok po kroku

Virtualhost to “wirtualna strona” w Apache – pozwala na hostowanie wielu domen na jednym serwerze.

Przykładowa konfiguracja dla domeny moja-strona.pl:

sudo nano /etc/apache2/sites-available/moja-strona.pl.conf

    ServerName moja-strona.pl
    ServerAlias www.moja-strona.pl

    DocumentRoot /var/www/moja-strona.pl/public_html

    ErrorLog ${APACHE_LOG_DIR}/moja-strona_error.log
    CustomLog ${APACHE_LOG_DIR}/moja-strona_access.log combined

    
        AllowOverride All
        Require all granted
    

Tworzymy katalogi i nadajemy prawa:

sudo mkdir -p /var/www/moja-strona.pl/public_html
sudo chown -R $USER:$USER /var/www/moja-strona.pl
sudo chmod -R 755 /var/www/moja-strona.pl

Aktywujemy virtualhost:

sudo a2ensite moja-strona.pl.conf
sudo systemctl reload apache2

7. Dodanie bazy danych – MariaDB + phpMyAdmin

Instalacja MariaDB:

sudo apt install mariadb-server
sudo mysql_secure_installation

Logujemy się do MariaDB i tworzymy bazę danych:

sudo mysql -u root -p

CREATE DATABASE moja_strona_db;
CREATE USER 'uzytkownik'@'localhost' IDENTIFIED BY 'bezpieczne_haslo';
GRANT ALL PRIVILEGES ON moja_strona_db.* TO 'uzytkownik'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Instalacja phpMyAdmin (graficzny interfejs do zarządzania bazą):

sudo apt install phpmyadmin

Podczas instalacji wybieramy Apache2 i konfigurujemy użytkownika bazy.


8. Najlepsze praktyki bezpieczeństwa

  • Zawsze aktualizuj system: sudo apt update && sudo apt upgrade
  • Używaj certyfikatów SSL – np. Let's Encrypt (Certbot)
  • Ograniczaj dostęp do phpMyAdmin przez .htaccess lub firewall
  • Regularnie twórz kopie zapasowe danych

9. Dlaczego warto używać PHP-FPM z Apache2?

PHP-FPM (FastCGI Process Manager) oznacza...

  • Lepsza wydajność – procesy PHP są oddzielone od głównego procesu Apache, co zmniejsza ryzyko przeciążenia
  • Skalowalność – FPM zarządza pulą procesów PHP dynamicznie
  • Izolacja – różne aplikacje na jednym serwerze mogą mieć różne wersje PHP

BONUS - Konfiguracja SSL

Certyfikat SSL szyfruje połączenie między użytkownikiem a serwerem. Dzięki temu dane są bezpieczne, przeglądarki pokazują kłódkę przy adresie strony, a Google lepiej ocenia Twoją witrynę (czynnik SEO).

W tej sekcji pokażemy, jak wdrożyć darmowy certyfikat Let's Encrypt przy użyciu narzędzia Certbot na systemach Debian i Ubuntu.


Krok 1 – Wymagania wstępne

  • Domena wskazuje na adres IP serwera
  • Apache działa poprawnie
  • VirtualHost dla domeny jest już skonfigurowany
  • Porty 80 (HTTP) i 443 (HTTPS) są otwarte w firewallu
sudo ufw allow 80
sudo ufw allow 443
sudo ufw reload

Krok 2 – Instalacja Certbot

sudo apt update
sudo apt install certbot python3-certbot-apache

Sprawdzenie wersji:

certbot --version

Krok 3 – Automatyczne wygenerowanie i instalacja certyfikatu

Certbot potrafi sam wykryć konfigurację Apache i skonfigurować SSL automatycznie:

sudo certbot --apache

Podczas instalacji:

  1. Podaj adres e-mail
  2. Zaakceptuj regulamin Let's Encrypt
  3. Wybierz domenę z listy
  4. Wybierz opcję przekierowania HTTP → HTTPS (zalecane)

Certbot utworzy plik konfiguracyjny SSL, doda certyfikat i zrestartuje Apache.


Krok 4 – Sprawdzenie działania HTTPS

Wejdź w przeglądarce na adres:

https://twoja-domena.pl

Powinna być widoczna kłódka oznaczająca bezpieczne połączenie.


Krok 5 – Automatyczne odnawianie certyfikatu

Certyfikaty Let's Encrypt są ważne 90 dni. Certbot odnawia je automatycznie.

sudo certbot renew --dry-run

Sprawdzenie harmonogramu odnowień:

systemctl list-timers | grep certbot

Gdzie dodać nagłówki bezpieczeństwa SSL w Apache?

Po instalacji certyfikatu Certbot tworzy plik konfiguracyjny SSL dla Twojej domeny. Znajdziesz go tutaj:

/etc/apache2/sites-available/twoja-domena-le-ssl.conf

To właśnie w tym pliku należy dodać nagłówki bezpieczeństwa. Otwórz go:

sudo nano /etc/apache2/sites-available/twoja-domena-le-ssl.conf

Nagłówki należy umieścić wewnątrz sekcji VirtualHost na porcie 443, na przykład tak:


    ServerName twoja-domena.pl
    DocumentRoot /var/www/twoja-domena.pl/public_html

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/twoja-domena.pl/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/twoja-domena.pl/privkey.pem

    
        Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
        Header always set X-Content-Type-Options "nosniff"
        Header always set X-Frame-Options "SAMEORIGIN"
        Header always set X-XSS-Protection "1; mode=block"
        Header always set Referrer-Policy "strict-origin-when-cross-origin"
    

    ErrorLog ${APACHE_LOG_DIR}/ssl_error.log
    CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

Upewnij się, że moduł nagłówków jest włączony:

sudo a2enmod headers
sudo systemctl reload apache2

Co robią te nagłówki?

  • Strict-Transport-Security (HSTS) – wymusza używanie HTTPS
  • X-Content-Type-Options – blokuje zgadywanie typu pliku przez przeglądarkę
  • X-Frame-Options – chroni przed atakami clickjacking
  • X-XSS-Protection – dodatkowa ochrona przed atakami XSS
  • Referrer-Policy – ogranicza przesyłanie informacji o źródle ruchu

Gotowe – Twoja strona działa na bezpiecznym HTTPS

Po wykonaniu powyższych kroków Twoja strona:

  • używa szyfrowanego połączenia
  • ma poprawnie skonfigurowany certyfikat SSL
  • jest lepiej oceniana przez Google
  • jest zabezpieczona dodatkowymi nagłówkami bezpieczeństwa

10. Podsumowanie

Ten przewodnik pokazał, jak skonfigurować pełny stos LAMP z Apache2, PHP-FPM, bazą danych MariaDB i phpMyAdmin na Debianie/Ubuntu – od zera do działającego systemu. Dzięki PHP-FPM Twoje aplikacje są wydajniejsze, bardziej stabilne i łatwiejsze w zarządzaniu.


11. Oferta serwera VPS – idealna pod Apache2 i PHP-FPM

Jeżeli chcesz, by Twoja strona działała szybko i stabilnie – warto wybrać wydajny serwer VPS. Sprawdź ofertę:

VPS NVMe Litosfera – szybkie dyski NVMe i pełna kontrola nad środowiskiem

Serwer VPS to własne środowisko, które możesz dowolnie konfigurować – idealne do stron opartych o Apache2, PHP-FPM i bazy danych. Dzięki szybkim dyskom NVMe Twój serwer działa płynniej, a czas ładowania stron spada.

FAQ

Czym jest virtualhost?

To konfiguracja w Apache, która pozwala obsługiwać wiele domen na jednym serwerze.

Co to jest PHP-FPM?

Mechanizm uruchamiania PHP w trybie FastCGI – bardziej wydajny niż tradycyjny moduł PHP.

Czy potrzebuję VPS do hostowania strony?

VPS daje większą kontrolę i skalowalność niż hosting współdzielony – szczególnie przy większym ruchu.