Jak zainstalować WordPress na VPS z Ubuntu 25 - krok po kroku (2026)
WordPress to najpopularniejszy system zarządzania treścią na świecie.
Instalacja na własnym VPS daje Ci pełną kontrolę - żadnych limitów hostingu współdzielonego, własna konfiguracja PHP, brak sąsiadów spowalniających serwer.
Instalacja zajmuje około 15-20 minut. Pokażę Ci każdy krok.
Wymagania wstępne
Zanim zaczniesz, przygotuj:
- VPS z Ubuntu 25 i minimum 1 GB RAM
- Dostęp SSH do serwera (jako root lub użytkownik z sudo)
- Domenę wskazującą na IP serwera (opcjonalnie, ale potrzebna do SSL)
Instalacja opiera się na stosie LAMP (Linux, Apache, MySQL, PHP). Jeśli jeszcze go nie masz, zainstaluj go najpierw: Jak zainstalować LAMP na Ubuntu 25
Krok 1: Aktualizacja systemu
Zawsze zacznij od odświeżenia pakietów:
sudo apt update && sudo apt upgrade -yKrok 2: Instalacja Apache, MySQL i PHP
Jeśli nie masz jeszcze stosu LAMP, zainstaluj go jedną komendą:
sudo apt install apache2 mysql-server php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -yWłącz Apache i MySQL przy starcie systemu:
sudo systemctl enable apache2
sudo systemctl enable mysql
sudo systemctl start apache2
sudo systemctl start mysqlSprawdź czy Apache działa:
sudo systemctl status apache2Powinieneś zobaczyć active (running).
Krok 3: Konfiguracja bazy danych MySQL
WordPress potrzebuje dedykowanej bazy danych. Zaloguj się do MySQL:
sudo mysql -u rootStwórz bazę danych, użytkownika i nadaj uprawnienia:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'silne_haslo_tutaj';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;> ⚠️ Zapamiętaj nazwę bazy (wordpress), użytkownika (wpuser) i hasło - będą potrzebne w kroku 6.
Krok 4: Pobieranie WordPress
Pobierz najnowszą wersję WordPressa bezpośrednio z oficjalnego serwera:
cd /tmp
wget -O wordpress.tar.gz https://wordpress.org/latest.tar.gz
tar -xzvf wordpress.tar.gzSkopiuj pliki do katalogu serwera WWW:
sudo cp -a /tmp/wordpress/. /var/www/html/wordpressUstaw poprawne uprawnienia:
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpressKrok 5: Konfiguracja Apache dla WordPress
Stwórz nowy plik konfiguracyjny Virtual Host:
sudo nano /etc/apache2/sites-available/wordpress.confWklej następującą konfigurację (zamień twoja-domena.pl na swoją domenę lub wpisz _ jeśli używasz IP):
<VirtualHost *:80>
ServerName twoja-domena.pl
ServerAlias www.twoja-domena.pl
DocumentRoot /var/www/html/wordpress
<Directory /var/www/html/wordpress>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/wordpress_error.log
CustomLog ${APACHE_LOG_DIR}/wordpress_access.log combined
</VirtualHost>Zapisz plik (Ctrl+O, Enter, Ctrl+X).
Włącz konfigurację i moduł rewrite (potrzebny do permalinków WordPress):
sudo a2ensite wordpress.conf
sudo a2enmod rewrite
sudo systemctl reload apache2Wyłącz domyślną stronę Apache, żeby nie kolidowała:
sudo a2dissite 000-default.conf
sudo systemctl reload apache2Krok 6: Konfiguracja pliku wp-config.php
Skopiuj przykładowy plik konfiguracyjny:
sudo cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.phpOtwórz go do edycji:
sudo nano /var/www/html/wordpress/wp-config.phpZnajdź i uzupełnij sekcję z danymi bazy danych:
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'silne_haslo_tutaj' );
define( 'DB_HOST', 'localhost' );Generowanie unikalnych kluczy bezpieczeństwa
W tym samym pliku znajdź sekcję z kluczami (AUTH_KEY, SECURE_AUTH_KEY itd.) i zastąp ją losowymi kluczami z oficjalnego generatora WordPress:
curl -s https://api.wordpress.org/secret-key/1.1/salt/Skopiuj wynik i wklej zamiast oryginalnych kluczy w pliku konfiguracyjnym. To ważny krok bezpieczeństwa.
Zapisz plik.
Krok 7: Instalacja przez przeglądarkę
Wejdź w przeglądarce na:
http://TWOJE_IP/wordpresslub jeśli skonfigurowałeś domenę:
http://twoja-domena.plPojawi się kreator instalacji WordPress:
- Wybierz język - wybierz Polski
- Dane witryny - wpisz tytuł strony, nazwę użytkownika administratora, silne hasło i adres e-mail
- Kliknij Zainstaluj WordPress
Po kilku sekundach zobaczysz komunikat sukcesu. Kliknij Zaloguj się i wejdź do panelu administracyjnego.
Krok 8: Zabezpieczenie instalacji
Zainstaluj certyfikat SSL (HTTPS)
Bez SSL przeglądarka oznacza stronę jako "Niezabezpieczona". Let's Encrypt daje darmowy certyfikat:
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d twoja-domena.pl -d www.twoja-domena.plCertbot automatycznie skonfiguruje Apache i ustawi przekierowanie HTTP → HTTPS.
Certyfikat odnawia się automatycznie. Sprawdź timer:
sudo systemctl status certbot.timerSkonfiguruj zaporę sieciową (UFW)
sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'
sudo ufw enableUstaw limit prób logowania
Zaloguj się do panelu WordPress i zainstaluj wtyczkę Limit Login Attempts Reloaded - blokuje ataki brute-force na stronę logowania.
Zmień domyślny URL logowania
Domyślny adres /wp-admin jest atakowany przez boty. Wtyczka WPS Hide Login pozwala go zmienić na własny, np. /zarzadzanie.
Krok 9: Konfiguracja permalinków
W panelu WordPress wejdź w Ustawienia → Bezpośrednie odnośniki i wybierz strukturę Nazwa wpisu (/%postname%/).
Dzięki temu adresy URL będą przyjazne dla SEO:
- ✅
twoja-domena.pl/jak-zainstalowac-wordpress - ❌
twoja-domena.pl/?p=123
Kliknij Zapisz zmiany.
Najczęstsze problemy
Strona wyświetla katalog plików zamiast WordPress:
Sprawdź czy moduł rewrite jest włączony i czy konfiguracja Apache ma AllowOverride All:
sudo a2enmod rewrite && sudo systemctl reload apache2Błąd "Error establishing a database connection":
Sprawdź dane w wp-config.php - nazwa bazy, użytkownik i hasło muszą zgadzać się z tym co ustawiłeś w MySQL.
Błąd 403 Forbidden:
Problem z uprawnieniami plików. Napraw jedną komendą:
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;WordPress nie może instalować wtyczek (brak uprawnień zapisu):
sudo chown -R www-data:www-data /var/www/html/wordpress/wp-contentStrona działa na IP, ale nie na domenie:
Sprawdź czy rekord DNS domeny wskazuje na IP serwera i czy Virtual Host w Apache ma poprawną wartość ServerName.
Podsumowanie
- WordPress na VPS instalujesz przez stos LAMP - Apache, MySQL i PHP
- baza danych musi mieć dedykowanego użytkownika z ograniczonymi uprawnieniami, nie
root - SSL przez Let's Encrypt to konieczność, nie opcja
- zmień domyślny URL logowania i ogranicz liczbę prób logowania
Masz pełną kontrolę nad serwerem - bez limitów, bez sąsiadów, bez ukrytych opłat.