🢂Przeniesienie WordPress na inny serwer (za pomocąCLI)

Przeniesienie WordPress na inny serwer (CLI)

Przeniesienie WordPress na inny serwer (CLI)

Aby przenieść stronę WordPress z jednego serwera na inny, używając tylko narzędzi CLI (Command Line Interface), możesz wykonać poniższe kroki.

Krok 1

Zaczynamy od zrobienie kopii zapasowej bazy danych na serwerze źródłowym. Wynikiem tego zadania jest plik backup_YYYY_MM-DD_HMS.sql (np. backup_2025_01-30_123456.sql).

wp db export "backup_$(date +%Y_%m-%d_%H%M%S).sql"

Krok 2

Zaktualizuj adresy URL w bazie danych. Celowo pomijamy kolumnę guid, ponieważ jest to unikalny identyfikator wpisu, który nie powinien być zmieniany. --all-tables pozwala na zaktualizowanie adresów URL w wszystkich tabelach. Oczywiście old-domain.com i new-domain.com należy zastąpić odpowiednimi adresami URL :). Pamiętaj aby nie dodwawać http:// lub https:// przed adresem URL.

wp search-replace 'old-domain.com' 'new-domain.com' --skip-columns=guid --all-tables

następne polecenie pozwoli nam zaktualizować adresy URL w bazie danych z http:// na https:// gdyby pojawiły się błędy w wersji dev.

wp search-replace 'http://new-domain.com' 'https://new-domain.com' --skip-columns=guid --all-tables

wyniki powinien być podobny do tego:

+------------------------------+-----------------------+--------------+------+
| Table                        | Column                | Replacements | Type |
+------------------------------+-----------------------+--------------+------+
| wp_actionscheduler_actions   | hook                  | 0            | SQL  |
| wp_actionscheduler_actions   | status                | 0            | SQL  |
| wp_actionscheduler_actions   | args                  | 0            | SQL  |
| wp_actionscheduler_actions   | schedule              | 0            | PHP  |
| wp_actionscheduler_actions   | extended_args         | 0            | SQL  |
| wp_actionscheduler_groups    | slug                  | 0            | SQL  |
                                    ...
| wp_actionscheduler_logs      | message               | 0            | SQL  |
| wp_postmeta                  | meta_key              | 0            | SQL  |
| wp_postmeta                  | meta_value            | 13           | PHP  |
| wp_posts                     | post_content          | 20           | SQL  |
| wp_posts                     | post_title            | 0            | SQL  |
| wp_posts                     | post_excerpt          | 0            | SQL  |
                                    ...
+----------------------------+-----------------------+--------------+------+
Success: Replaced 33 of 1000 items.

gdzie 33 to liczba zastąpionych wpisów.

Krok 3

Robimy zrzut bazy danych na serwerze źródłowym (teraz ze zaktualizowanymi adresami URL).

wp db export "bazadanych_$(date +%Y_%m-%d_%H%M%S).sql"

Krok 4

Przygotowujemy archiwum plików WordPress na serwerze źródłowym. Używamy tar z kompresją gzip dla oszczędności miejsca i czasu transferu.

tar -czf wordpress_backup_$(date +%Y_%m-%d_%H%M%S).tar.gz --exclude='*.log' --exclude='wp-config.php' .

Opcja --exclude pomija pliki logów i konfiguracji, które będą wymagały osobnej uwagi na nowym serwerze.

zmiana hasła np. developera

wp user update developer --skip-email  --allow-root --user_pass="TwojeNoweHaslo#2025#" 

dodanie nowego usera

wp user create webmaster test@example.com  --allow-root --role=administrator   --user_pass="#Silne#238123#Haso2025"

Krok 5

Transferujemy pliki na nowy serwer. Możemy użyć scp lub rsync. Rsync jest bardziej efektywny przy większych plikach:

# Opcja 1: scp
scp wordpress_backup_*.tar.gz user@new-server.com:/path/to/destination/

# Opcja 2: rsync (bardziej efektywny)
rsync -avz --progress wordpress_backup_*.tar.gz user@new-server.com:/path/to/destination/

Transferujemy również plik bazy danych:

scp bazadanych_*.sql user@new-server.com:/path/to/destination/

Krok 6

Na nowym serwerze rozpakowujemy archiwum WordPress:

# Przejdź do katalogu docelowego
cd /path/to/wordpress/directory

# Rozpakuj archiwum
tar -xzf wordpress_backup_*.tar.gz

# Ustaw odpowiednie uprawnienia
chown -R www-data:www-data .
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

Krok 7

Importujemy bazę danych na nowym serwerze. Najpierw tworzymy nową bazę danych (jeśli jeszcze nie istnieje):

# Utwórz bazę danych
wp db create

# Importuj dane
wp db import bazadanych_*.sql

Jeśli baza danych już istnieje i chcesz ją zastąpić:

# Wyczyść istniejącą bazę i importuj
wp db reset --yes
wp db import bazadanych_*.sql

Krok 8

Konfigurujemy plik wp-config.php na nowym serwerze. Możemy skopiować z poprzedniego serwera i dostosować, lub utworzyć nowy:

# Skopiuj przykładowy plik konfiguracji
cp wp-config-sample.php wp-config.php

# Lub użyj WP-CLI do konfiguracji
wp config create --dbname=nazwa_bazy --dbuser=uzytkownik --dbpass=haslo --dbhost=localhost

Sprawdź i dostosuj ustawienia w wp-config.php:

Krok 9

Przeprowadzamy testy i finalne sprawdzenia:

# Sprawdź status bazy danych
wp db check

# Sprawdź czy wszystkie tabele są w porządku
wp db repair

# Sprawdź konfigurację WordPress
wp config list

# Sprawdź czy strona działa
wp option get home
wp option get siteurl

Jeśli wszystko działa poprawnie, możesz usunąć pliki tymczasowe:

rm wordpress_backup_*.tar.gz
rm bazadanych_*.sql

Podsumowanie

Migracja WordPress przez CLI to efektywny sposób przenoszenia strony między serwerami. Kluczowe kroki to:

  1. Backup bazy danych - zabezpieczenie danych przed migracją
  2. Aktualizacja URL - przygotowanie bazy pod nową domenę
  3. Export bazy - utworzenie finalnej kopii do transferu
  4. Archiwizacja plików - spakowanie WordPress z wykluczeniem niepotrzebnych plików
  5. Transfer danych - przeniesienie plików i bazy na nowy serwer
  6. Rozpakowanie - przywrócenie struktury plików z odpowiednimi uprawnieniami
  7. Import bazy - przywrócenie danych na nowym serwerze
  8. Konfiguracja - dostosowanie ustawień do nowego środowiska
  9. Testy - weryfikacja poprawności migracji

Dzięki użyciu WP-CLI cały proces jest szybki, niezawodny i można go łatwo zautomatyzować poprzez skrypty bash. Planned for 10s

View Plan