OKWszystkie usługi działają prawidłowo
InfrawireLogo InfrawireDokumentacja

Instalacja WordPress na VPS z Linuxem

Ten przewodnik opisuje instalację WordPress na VPS z Linuxem. WordPress to najpopularniejszy na świecie system CMS, używany przez miliony stron.

⚠️ Ważna uwaga

📋 Wymagania wstępne

  • VPS z Linuxem z dostępem root lub sudo
  • Co najmniej 1 GB RAM (dla WordPress zalecane 2 GB)
  • Co najmniej 10 GB wolnego miejsca na dysku
  • Domena wskazująca na IP VPS
  • Porty 80 (HTTP) i 443 (HTTPS) otwarte w zaporze

💡 Rekomendacja infrastruktury

Dla dobrej wydajności WordPress polecamy VPS NVMe przy umiarkowanym ruchu lub VPS Performance przy dużym obciążeniu i potrzebie CPU. Dyski NVMe przyspieszają ładowanie stron i operacje bazy.

🔧 Metoda 1: Instalacja z LAMP (Apache)

Krok 1: Aktualizacja systemu

Bash
1# Lista pakietów 2sudo apt update 3 4# Aktualizacja zainstalowanych pakietów 5sudo apt upgrade -y

Krok 2: Instalacja Apache

Bash
1# Instalacja Apache 2sudo apt install -y apache2 3 4# Start Apache 5sudo systemctl start apache2 6 7# Apache przy starcie systemu 8sudo systemctl enable apache2 9 10# Status 11sudo systemctl status apache2

Krok 3: Instalacja MySQL

Bash
1# MySQL Server 2sudo apt install -y mysql-server 3 4# Start MySQL 5sudo systemctl start mysql 6 7# MySQL przy starcie 8sudo systemctl enable mysql 9 10# Zabezpieczenie instalacji MySQL 11sudo mysql_secure_installation

Podczas zabezpieczania:

  • Ustaw hasło root dla MySQL
  • Usuń anonimowych użytkowników
  • Wyłącz zdalne logowanie root
  • Usuń bazę testową
  • Przeładuj uprawnienia

Krok 4: Utworzenie bazy WordPress

Bash
# Połączenie z MySQL sudo mysql -u root -p

W MySQL wykonaj:

SQL
1-- Utwórz bazę 2CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 3 4-- Użytkownik WordPress 5CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'YourSecurePassword123!'; 6 7-- Uprawnienia 8GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost'; 9 10-- Zastosuj zmiany 11FLUSH PRIVILEGES; 12 13-- Wyjście 14EXIT;

Krok 5: PHP i wymagane rozszerzenia

Bash
1# PHP i rozszerzenia dla WordPress 2sudo apt install -y php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip libapache2-mod-php 3 4# Wersja PHP 5php -v

WordPress wymaga PHP 7.4 lub nowszego. Konkretna wersja:

Bash
# PHP 8.1 (zalecane) sudo apt install -y php8.1 php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-xmlrpc php8.1-soap php8.1-intl php8.1-zip libapache2-mod-php8.1

Krok 6: Pobranie WordPress

Bash
1cd /tmp 2 3curl -O https://wordpress.org/latest.tar.gz 4 5tar xzf latest.tar.gz 6 7sudo cp -r wordpress/* /var/www/html/ 8 9sudo chown -R www-data:www-data /var/www/html 10sudo chmod -R 755 /var/www/html

Krok 7: Konfiguracja WordPress

Bash
cd /var/www/html sudo cp wp-config-sample.php wp-config.php sudo nano wp-config.php

Zmień linie z danymi bazy:

PHP
define( 'DB_NAME', 'wordpress_db' ); define( 'DB_USER', 'wordpress_user' ); define( 'DB_PASSWORD', 'YourSecurePassword123!' ); define( 'DB_HOST', 'localhost' );

Dodaj linie bezpieczeństwa (unikalne klucze):

PHP
1define('AUTH_KEY', 'generate-unique-key-here'); 2define('SECURE_AUTH_KEY', 'generate-unique-key-here'); 3define('LOGGED_IN_KEY', 'generate-unique-key-here'); 4define('NONCE_KEY', 'generate-unique-key-here'); 5define('AUTH_SALT', 'generate-unique-key-here'); 6define('SECURE_AUTH_SALT', 'generate-unique-key-here'); 7define('LOGGED_IN_SALT', 'generate-unique-key-here'); 8define('NONCE_SALT', 'generate-unique-key-here');

Unikalne klucze: https://api.wordpress.org/secret-key/1.1/salt/

Krok 8: Apache pod WordPress

Bash
sudo a2enmod rewrite sudo nano /etc/apache2/sites-available/000-default.conf

Sekcja <Directory /var/www/html>:

Apache
1<Directory /var/www/html> 2 Options Indexes FollowSymLinks 3 AllowOverride All 4 Require all granted 5</Directory>

Restart Apache:

Bash
sudo systemctl restart apache2

Krok 9: Dokończenie w przeglądarce

  1. Otwórz przeglądarkę
  2. Wejdź na: http://TWOJE_IP lub http://twoja-domena.com
  3. Kreator instalacji WordPress:
    • wybór języka
    • tytuł witryny, administrator, e-mail, hasło
    • Zainstaluj WordPress

🔧 Metoda 2: Instalacja z LEMP (Nginx)

Krok 1: Instalacja Nginx

Bash
1sudo apt install -y nginx 2 3sudo systemctl start nginx 4 5sudo systemctl enable nginx

Krok 2: MySQL (jak w LAMP)

Wykonaj kroki 3 i 4 z metody LAMP (MySQL + baza).

Krok 3: PHP-FPM

Bash
sudo apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip # PHP 8.1 sudo apt install -y php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-xmlrpc php8.1-soap php8.1-intl php8.1-zip

Krok 4: Pobranie WordPress

Jak krok 6 w metodzie LAMP.

Krok 5: Nginx pod WordPress

Bash
sudo nano /etc/nginx/sites-available/wordpress

Konfiguracja (zamień yourdomain.com na swoją domenę):

Nginx
1server { 2 listen 80; 3 listen [::]:80; 4 server_name yourdomain.com www.yourdomain.com; 5 root /var/www/html; 6 index index.php index.html index.htm; 7 8 location / { 9 try_files $uri $uri/ /index.php?$args; 10 } 11 12 location ~ \.php$ { 13 include snippets/fastcgi-php.conf; 14 fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; 15 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 16 include fastcgi_params; 17 } 18 19 location ~ /\.ht { 20 deny all; 21 } 22}

Włączenie witryny:

Bash
1sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ 2 3sudo nginx -t 4 5sudo systemctl restart nginx

Krok 6: Konfiguracja WordPress

Jak kroki 7 i 9 z metody LAMP.

🔒 Zabezpieczenie WordPress

1. Uprawnienia plików

Bash
1sudo find /var/www/html -type f -exec chmod 644 {} \; 2 3sudo find /var/www/html -type d -exec chmod 755 {} \; 4 5sudo chmod 600 /var/www/html/wp-config.php

2. Certyfikat SSL (Let's Encrypt)

Bash
1sudo apt install -y certbot python3-certbot-apache 2# Nginx: sudo apt install -y certbot python3-certbot-nginx 3 4sudo certbot --apache -d yourdomain.com -d www.yourdomain.com 5# Nginx: sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com 6 7sudo certbot renew --dry-run

3. Zapora

Bash
1sudo ufw allow 'Apache Full' 2# Nginx: sudo ufw allow 'Nginx Full' 3 4sudo ufw allow 80/tcp 5sudo ufw allow 443/tcp

4. Ograniczenie prób logowania

Wtyczki bezpieczeństwa, np.:

  • Wordfence Security
  • iThemes Security
  • Sucuri Security

5. Wyłączenie edycji plików z panelu

W wp-config.php:

PHP
define('DISALLOW_FILE_EDIT', true);

🔄 Aktualizacje WordPress

Z poziomu panelu

  1. Zaloguj się do administracji
  2. KokpitAktualizacje
  3. Zaktualizuj teraz

Przez WP-CLI

Bash
1curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar 2chmod +x wp-cli.phar 3sudo mv wp-cli.phar /usr/local/bin/wp 4 5cd /var/www/html 6sudo -u www-data wp core update 7sudo -u www-data wp plugin update --all 8sudo -u www-data wp theme update --all

📦 Polecane wtyczki

  • Yoast SEO — SEO
  • Wordfence Security — bezpieczeństwo
  • UpdraftPlus — kopie zapasowe
  • W3 Total Cache — cache
  • Contact Form 7 — formularze kontaktowe

❓ Typowe problemy

Błąd „Error establishing a database connection”

Rozwiązania:

  1. Sprawdź dane w wp-config.php
  2. Czy MySQL działa: sudo systemctl status mysql
  3. Test połączenia: mysql -u wordpress_user -p wordpress_db

404 na permalinkach

Apache:

Bash
sudo a2enmod rewrite sudo systemctl restart apache2

Nginx: Sprawdź konfigurację try_files.

Problemy z uprawnieniami

Bash
sudo chown -R www-data:www-data /var/www/html sudo find /var/www/html -type d -exec chmod 755 {} \; sudo find /var/www/html -type f -exec chmod 644 {} \;

📝 Przydatne polecenia

Bash
1sudo systemctl status apache2 # lub nginx 2sudo systemctl status mysql 3 4sudo systemctl restart apache2 # lub nginx 5sudo systemctl restart mysql 6 7sudo tail -f /var/log/apache2/error.log 8 9sudo tail -f /var/log/nginx/error.log 10 11sudo tail -f /var/log/php8.1-fpm.log

📞 Potrzebujesz pomocy?

W razie problemów z instalacją skontaktuj się z pomocą techniczną Infrawire. Jesteśmy dostępni, aby pomóc.


Uwaga: Dla wygodniejszej obsługi WordPress z dedykowanym wsparciem, automatycznymi kopiami i optymalizacją rozważ hosting WWW dedykowany pod WordPress.