🚀 Instalacja i konfiguracja LAMP na Ubuntu 22.04 - Kompletny przewodnik

Stos LAMP (Linux, Apache, MySQL, PHP) to jedno z najpopularniejszych środowisk do hostowania aplikacji internetowych. W tym kompleksowym przewodniku przeprowadzimy Cię krok po kroku przez proces instalacji i konfiguracji wszystkich komponentów stosu LAMP na Ubuntu 22.04. Niezależnie od tego, czy planujesz hostować własną stronę, blog WordPress, czy niestandardową aplikację PHP, ten poradnik dostarczy Ci solidnych podstaw do stworzenia wydajnego i bezpiecznego środowiska hostingowego.

⚡ Ekspresowe Podsumowanie:

  1. Aktualizacja systemu i instalacja Apache - pierwszy krok do skonfigurowania serwera WWW.
  2. Instalacja i zabezpieczanie MySQL/MariaDB - właściwa konfiguracja bazy danych.
  3. Instalacja PHP i niezbędnych modułów - przygotowanie środowiska do uruchamiania aplikacji PHP.
  4. Konfiguracja wirtualnych hostów - obsługa wielu domen na jednym serwerze.

🗺️ Spis Treści - Twoja Mapa Drogowa


🔧 Przygotowanie systemu Ubuntu 22.04

Przed rozpoczęciem instalacji LAMP, musimy upewnić się, że nasz system jest zaktualizowany i posiada wszystkie niezbędne narzędzia.

Aktualizacja systemu

Pierwszym krokiem jest zawsze aktualizacja listy pakietów i instalacja dostępnych aktualizacji:

sudo apt update
sudo apt upgrade -y

Instalacja podstawowych narzędzi

Zainstalujmy kilka przydatnych narzędzi, które mogą być potrzebne podczas konfiguracji serwera:

sudo apt install -y curl wget vim software-properties-common apt-transport-https ca-certificates gnupg

✨ Pro Tip: Używanie flagi -y automatycznie potwierdza instalację bez konieczności dodatkowego potwierdzania, co jest przydatne podczas zautomatyzowanych instalacji.

🌐 Instalacja i konfiguracja Apache

Apache HTTP Server to jeden z najpopularniejszych serwerów WWW na świecie. Instalacja na Ubuntu 22.04 jest prosta i szybka.

Instalacja Apache

sudo apt install -y apache2

Konfiguracja zapory sieciowej

Jeśli używasz firewalla UFW (Uncomplicated Firewall), musisz otworzyć odpowiednie porty:

sudo ufw allow 'Apache Full'
sudo ufw allow ssh
sudo ufw enable
sudo ufw status

To otworzy porty 80 (HTTP) i 443 (HTTPS) oraz port SSH dla zdalnego dostępu.

Sprawdzenie działania Apache

Po instalacji Apache powinien automatycznie się uruchomić. Sprawdźmy jego status:

sudo systemctl status apache2

Możesz również sprawdzić działanie Apache, otwierając w przeglądarce adres IP serwera lub http://localhost, jeśli pracujesz lokalnie. Powinieneś zobaczyć domyślną stronę Apache.

Podstawowa konfiguracja Apache

Apache przechowuje swoje główne pliki konfiguracyjne w katalogu /etc/apache2/. Najważniejsze z nich to:

  • /etc/apache2/apache2.conf - główny plik konfiguracyjny
  • /etc/apache2/sites-available/ - katalog z konfiguracjami dostępnych witryn
  • /etc/apache2/sites-enabled/ - katalog z aktywowanymi witrynami
  • /etc/apache2/mods-available/ i /etc/apache2/mods-enabled/ - katalogi z modułami

Domyślny katalog główny dla witryn to /var/www/html/.

🗄️ Instalacja i konfiguracja MySQL/MariaDB

MySQL lub jego fork MariaDB to popularne systemy zarządzania relacyjnymi bazami danych używane przez wiele aplikacji internetowych.

Instalacja MariaDB

W Ubuntu 22.04 polecamy instalację MariaDB, która jest w pełni kompatybilna z MySQL, ale oferuje lepszą wydajność i bezpieczeństwo:

sudo apt install -y mariadb-server

Zabezpieczanie instalacji MariaDB

Po instalacji należy zabezpieczyć instalację MariaDB za pomocą wbudowanego skryptu:

sudo mysql_secure_installation

Podczas wykonywania tego skryptu:

  • Zostaniesz zapytany o hasło root (domyślnie jest puste, więc po prostu naciśnij Enter)
  • Zdecyduj, czy chcesz ustawić hasło dla użytkownika root (zalecane)
  • Usuń anonimowych użytkowników (zalecane)
  • Wyłącz logowanie roota z zewnątrz (zalecane)
  • Usuń testową bazę danych (zalecane)
  • Przeładuj tabele uprawnień (zalecane)

Uwaga: W nowszych wersjach MariaDB i MySQL, użytkownik root jest domyślnie skonfigurowany do używania uwierzytelniania przez socket Unix, co oznacza, że możesz zalogować się jako root tylko przez lokalny terminal używając sudo.

Logowanie do MariaDB

Aby zalogować się do konsoli MariaDB, użyj polecenia:

sudo mysql

Lub jeśli ustawiłeś hasło dla użytkownika root:

mysql -u root -p

Tworzenie nowego użytkownika i bazy danych

Dobrą praktyką jest tworzenie oddzielnych użytkowników i baz danych dla każdej aplikacji. Oto jak to zrobić:

CREATE DATABASE nazwa_bazy_danych;
CREATE USER 'nazwa_uzytkownika'@'localhost' IDENTIFIED BY 'silne_haslo';
GRANT ALL PRIVILEGES ON nazwa_bazy_danych.* TO 'nazwa_uzytkownika'@'localhost';
FLUSH PRIVILEGES;
EXIT;

✨ Pro Tip: Zawsze używaj silnych, unikalnych haseł dla każdego użytkownika bazy danych. Nigdy nie używaj tych samych danych uwierzytelniających dla różnych aplikacji.

💻 Instalacja i konfiguracja PHP

PHP to język programowania używany do tworzenia dynamicznych stron internetowych i aplikacji.

Instalacja PHP z najczęściej używanymi modułami

sudo apt install -y php libapache2-mod-php php-mysql php-common php-cli php-json php-curl php-mbstring php-zip php-gd php-xml php-pear php-bcmath

Sprawdzenie wersji PHP

php -v

Konfiguracja PHP

Główny plik konfiguracyjny PHP znajduje się w /etc/php/8.1/apache2/php.ini (wersja może się różnić).

Oto kilka przydatnych ustawień PHP, które warto zmodyfikować dla lepszej wydajności i bezpieczeństwa:

sudo vim /etc/php/8.1/apache2/php.ini

Znajdź i zmodyfikuj następujące linie:

; Zwiększ limit pamięci (przydatne dla większych aplikacji)
memory_limit = 256M

; Zwiększ maksymalny rozmiar przesyłanych plików
upload_max_filesize = 64M
post_max_size = 64M

; Ustaw strefę czasową
date.timezone = Europe/Warsaw

; Wyłącz wyświetlanie błędów na produkcji
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

Po zmianie konfiguracji, zrestartuj Apache:

sudo systemctl restart apache2

Testowanie PHP

Aby sprawdzić, czy PHP działa poprawnie, utwórz prosty plik testowy:

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

Następnie otwórz w przeglądarce http://adres-ip-serwera/info.php lub http://localhost/info.php. Powinieneś zobaczyć stronę z informacjami o instalacji PHP.

Uwaga: Ze względów bezpieczeństwa, usuń plik info.php po zakończeniu testów:

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

🌍 Konfiguracja wirtualnych hostów Apache

Wirtualne hosty umożliwiają hostowanie wielu domen na jednym serwerze. Oto jak skonfigurować wirtualny host:

Tworzenie struktury katalogów

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

Tworzenie strony testowej

echo "<html><head><title>Witaj na przyklad.pl</title></head><body><h1>Sukces! Wirtualny host działa!</h1></body></html>" > /var/www/przyklad.pl/public_html/index.html

Tworzenie pliku konfiguracyjnego wirtualnego hosta

sudo vim /etc/apache2/sites-available/przyklad.pl.conf

Dodaj następującą konfigurację:

<VirtualHost *:80>
    ServerAdmin webmaster@przyklad.pl
    ServerName przyklad.pl
    ServerAlias www.przyklad.pl
    DocumentRoot /var/www/przyklad.pl/public_html

    <Directory /var/www/przyklad.pl/public_html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/przyklad.pl-error.log
    CustomLog ${APACHE_LOG_DIR}/przyklad.pl-access.log combined
</VirtualHost>

Aktywacja wirtualnego hosta i włączenie modułu rewrite

sudo a2ensite przyklad.pl.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

Konfiguracja lokalnego systemu DNS (opcjonalnie)

Jeśli pracujesz lokalnie, dodaj wpis do pliku hosts:

sudo vim /etc/hosts

Dodaj linię:

127.0.0.1   przyklad.pl www.przyklad.pl

🔒 Instalacja phpMyAdmin (opcjonalnie)

phpMyAdmin to narzędzie do zarządzania bazami danych MySQL/MariaDB przez przeglądarkę.

Instalacja phpMyAdmin

sudo apt install -y phpmyadmin

Podczas instalacji:

  • Wybierz serwer WWW (apache2)
  • Wybierz, czy chcesz skonfigurować bazę danych dla phpMyAdmin (zalecane)
  • Podaj hasło dla phpMyAdmin

Konfiguracja dodatkowego zabezpieczenia

Aby zwiększyć bezpieczeństwo, możesz ograniczyć dostęp do phpMyAdmin przez nazwę użytkownika i hasło Apache:

sudo vim /etc/apache2/conf-available/phpmyadmin.conf

Znajdź linię z <Directory /usr/share/phpmyadmin> i dodaj poniższy kod przed zamykającym znacznikiem </Directory>:

    AllowOverride All
    AuthType Basic
    AuthName "Restricted Access"
    AuthUserFile /etc/phpmyadmin/.htpasswd
    Require valid-user

Utwórz użytkownika i hasło dla ochrony BasicAuth:

sudo mkdir -p /etc/phpmyadmin
sudo htpasswd -c /etc/phpmyadmin/.htpasswd admin_user

Zrestartuj Apache:

sudo systemctl restart apache2

Teraz, aby uzyskać dostęp do phpMyAdmin, będziesz musiał podać dodatkowe dane uwierzytelniające oprócz danych logowania MySQL.

🔄 Instalacja opcjonalnych modułów i narzędzi

W zależności od potrzeb, możesz zainstalować dodatkowe moduły i narzędzia:

Dodatkowe moduły PHP

sudo apt install -y php-imagick php-memcached php-redis php-intl

Instalacja Composer (menedżer zależności PHP)

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Instalacja Redis (opcjonalnie)

Redis to wydajny magazyn danych w pamięci, często używany jako pamięć podręczna:

sudo apt install -y redis-server
sudo systemctl enable redis-server

Instalacja Memcached (opcjonalnie)

Memcached to inny system cache'owania:

sudo apt install -y memcached libmemcached-tools
sudo systemctl enable memcached

🔍 Testowanie i rozwiązywanie problemów

Sprawdzanie składni konfiguracji Apache

sudo apache2ctl configtest

Sprawdzanie logów Apache

sudo tail -f /var/log/apache2/error.log

Sprawdzanie logów PHP

sudo tail -f /var/log/php_errors.log

Sprawdzanie statusu usług

sudo systemctl status apache2
sudo systemctl status mariadb

Typowe problemy i rozwiązania

Problem Rozwiązanie
Apache nie uruchamia się Sprawdź logi błędów: sudo tail -f /var/log/apache2/error.log
Problemy z prawami dostępu Upewnij się, że katalogi mają właściwe prawa: sudo chown -R www-data:www-data /var/www/przyklad.pl
Moduł PHP nie działa Upewnij się, że moduł jest zainstalowany i włączony: sudo a2enmod php8.1
Problemy z bazą danych Sprawdź logi MariaDB: sudo tail -f /var/log/mysql/error.log

🛡️ Zabezpieczanie serwera LAMP

Aktualizacja komponentów

Regularnie aktualizuj system i komponenty LAMP:

sudo apt update
sudo apt upgrade

Konfiguracja SSL/TLS (HTTPS)

Zainstaluj Let's Encrypt certbot:

sudo apt install -y certbot python3-certbot-apache

Uzyskaj certyfikat SSL:

sudo certbot --apache -d przyklad.pl -d www.przyklad.pl

Ograniczanie dostępu do plików .htaccess

Dodaj do głównej konfiguracji Apache:

<Directory /var/www/>
    AllowOverride All
    Options -Indexes +FollowSymLinks
    Require all granted
</Directory>

Regularne kopie zapasowe

Skonfiguruj regularne kopie zapasowe bazy danych:

sudo mkdir -p /var/backups/mysql

Utwórz skrypt do tworzenia kopii zapasowych:

sudo vim /usr/local/bin/backup-mysql.sh

Dodaj zawartość:

#!/bin/bash
DATE=$(date +%Y-%m-%d)
mysqldump --all-databases -u root | gzip > /var/backups/mysql/all-databases-$DATE.sql.gz
find /var/backups/mysql -name "*.sql.gz" -mtime +7 -delete

Nadaj uprawnienia do wykonania:

sudo chmod +x /usr/local/bin/backup-mysql.sh

Dodaj zadanie cron:

echo "0 2 * * * root /usr/local/bin/backup-mysql.sh" | sudo tee -a /etc/crontab

🏁 Podsumowanie - Gotowy na Sukces?

Gratulacje! Pomyślnie zainstalowałeś i skonfigurowałeś stos LAMP na Ubuntu 22.04. Twój serwer jest teraz gotowy do hostowania aplikacji internetowych, blogów WordPress, sklepów internetowych i wielu innych projektów.

Pamiętaj o przestrzeganiu najlepszych praktyk bezpieczeństwa, takich jak:

  • Regularne aktualizacje systemu i komponentów LAMP
  • Używanie silnych haseł i ograniczanie dostępu
  • Konfiguracja HTTPS dla wszystkich witryn
  • Regularne tworzenie kopii zapasowych
  • Monitorowanie logów systemu i aplikacji

✅ Twoja Checklista:

  • 🔄 Regularnie aktualizuj system i komponenty LAMP
  • 🔒 Zabezpiecz wszystkie usługi silnymi hasłami
  • 🌐 Skonfiguruj HTTPS dla swoich witryn
  • 💾 Utwórz harmonogram regularnych kopii zapasowych
  • 📊 Monitoruj wydajność i bezpieczeństwo serwera

🚀 Call to Action

Potrzebujesz profesjonalnego hostingu z preinstalowanym stosem LAMP i pełnym wsparciem technicznym? Sprawdź naszą ofertę hostingu VPS i skorzystaj z promocji dla nowych klientów!

Nasze serwery VPS są zoptymalizowane pod aplikacje LAMP i oferują znacznie wyższą wydajność niż tradycyjny hosting współdzielony.

❓ FAQ - Odpowiedzi na Twoje Pytania

Jak sprawdzić, która wersja PHP jest aktualnie używana przez Apache?
Użyj polecenia php -v lub utwórz plik z <?php phpinfo(); ?> i otwórz go w przeglądarce.

Czy mogę zainstalować kilka wersji PHP jednocześnie?
Tak, możesz zainstalować wiele wersji PHP i przełączać się między nimi za pomocą a2dismod i a2enmod.

Jak zmienić domyślną wersję PHP w Apache?

sudo a2dismod php8.0
sudo a2enmod php8.1
sudo systemctl restart apache2

Jak zabezpieczyć phpMyAdmin przed atakami brute force?
Zalecamy używanie dodatkowej warstwy uwierzytelniania (jak pokazano w poradniku) oraz rozważenie zmiany domyślnej ścieżki dostępu (/phpmyadmin).

Jakie są alternatywy dla LAMP?
Popularne alternatywy to LEMP (Linux, Nginx, MySQL, PHP) oraz MEAN/MERN (MongoDB, Express.js, Angular/React, Node.js).

Czy ten artykuł był pomocny?

Wróć do listy wpisów

Twoja strona WordPress działa wolno?

Sprawdź nasz hosting WordPress z ultraszybkimi dyskami NVMe i konfiguracją serwera zoptymalizowaną pod kątem wydajności. Doświadcz różnicy już dziś!

Sprawdź ofertę hostingu
30-dniowa gwarancja zwrotu pieniędzy