LAMP Stack — instalacja i konfiguracja na Ubuntu
Opublikowano: 9 kwietnia 2026 · Kategoria: VPS / Hosting
LAMP (Linux + Apache + MySQL + PHP) to klasyczny i sprawdzony stos technologiczny do
hostowania aplikacji webowych. Napędza większość instalacji WordPress, Drupal, Joomla i
niezliczone aplikacje PHP na świecie. Mimo że Nginx zyskuje popularność, Apache wciąż
wyróżnia się elastycznością (zwłaszcza .htaccess) i szeroką kompatybilnością.
Ten przewodnik przeprowadzi Cię przez pełną instalację na Ubuntu 22.04/24.04.
Krok 1: Instalacja Apache
apt update apt install -y apache2 # Sprawdzenie statusu systemctl status apache2 # Firewall — otwórz port 80 i 443 ufw allow 'Apache Full' ufw status # Test — otwórz http://IP_TWOJEGO_VPS w przeglądarce
Krok 2: Instalacja MySQL
apt install -y mysql-server # Zabezpieczenie instalacji (URUCHOM KONIECZNIE!) mysql_secure_installation # Kreator pyta o: # - poziom walidacji hasła (2 = silne) # - nowe hasło roota # - usunięcie anonimowych użytkowników (Y) # - wyłączenie zdalnego logowania root (Y) # - usunięcie bazy test (Y) # - reload uprawnień (Y) # Sprawdzenie wersji mysql --version
# Tworzenie bazy i użytkownika dla aplikacji mysql -u root -p CREATE DATABASE moja_aplikacja CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'silne-haslo-bazy'; GRANT ALL PRIVILEGES ON moja_aplikacja.* TO 'app_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
Krok 3: Instalacja PHP
# PHP 8.2 z najpopularniejszymi modułami
apt install -y php8.2 php8.2-cli php8.2-fpm \
php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring \
php8.2-xml php8.2-zip php8.2-intl php8.2-bcmath
# Sprawdzenie wersji
php --version
# Moduł Apache dla PHP (mod_php)
apt install -y libapache2-mod-php8.2
# Restart Apache
systemctl restart apache2 Krok 4: Apache Virtual Host
Każda domena powinna mieć własny plik VirtualHost w /etc/apache2/sites-available/:
# /etc/apache2/sites-available/moja-domena.pl.conf
<VirtualHost *:80>
ServerName moja-domena.pl
ServerAlias www.moja-domena.pl
DocumentRoot /var/www/moja-domena.pl/public
<Directory /var/www/moja-domena.pl/public>
AllowOverride All # zezwól na .htaccess
Require all granted
Options -Indexes # wyłącz listowanie katalogów
</Directory>
ErrorLog ${APACHE_LOG_DIR}/moja-domena-error.log
CustomLog ${APACHE_LOG_DIR}/moja-domena-access.log combined
</VirtualHost> # Utwórz katalog i ustaw uprawnienia mkdir -p /var/www/moja-domena.pl/public chown -R www-data:www-data /var/www/moja-domena.pl # Aktywacja VirtualHost a2ensite moja-domena.pl.conf # Wyłączenie domyślnej konfiguracji (opcjonalne) a2dissite 000-default.conf # Włącz mod_rewrite (wymagany przez WordPress) a2enmod rewrite # Sprawdzenie konfiguracji apache2ctl configtest # Przeładowanie Apache systemctl reload apache2
PHP-FPM z mpm_event (wydajność)
Domyślna konfiguracja Apache używa mod_php z mpm_prefork — stara architektura,
która tworzy nowy proces na każde połączenie. Lepszym rozwiązaniem jest mpm_event + PHP-FPM:
# Przełącz z prefork na event a2dismod php8.2 mpm_prefork a2enmod mpm_event proxy_fcgi setenvif # Włącz PHP-FPM handler a2enconf php8.2-fpm # Uruchom PHP-FPM systemctl enable php8.2-fpm systemctl start php8.2-fpm # Restart Apache systemctl restart apache2 # Sprawdzenie czy PHP-FPM jest aktywny systemctl status php8.2-fpm
Testowanie instalacji PHP
# Utwórz testowy plik PHP echo "<?php phpinfo(); ?>" > /var/www/moja-domena.pl/public/info.php # Otwórz http://moja-domena.pl/info.php # Powinnaś zobaczyć stronę z informacjami o PHP # Po teście USUŃ plik — ujawnia konfigurację serwera! rm /var/www/moja-domena.pl/public/info.php
Bezpieczeństwo Apache
# /etc/apache2/conf-available/security.conf # Ukryj wersję Apache ServerTokens Prod ServerSignature Off # Wyłącz TRACE (ochrona przed XST) TraceEnable Off # Nagłówki bezpieczeństwa Header always set X-Content-Type-Options nosniff Header always set X-Frame-Options SAMEORIGIN Header always set X-XSS-Protection "1; mode=block"
# Włącz moduł headers (dla nagłówków bezpieczeństwa) a2enmod headers systemctl reload apache2
LAMP vs LEMP — kiedy co wybrać
| Cecha | LAMP (Apache) | LEMP (Nginx) |
|---|---|---|
| .htaccess | Pełne wsparcie | Brak (trzeba przepisać na server block) |
| Wydajność statycznych plików | Dobra | Lepsza |
| Zużycie RAM | Wyższe (prefork) | Niższe (event-driven) |
| WordPress | Działa natywnie | Wymaga konfiguracji fastcgi |
| Dokumentacja i support | Bardzo duże community | Duże community |