🚀 Jak zainstalować Linux, Apache, MySQL, PHP (LAMP) stack na Ubuntu 20.04

Stos LAMP (Linux, Apache, MySQL, PHP) to potężna kombinacja technologii open-source, która stanowi podstawę dla większości dynamicznych stron i aplikacji internetowych. Ten szczegółowy przewodnik przeprowadzi Cię krok po kroku przez instalację i konfigurację pełnego środowiska LAMP na Ubuntu 20.04, dając Ci solidną podstawę pod tworzenie nowoczesnych aplikacji webowych.

⚡ Ekspresowe Podsumowanie:

  1. Aktualizacja systemu Ubuntu 20.04 - Zawsze zaczynaj od aktualnego systemu.
  2. Instalacja Apache - Konfiguracja serwera WWW wraz z podstawowymi ustawieniami bezpieczeństwa.
  3. Konfiguracja MySQL - Instalacja bazy danych z zabezpieczeniami i optymalizacją wydajności.
  4. Wdrożenie PHP - Instalacja interpretera PHP i niezbędnych modułów dla aplikacji webowych.

🗺️ Spis Treści - Twoja Mapa Drogowa


📋 Przygotowanie środowiska Ubuntu 20.04

Przed instalacją stosu LAMP, konieczne jest odpowiednie przygotowanie systemu Ubuntu 20.04. Upewnij się, że pracujesz na czystej instalacji lub na serwerze z wystarczającymi uprawnieniami.

Aktualizacja systemu

Pierwszym krokiem jest aktualizacja repozytoriów pakietów i istniejącego oprogramowania:

sudo apt update
sudo apt upgrade -y

Ten krok zapewnia, że wszystkie pozostałe pakiety systemowe są aktualne, co zmniejsza ryzyko konfliktów podczas instalacji komponentów LAMP.

Instalacja podstawowych narzędzi

Zainstaluj kilka przydatnych narzędzi, które będą pomocne podczas konfiguracji:

sudo apt install -y software-properties-common curl git unzip

Konfiguracja firewalla

Dla zwiększenia bezpieczeństwa, zalecamy skonfigurowanie podstawowego firewalla UFW. Oto jak to zrobić:

# Instalacja UFW, jeśli nie jest zainstalowany
sudo apt install -y ufw

# Konfiguracja domyślnych zasad
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Zezwolenie na SSH (aby nie stracić dostępu do serwera)
sudo ufw allow ssh

# Póki co nie włączamy firewalla, zrobimy to po konfiguracji Apache

✨ Pro Tip: Zawsze upewnij się, że reguła SSH jest aktywna przed włączeniem firewalla, aby uniknąć zablokowania dostępu do serwera.

🌐 Instalacja i konfiguracja Apache

Apache HTTP Server to jeden z najpopularniejszych serwerów WWW na świecie. Jest wydajny, niezawodny i wysoce konfigurowalny.

Instalacja Apache

Instalacja Apache w Ubuntu 20.04 jest prosta:

sudo apt install -y apache2

Po zakończeniu instalacji, Apache powinien uruchomić się automatycznie. Możesz sprawdzić jego status za pomocą:

sudo systemctl status apache2

Powinieneś zobaczyć komunikat wskazujący, że usługa jest aktywna (running).

Konfiguracja firewalla dla Apache

Teraz musimy zezwolić na ruch HTTP i HTTPS przez firewall:

# Zezwolenie na HTTP (port 80)
sudo ufw allow 'Apache'

# Zezwolenie na HTTPS (port 443)
sudo ufw allow 'Apache Full'

# Włączenie firewalla
sudo ufw enable

Po włączeniu firewalla, sprawdź jego status:

sudo ufw status

Powinieneś zobaczyć, że reguły dla HTTP, HTTPS i SSH są aktywne.

Sprawdzenie działania Apache

Aby sprawdzić, czy Apache działa poprawnie, otwórz przeglądarkę i przejdź do adresu IP swojego serwera:

http://twój_adres_ip

Powinieneś zobaczyć domyślną stronę Apache.

Jeśli nie znasz swojego adresu IP, możesz go sprawdzić używając:

ip addr show

lub

curl -4 icanhazip.com

Podstawowa konfiguracja Apache

Teraz skonfigurujmy kilka podstawowych ustawień Apache dla lepszej wydajności i bezpieczeństwa:

1. Ustawienie ServerName

Aby uniknąć ostrzeżeń podczas restartu Apache, dodaj dyrektywę ServerName do pliku konfiguracyjnego:

sudo nano /etc/apache2/apache2.conf

Na końcu pliku dodaj:

ServerName twój_serwer.domena.pl

lub, jeśli nie masz domeny:

ServerName localhost

2. Dostosowanie wydajności Apache

Edytuj plik mpm_prefork.conf, aby dostosować liczbę procesów Apache do zasobów serwera:

sudo nano /etc/apache2/mods-available/mpm_prefork.conf

Dostosuj następujące wartości w zależności od dostępnej pamięci RAM:

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      150
    MaxConnectionsPerChild   0
</IfModule>

3. Włączenie przydatnych modułów

Włączmy kilka przydatnych modułów Apache:

# Moduł do kompresji - zmniejsza ilość przesyłanych danych
sudo a2enmod deflate

# Moduł pamięci podręcznej - poprawia wydajność
sudo a2enmod expires

# Moduł do przepisywania URL-i - niezbędny dla wielu aplikacji
sudo a2enmod rewrite

# Moduł bezpieczeństwa - chroni przed pewnymi typami ataków
sudo a2enmod headers

Po włączeniu modułów, zrestartuj Apache:

sudo systemctl restart apache2

Uwaga: Po każdej zmianie konfiguracji Apache, warto sprawdzić, czy nie zawiera ona błędów, używając polecenia sudo apache2ctl configtest przed restartem serwera.

🗄️ Instalacja i zabezpieczenie MySQL

MySQL to popularny system zarządzania relacyjnymi bazami danych, który będzie przechowywać dane dla aplikacji webowych.

Instalacja MySQL

Zainstaluj serwer MySQL:

sudo apt install -y mysql-server

Po zakończeniu instalacji, sprawdź czy MySQL działa:

sudo systemctl status mysql

Zabezpieczenie instalacji MySQL

MySQL w Ubuntu 20.04 domyślnie jest skonfigurowany z polityką uwierzytelniania auth_socket, która nie wymaga hasła dla użytkownika root podczas łączenia się z konsoli systemowej. Jest to bezpieczne dla środowiska deweloperskiego, ale zalecamy uruchomienie skryptu zabezpieczającego, aby wzmocnić ogólne bezpieczeństwo:

sudo mysql_secure_installation

Skrypt przeprowadzi Cię przez kilka pytań:

  1. Validate Password Component (Komponent Walidacji Haseł): zalecamy włączenie (Y) dla środowisk produkcyjnych i wybór przynajmniej średniego poziomu bezpieczeństwa (1).
  2. Ustaw hasło dla użytkownika root: wybierz silne hasło.
  3. Usuń anonimowych użytkowników: zalecamy usunięcie (Y).
  4. Wyłącz zdalny dostęp root: zalecamy wyłączenie (Y).
  5. Usuń testową bazę danych: zalecamy usunięcie (Y).
  6. Przeładuj tabele uprawnień: zalecamy przeładowanie (Y).

Zmiana metody uwierzytelniania dla użytkownika root (opcjonalnie)

Jeśli chcesz używać hasła zamiast uwierzytelniania socket, możesz zmienić metodę uwierzytelniania:

sudo mysql

W konsoli MySQL, wykonaj:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'twoje_silne_hasło';
FLUSH PRIVILEGES;
EXIT;

Tworzenie nowego użytkownika i bazy danych

Dobrą praktyką jest utworzenie dedykowanego użytkownika i bazy danych dla każdej aplikacji, zamiast używania konta root:

sudo mysql

W konsoli MySQL, wykonaj:

CREATE DATABASE nazwa_bazy_danych;
CREATE USER 'nazwa_użytkownika'@'localhost' IDENTIFIED BY 'silne_hasło';
GRANT ALL PRIVILEGES ON nazwa_bazy_danych.* TO 'nazwa_użytkownika'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Dostrajanie wydajności MySQL

Dla lepszej wydajności, możemy zoptymalizować konfigurację MySQL. Utwórz plik konfiguracyjny:

sudo nano /etc/mysql/conf.d/mysql-custom.cnf

Dodaj następujące ustawienia (dostosuj je do ilości pamięci RAM na serwerze):

[mysqld]
# Bufor dla indeksów i danych
innodb_buffer_pool_size = 256M

# Bufor zapytań
query_cache_size = 64M
query_cache_limit = 2M

# Maksymalna liczba jednoczesnych połączeń
max_connections = 100

# Timeout dla nieaktywnych połączeń
wait_timeout = 600
interactive_timeout = 600

# Rozmiar logu binlogu
max_binlog_size = 100M

# Character set
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

Po zapisaniu pliku, zrestartuj MySQL:

sudo systemctl restart mysql

🐘 Instalacja i konfiguracja PHP

PHP to język skryptowy po stronie serwera, który będzie przetwarzać dynamiczną zawartość dla aplikacji webowych.

Instalacja PHP i podstawowych modułów

Zainstaluj PHP wraz 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-xml php-zip php-gd php-intl

Po instalacji, sprawdź zainstalowaną wersję PHP:

php -v

Konfiguracja PHP dla lepszej wydajności i bezpieczeństwa

Edytuj główny plik konfiguracyjny PHP:

sudo nano /etc/php/7.4/apache2/php.ini

Znajdź i zmień następujące wartości (możesz użyć CTRL+W, aby wyszukać):

; Maksymalny rozmiar przesyłanych plików
upload_max_filesize = 32M
post_max_size = 48M

; Maksymalny czas wykonania skryptu
max_execution_time = 60
max_input_time = 60

; Pamięć przydzielana dla skryptów PHP
memory_limit = 256M

; Ukryj wersję PHP dla bezpieczeństwa
expose_php = Off

; Włącz mechanizm OPcache dla lepszej wydajności
opcache.enable = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 60

Po zapisaniu zmian, zrestartuj Apache:

sudo systemctl restart apache2

Instalacja dodatkowych modułów PHP (opcjonalnie)

W zależności od aplikacji, które będziesz używać, możesz potrzebować dodatkowych modułów PHP:

# Dla CMS-ów jak WordPress
sudo apt install -y php-imagick

# Dla aplikacji używających bazy danych SQLite
sudo apt install -y php-sqlite3

# Dla aplikacji używających Redis jako pamięć podręczną
sudo apt install -y php-redis

# Dla aplikacji wymagających wysyłania e-maili
sudo apt install -y php-imap

Priorytetyzacja plików PHP w Apache

Domyślnie, Apache najpierw szuka pliku index.html, a następnie index.php. Aby zmienić tę kolejność, edytuj plik:

sudo nano /etc/apache2/mods-enabled/dir.conf

Zmień dyrektywę DirectoryIndex tak, aby index.php był na pierwszym miejscu:

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Zapisz zmiany i zrestartuj Apache:

sudo systemctl restart apache2

🔧 Testowanie i weryfikacja instalacji LAMP

Po zakończeniu instalacji wszystkich komponentów, warto przeprowadzić testy, aby upewnić się, że wszystko działa poprawnie.

Testowanie PHP

Utwórz prosty plik PHP, aby sprawdzić, czy Apache poprawnie przetwarza skrypty PHP:

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

Dodaj następujący kod:

<?php
phpinfo();
?>

Teraz otwórz przeglądarkę i przejdź do:

http://twój_adres_ip/info.php

Powinieneś zobaczyć stronę z informacjami o konfiguracji PHP. Ta strona zawiera szczegółowe informacje o PHP i jego modułach.

Uwaga: Plik info.php zawiera wrażliwe informacje o twojej konfiguracji. Po zakończeniu testowania, zalecamy jego usunięcie:

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

Testowanie MySQL z PHP

Utwórz prosty skrypt PHP, który łączy się z bazą danych MySQL:

sudo nano /var/www/html/mysql_test.php

Dodaj następujący kod (zastąp dane dostępowe własnymi):

<?php
$host = 'localhost';
$user = 'nazwa_użytkownika';
$password = 'silne_hasło';
$database = 'nazwa_bazy_danych';

$conn = new mysqli($host, $user, $password, $database);

if ($conn->connect_error) {
    die("Błąd połączenia: " . $conn->connect_error);
}

echo "Połączenie z MySQL działa prawidłowo!";
$conn->close();
?>

Teraz otwórz przeglądarkę i przejdź do:

http://twój_adres_ip/mysql_test.php

Powinieneś zobaczyć komunikat "Połączenie z MySQL działa prawidłowo!".

Uwaga: Podobnie jak w przypadku pliku info.php, zalecamy usunięcie pliku mysql_test.php po zakończeniu testowania:

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

📂 Konfiguracja wirtualnych hostów Apache

Wirtualne hosty (Virtual Hosts) pozwalają na hostowanie wielu stron na jednym serwerze Apache. To przydatna funkcja, jeśli planujesz uruchomić kilka aplikacji webowych.

Tworzenie struktury katalogów

Zacznijmy od utworzenia struktury katalogów dla nowej strony:

sudo mkdir -p /var/www/twoja_domena.pl/public_html

Następnie zmieńmy uprawnienia, aby Twój użytkownik mógł modyfikować pliki:

sudo chown -R $USER:$USER /var/www/twoja_domena.pl
sudo chmod -R 755 /var/www/twoja_domena.pl

Tworzenie przykładowej strony

Utwórz prostą stronę HTML w nowym katalogu:

nano /var/www/twoja_domena.pl/public_html/index.html

Dodaj przykładową zawartość:

<!DOCTYPE html>
<html>
<head>
    <title>Witaj na twoja_domena.pl!</title>
</head>
<body>
    <h1>Sukces! Wirtualny host działa!</h1>
    <p>Ta strona jest hostowana na serwerze LAMP zainstalowanym na Ubuntu 20.04.</p>
</body>
</html>

Konfiguracja pliku wirtualnego hosta

Teraz utwórzmy plik konfiguracyjny dla wirtualnego hosta:

sudo nano /etc/apache2/sites-available/twoja_domena.pl.conf

Dodaj następującą konfigurację:

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

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

    ErrorLog ${APACHE_LOG_DIR}/twoja_domena.pl_error.log
    CustomLog ${APACHE_LOG_DIR}/twoja_domena.pl_access.log combined
</VirtualHost>

Włączenie wirtualnego hosta

Włącz nowy wirtualny host i wyłącz domyślną konfigurację:

sudo a2ensite twoja_domena.pl.conf
sudo a2dissite 000-default.conf

Sprawdź, czy konfiguracja Apache nie zawiera błędów:

sudo apache2ctl configtest

Jeśli zobaczysz "Syntax OK", zrestartuj Apache:

sudo systemctl restart apache2

Teraz możesz przetestować nowy wirtualny host, odwiedzając twoja_domena.pl w przeglądarce (upewnij się, że domena wskazuje na Twój serwer lub dodaj ją do pliku hosts w celach testowych).

🛡️ Zabezpieczenie stosu LAMP

Bezpieczeństwo jest kluczowym aspektem każdego serwera webowego. Oto kilka kroków, które możesz podjąć, aby zabezpieczyć swój stos LAMP.

Aktualizacja automatyczna (Unattended Upgrades)

Skonfiguruj automatyczne aktualizacje zabezpieczeń:

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Instalacja i konfiguracja Fail2Ban

Fail2Ban to narzędzie, które pomaga chronić serwer przed atakami brute force:

sudo apt install -y fail2ban

Utwórz niestandardową konfigurację:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Dostosuj sekcję [sshd] i dodaj sekcję dla Apache:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600

[apache-auth]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/*error.log
maxretry = 3
bantime = 3600

Zrestartuj Fail2Ban:

sudo systemctl restart fail2ban

Zabezpieczenie Apache

1. Wyłącz wyświetlanie informacji o serwerze

Edytuj plik konfiguracyjny Apache:

sudo nano /etc/apache2/conf-enabled/security.conf

Znajdź i zmień następujące dyrektywy:

ServerTokens Prod
ServerSignature Off

2. Dodaj nagłówki bezpieczeństwa

Utwórz plik konfiguracyjny dla nagłówków bezpieczeństwa:

sudo nano /etc/apache2/conf-available/security-headers.conf

Dodaj następujące nagłówki:

<IfModule mod_headers.c>
    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"
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" env=HTTPS
</IfModule>

Włącz tę konfigurację i zrestartuj Apache:

sudo a2enconf security-headers
sudo systemctl restart apache2

Konfiguracja SSL/TLS z Let's Encrypt

Aby zabezpieczyć komunikację przez HTTPS, zainstaluj Certbot i uzyskaj certyfikat Let's Encrypt:

sudo apt install -y certbot python3-certbot-apache

Uzyskaj certyfikat i skonfiguruj HTTPS:

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

Certbot przeprowadzi Cię przez proces konfiguracji. Po zakończeniu, Twoja strona będzie dostępna przez HTTPS.

🚧 Rozwiązywanie typowych problemów

Podczas instalacji i konfiguracji stosu LAMP mogą wystąpić pewne problemy. Oto kilka typowych problemów i ich rozwiązania.

Problem: Apache nie uruchamia się

Rozwiązanie:

  1. Sprawdź logi błędów:

    sudo tail -f /var/log/apache2/error.log
  2. Sprawdź, czy nie ma konfliktów portów:

    sudo netstat -tuln | grep -E '80|443'
  3. Sprawdź konfigurację Apache pod kątem błędów:

    sudo apache2ctl configtest

Problem: MySQL nie uruchamia się

Rozwiązanie:

  1. Sprawdź logi błędów:

    sudo tail -f /var/log/mysql/error.log
  2. Sprawdź, czy MySQL ma wystarczające uprawnienia do katalogu danych:

    sudo chown -R mysql:mysql /var/lib/mysql
    sudo systemctl restart mysql

Problem: Błędy PHP lub brak przetwarzania plików PHP

Rozwiązanie:

  1. Upewnij się, że moduł PHP dla Apache jest zainstalowany i włączony:

    sudo apt install -y libapache2-mod-php
    sudo a2enmod php7.4
    sudo systemctl restart apache2
  2. Sprawdź, czy pliki PHP mają odpowiednie uprawnienia:

    sudo chmod 644 /var/www/html/*.php
  3. Sprawdź logi błędów Apache:

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

✅ Twoja Checklista:

  • 🔍 Regularnie monitoruj logi serwera: /var/log/apache2/error.log, /var/log/mysql/error.log
  • 🔄 Utrzymuj system i pakiety zaktualizowane: sudo apt update && sudo apt upgrade
  • 🔒 Twórz kopie zapasowe baz danych: mysqldump -u root -p --all-databases > backup.sql
  • 📋 Wykonuj regularne audyty bezpieczeństwa i sprawdzaj uprawnienia plików
  • 🔐 Regularnie zmieniaj hasła MySQL i innych kont
  • 📊 Monitoruj wykorzystanie zasobów (CPU, RAM, dysk) za pomocą narzędzi jak htop i df -h
  • 🛠️ Testuj aplikacje webowe w bezpiecznym środowisku przed wdrożeniem na produkcję

🏁 Podsumowanie - Gotowy na Sukces?

Gratulacje! Pomyślnie zainstalowałeś i skonfigurowałeś kompletny stos LAMP na Ubuntu 20.04. Twój serwer jest teraz gotowy do hostowania aplikacji webowych opartych na PHP i MySQL.

W tym przewodniku nauczyłeś się:

  • Jak zainstalować i skonfigurować serwer Apache
  • Jak zabezpieczyć bazę danych MySQL i zoptymalizować jej wydajność
  • Jak zainstalować i dostosować PHP dla różnych aplikacji
  • Jak skonfigurować wirtualne hosty dla wielu stron
  • Jak zabezpieczyć swój serwer przed różnymi zagrożeniami

Pamiętaj, że regularna konserwacja i aktualizacje są kluczowe dla utrzymania bezpiecznego i wydajnego serwera LAMP. Kontynuuj rozwijanie swoich umiejętności administracyjnych i badaj zaawansowane techniki hostingu, aby Twoje aplikacje webowe mogły się rozwijać.

🚀 Potrzebujesz profesjonalnego hostingu LAMP bez kłopotów z konfiguracją?

Sprawdź hosting LAMP w IQHost

Oferujemy zoptymalizowane środowisko LAMP, regularne kopie zapasowe i wsparcie techniczne 24/7, dzięki czemu możesz skupić się na rozwoju swoich aplikacji.

❓ FAQ - Odpowiedzi na Twoje Pytania

Czy mogę zainstalować inne wersje PHP obok PHP 7.4?
Tak, Ubuntu 20.04 umożliwia instalację wielu wersji PHP jednocześnie. Możesz zainstalować dodatkowe wersje używając repozytoriów PPA, a następnie przełączać się między nimi za pomocą narzędzia update-alternatives.

Jak mogę ograniczyć zużycie zasobów przez PHP?
Możesz dostosować parametry takie jak memory_limit, max_execution_time i max_input_time w pliku php.ini, aby kontrolować zużycie zasobów przez skrypty PHP.

Czy mogę używać PostgreSQL zamiast MySQL?
Tak, PostgreSQL jest doskonałą alternatywą dla MySQL. Możesz zainstalować go za pomocą sudo apt install postgresql i skonfigurować podobnie jak MySQL.

Jak mogę monitorować wydajność mojego stosu LAMP?
Istnieje wiele narzędzi do monitorowania, takich jak Munin, Nagios, lub Prometheus z Grafana. Dla prostego monitorowania możesz użyć narzędzi wiersza poleceń takich jak htop, mytop (dla MySQL) i Apache mod_status.

Czy mogę używać NGINX zamiast Apache?
Tak, NGINX jest popularną alternatywą dla Apache, szczególnie w przypadku obsługi dużej liczby jednoczesnych połączeń. Aby zainstalować NGINX zamiast Apache, użyj sudo apt install nginx php-fpm.

Jak skonfigurować wiele stron PHP z różnymi wersjami PHP?
Możesz skonfigurować Apache do używania różnych wersji PHP dla różnych wirtualnych hostów, używając modułu mpm_event i php-fpm. Każdy wirtualny host może mieć swoją własną konfigurację PHP-FPM.

Czy mogę zautomatyzować instalację stosu LAMP?
Tak, możesz użyć narzędzi automatyzacji takich jak Ansible, Puppet lub skryptów bash, aby zautomatyzować proces instalacji. Dostępne są również gotowe szablony Ansible dla stosu LAMP.

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