🢂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.
kopia konfiga
# Skopiuj przykładowy plik konfiguracji
cp wp-config.php wp-config-kopia-$(date +%Y_%m-%d_%H%M%S).php
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"
Zrzut bazy danych
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"
Archiwum plików
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.
Transfer plików
Transferujemy pliki na nowy serwer. Możemy użyć scp
lub rsync
. Rsync jest bardziej efektywny przy większych plikach:
Rozpakowanie plików
Na nowym serwerze rozpakowujemy archiwum WordPress:
# Rozpakuj archiwum
tar -xzf wordpress_backup_*.tar.gz
# Ustaw odpowiednie uprawnienia
chown -R www-data:www-data public_html
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Kopiowanie konfiguracji
#zmiana nazwy pliku wp-config.php
cp wp-config-kopia-*.php wp-config.php
Import bazy danych
Importujemy bazę danych na nowym serwerze. Najpierw tworzymy nową bazę danych (jeśli jeszcze nie istnieje):
# 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
Testy i finalne sprawdzenia
Przeprowadzamy testy i finalne sprawdzenia:
# Sprawdź status bazy danych
wp db check --allow-root
# Sprawdź czy wszystkie tabele są w porządku
wp db repair --allow-root
# Sprawdź konfigurację WordPress
wp config list --allow-root
# Sprawdź czy strona działa
wp option get home --allow-root
wp option get siteurl --allow-root
Jeśli wszystko działa poprawnie, możesz usunąć pliki tymczasowe:
rm wordpress_backup_*.tar.gz
rm bazadanych_*.sql
Przekierowanie 404 na stronę główną
/**
* Redirect 404 to home page
*/
function redirect_404_to_home() {
if ( is_404() ) {
wp_redirect( home_url() );
exit;
}
}
add_action( 'template_redirect', 'redirect_404_to_home' );
Można też utworzyć plik 404.php
w katalogu wp-content/themes/Twoj_Temat/
z zawartością:
<?php
header("Location: " . "/");
exit;
?>
Podsumowanie
Migracja WordPress przez CLI to efektywny sposób przenoszenia strony między serwerami. Kluczowe kroki to:
- Backup bazy danych - zabezpieczenie danych przed migracją
- Aktualizacja URL - przygotowanie bazy pod nową domenę
- Export bazy - utworzenie finalnej kopii do transferu
- Archiwizacja plików - spakowanie WordPress z wykluczeniem niepotrzebnych plików
- Transfer danych - przeniesienie plików i bazy na nowy serwer
- Rozpakowanie - przywrócenie struktury plików z odpowiednimi uprawnieniami
- Import bazy - przywrócenie danych na nowym serwerze
- Konfiguracja - dostosowanie ustawień do nowego środowiska
- 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