- 1. Podstawowe pojęcia
- 2. Wymagania wstępne
- 3. Instalacja Apache2
- 4. Instalacja PHP i PHP-FPM
- 5. Konfiguracja Apache2 do pracy z PHP-FPM
- 6. Tworzenie VirtualHost – krok po kroku
- 7. Dodanie bazy danych – MariaDB + phpMyAdmin
- 8. Najlepsze praktyki bezpieczeństwa
- 9. Dlaczego warto używać PHP-FPM z Apache2?
- BONUS - Konfiguracja SSL
- Krok 1 – Wymagania wstępne
- Krok 2 – Instalacja Certbot
- Krok 3 – Automatyczne wygenerowanie i instalacja certyfikatu
- Krok 4 – Sprawdzenie działania HTTPS
- Krok 5 – Automatyczne odnawianie certyfikatu
- Gdzie dodać nagłówki bezpieczeństwa SSL w Apache?
- Co robią te nagłówki?
- Gotowe – Twoja strona działa na bezpiecznym HTTPS
- 10. Podsumowanie
- 11. Oferta serwera VPS – idealna pod Apache2 i PHP-FPM
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:
- Podaj adres e-mail
- Zaakceptuj regulamin Let's Encrypt
- Wybierz domenę z listy
- 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.
