WP-CLI: Zaawansowane zarządzanie WordPress z terminala
WP-CLI (WordPress Command Line Interface) to oficjalne narzędzie do zarządzania WordPress z terminala. Pozwala wykonywać operacje 10-100× szybciej niż przez panel wp-admin - idealne dla administratorów zarządzających wieloma stronami, deweloperów wdrażających updates lub agencji automatyzujących deployment.
📊 Poziom trudności
Zaawansowany ⭐⭐⭐
⏱️ Czas nauki: 1-2 godziny (podstawy) + praktyka 🛠️ Wymagane umiejętności: Podstawy Linux CLI, znajomość SSH, WordPress 💻 Narzędzia: SSH access (Joton), terminal, klucze SSH
Dlaczego WP-CLI zamiast wp-admin?
Przykład: Aktualizacja 50 wtyczek
Przez wp-admin (tradycyjnie):
- Zaloguj się do WordPress
- Przejdź do Wtyczki → Zainstalowane
- Zaznacz każdą wtyczkę (50 kliknięć)
- Wybierz "Aktualizuj" z menu
- Poczekaj na aktualizację każdej wtyczki pojedynczo
- Czas: 15-20 minut + ryzyko timeout
Przez WP-CLI:
wp plugin update --allCzas: 10-30 sekund (zależnie od liczby wtyczek)
Kiedy WP-CLI jest niezbędne?
- Agencje WordPress - zarządzanie 10+ stronami klientów
- Automatyzacja CI/CD - deployment przez GitHub Actions/GitLab CI
- Migracje - zmiana domeny w bazie danych (search-replace)
- Bulk operations - update 100 wtyczek po wykryciu CVE
- Disaster recovery - reset hasła gdy nie masz dostępu do wp-admin
- Performance testing - flush cache, regenerate thumbnails
Wymagania i dostęp SSH w Joton
1. Klucze SSH
WP-CLI wymaga połączenia SSH. Joton obsługuje SSH z autoryzacją przez klucze (hasła są wyłączone dla bezpieczeństwa).
Jeśli nie masz jeszcze kluczy SSH:
Zobacz: Generowanie kluczy SSH
Szybka weryfikacja:
# Sprawdź czy masz klucz SSH
ls -la ~/.ssh/id_rsa.pubJeśli widzisz plik id_rsa.pub - masz klucz. Jeśli nie - wygeneruj według powyższego przewodnika.
2. Dodanie klucza SSH do panelu Joton
- Panel Joton → Witryny → Twoja domena → Zaawansowane → Narzędzia programistyczne
- Sekcja Klucze SSH → Dodaj klucz
- Skopiuj zawartość
~/.ssh/id_rsa.pub:bashcat ~/.ssh/id_rsa.pub - Wklej w pole Klucz publiczny → Wyślij
Po dodaniu pierwszego klucza zobaczysz komendę logowania:
ssh [email protected] -p220223. Test połączenia SSH
# Skopiuj komendę z panelu Joton i wykonaj
ssh [email protected] -p22022Jeśli widzisz:
Welcome to your hosting account!✅ SSH działa poprawnie!
Jeśli widzisz błąd Permission denied:
- Sprawdź czy dodałeś poprawny klucz publiczny (kończy się na
.pub) - Sprawdź uprawnienia:
chmod 600 ~/.ssh/id_rsa - Sprawdź czy klucz jest załadowany:
ssh-add -l
Weryfikacja WP-CLI na Joton
Hosting Joton ma WP-CLI preinstalowane w każdym kontenerze. Sprawdźmy czy działa:
1. Zaloguj się przez SSH
ssh [email protected] -p220222. Przejdź do katalogu WordPress
# Lista wszystkich domen w Twoim koncie
ls -la
# Przejdź do katalogu domeny (zastąp twoja-domena.pl)
cd twoja-domena.pl3. Sprawdź wersję WP-CLI
wp --infoPrawidłowy output:
OS: Linux 5.15.0-1064-aws #70~20.04.1-Ubuntu x86_64
Shell: /bin/bash
PHP binary: /usr/bin/php8.2
PHP version: 8.2.20
php.ini used: /etc/php/8.2/cli/php.ini
MySQL binary: /usr/bin/mysql
MySQL version: mysql Ver 8.0.37-0ubuntu0.20.04.3
SQL modes:
WP-CLI root dir: /usr/local/bin
WP-CLI vendor dir: /usr/local/bin/vendor
WP_CLI phar path:
WP-CLI packages dir:
WP-CLI cache dir: /home/u123-abc/.wp-cli/cache
WP-CLI global config:
WP-CLI project config: /home/u123-abc/twoja-domena.pl/wp-cli.yml
WP-CLI version: 2.10.0✅ WP-CLI jest gotowe do użycia!
4. Sprawdź status WordPress
wp core versionPowinno pokazać wersję WordPress (np. 6.4.2).
💡 Alias dla wygody
Jeśli często pracujesz z WP-CLI, dodaj alias w ~/.bashrc:
echo "alias wpcli='wp'" >> ~/.bashrc
source ~/.bashrc
# Teraz możesz używać krótszej komendy:
wpcli plugin listPodstawy WP-CLI
Struktura komend
Wszystkie komendy WP-CLI mają format:
wp <command> <subcommand> [--parameter=value]Przykłady:
wp plugin list # Lista wtyczek
wp plugin update akismet # Update konkretnej wtyczki
wp plugin update --all # Update wszystkich
wp core check-update # Sprawdź dostępne aktualizacje WordPressSystem pomocy
WP-CLI ma wbudowaną dokumentację:
# Pomoc ogólna
wp help
# Pomoc dla konkretnej komendy
wp help plugin
# Pomoc dla subkomendy
wp help plugin install
# Lista wszystkich komend
wp cli cmd-dumpNajważniejsze komendy
| Komenda | Co robi | Przykład |
|---|---|---|
wp core | Zarządzanie WordPress core | wp core update |
wp plugin | Zarządzanie wtyczkami | wp plugin list |
wp theme | Zarządzanie motywami | wp theme activate twentytwentyfour |
wp user | Zarządzanie użytkownikami | wp user list |
wp db | Operacje na bazie danych | wp db export |
wp cache | Zarządzanie cache | wp cache flush |
wp search-replace | Zamiana tekstu w bazie | wp search-replace 'old.com' 'new.com' |
wp option | Ustawienia WordPress | wp option get siteurl |
Zarządzanie wtyczkami i motywami
Lista wszystkich wtyczek
# Podstawowa lista
wp plugin list
# Output:
# +------------------+----------+-----------+---------+
# | name | status | update | version |
# +------------------+----------+-----------+---------+
# | akismet | active | available | 5.0 |
# | contact-form-7 | active | none | 5.8 |
# | woocommerce | inactive | available | 8.2.1 |
# +------------------+----------+-----------+---------+Filtry:
# Tylko aktywne
wp plugin list --status=active
# Tylko nieaktywne
wp plugin list --status=inactive
# Tylko te wymagające update
wp plugin list --update=available
# Format JSON (do skryptów)
wp plugin list --format=jsonBulk update wszystkich wtyczek
# Update wszystkich wtyczek
wp plugin update --all
# Output:
# Updating 'akismet' (5.0 -> 5.1)
# Downloading update from https://downloads.wordpress.org/plugin/akismet.5.1.zip...
# Unpacking the update...
# Installing the latest version...
# Removing the old version of the plugin...
# Plugin updated successfully.
# Success: Updated 1 of 1 plugins.Z logowaniem do pliku:
# Zapisz output do pliku (dla audytu)
wp plugin update --all | tee plugin-updates-$(date +%Y-%m-%d).logInstalacja wtyczki z wordpress.org
# Instaluj i aktywuj
wp plugin install wordfence --activate
# Instaluj konkretną wersję
wp plugin install woocommerce --version=8.2.0
# Instaluj z ZIP URL
wp plugin install https://downloads.wordpress.org/plugin/redis-cache.2.5.0.zipDeinstalacja nieużywanych wtyczek
# Lista nieaktywnych wtyczek
wp plugin list --status=inactive --field=name
# Usuń wszystkie nieaktywne (UWAGA: nieodwracalne!)
wp plugin delete $(wp plugin list --status=inactive --field=name)Zarządzanie motywami
# Lista motywów
wp theme list
# Aktywuj motyw
wp theme activate twentytwentyfour
# Instaluj nowy motyw
wp theme install astra --activate
# Usuń nieużywane motywy (zostaw tylko aktywny)
wp theme delete $(wp theme list --status=inactive --field=name)Operacje na bazie danych
Export bazy danych
# Backup do pliku
wp db export
# Output: Success: Exported to 'twoja-domena-2024-01-05-abc123.sql'.
# Custom nazwa pliku
wp db export backup-przed-update-$(date +%Y-%m-%d).sql
# Kompresja (oszczędność miejsca)
wp db export - | gzip > backup-$(date +%Y-%m-%d).sql.gzAutomatyczny backup przed każdą większą operacją:
# Alias w ~/.bashrc
alias wpbackup='wp db export backup-$(date +%Y-%m-%d-%H%M%S).sql'
# Użycie:
wpbackup && wp plugin update --allImport bazy danych
# Import z pliku
wp db import backup-2024-01-05.sql
# Import z gzip
gunzip < backup-2024-01-05.sql.gz | wp db import -Search-replace (migracje, zmiana domeny)
Scenariusz: Przeniosłeś stronę z staging.example.com na example.com
# Zamień wszystkie wystąpienia URL w bazie
wp search-replace 'staging.example.com' 'example.com'
# Output:
# +-------------------+-----------+-----------+------+
# | Table | Column | Replacements | Type |
# +-------------------+-----------+-----------+------+
# | wp_options | option_value | 2 | SQL |
# | wp_posts | post_content | 156 | SQL |
# | wp_postmeta | meta_value | 89 | SQL |
# +-------------------+-----------+-----------+------+
# Success: Made 247 replacements.Tryb dry-run (test bez zmian):
# Sprawdź co zostanie zamienione, ale NIE wykonuj zmian
wp search-replace 'old.com' 'new.com' --dry-runZamiana w specific tabelach:
# Tylko w wp_posts i wp_postmeta
wp search-replace 'old.com' 'new.com' wp_posts wp_postmeta⚠️ Serializowane dane
WordPress przechowuje niektóre dane w formacie serializowanym PHP. WP-CLI automatycznie to obsługuje, ale NIGDY nie używaj SQL UPDATE ręcznie - zniszczy serializację!
Bezpieczne: wp search-replace 'old' 'new' ✅ Niebezpieczne: UPDATE wp_options SET option_value = REPLACE(...) ❌
Optymalizacja bazy danych
# Optymalizuj wszystkie tabele
wp db optimize
# Napraw uszkodzone tabele
wp db repair
# Sprawdź rozmiar bazy
wp db size --human-readable
# Output: 156.8 MBCleanup niepotrzebnych danych
# Usuń spam komentarze
wp comment delete $(wp comment list --status=spam --format=ids)
# Usuń trashed posty
wp post delete $(wp post list --post_status=trash --format=ids)
# Usuń transients (cache)
wp transient delete --all
# Usuń post revisions (zostaw tylko 5 ostatnich)
wp post delete $(wp post list --post_type=revision --posts_per_page=1000 --format=ids --post__not_in=$(wp post list --post_type=revision --posts_per_page=5 --format=ids))Wykonanie custom SQL query
# Query (read-only)
wp db query "SELECT COUNT(*) FROM wp_posts WHERE post_status='publish';"
# Output: 234
# Więcej złożone query
wp db query "SELECT post_type, COUNT(*) as count FROM wp_posts GROUP BY post_type;"Zarządzanie użytkownikami
Lista użytkowników
# Wszyscy użytkownicy
wp user list
# Output:
# +----+------------+------------------+---------------------+
# | ID | user_login | user_email | role |
# +----+------------+------------------+---------------------+
# | 1 | admin | [email protected]| administrator |
# | 2 | editor | [email protected] | editor |
# +----+------------+------------------+---------------------+
# Tylko administratorzy
wp user list --role=administrator
# Format CSV (do Excel)
wp user list --format=csv > users-$(date +%Y-%m-%d).csvTworzenie nowego użytkownika
# Utwórz administratora
wp user create john [email protected] --role=administrator --user_pass=VeryStrongPassword123!
# Utwórz redaktora
wp user create jane [email protected] --role=editor --display_name="Jane Doe"Reset hasła (disaster recovery)
Scenariusz: Zapomniałeś hasła i nie masz dostępu do emaila
# Reset hasła dla user ID 1
wp user update 1 --user_pass=NewSecurePassword456!
# Lub przez login
wp user update admin --user_pass=NewSecurePassword456!Zmiana roli użytkownika
# Awansuj do administratora
wp user set-role john administrator
# Degraduj do subscriber
wp user set-role badactor subscriberBulk operations na użytkownikach
# Usuń wszystkich spammerów (subscriber bez postów)
wp user delete $(wp user list --role=subscriber --field=ID) --yes
# Lista użytkowników którzy się nigdy nie logowali (custom query)
wp db query "SELECT ID, user_login FROM wp_users WHERE ID NOT IN (SELECT DISTINCT user_id FROM wp_usermeta WHERE meta_key='last_login');"Zaawansowane: Bulk operations
Update wszystkiego (WordPress + wtyczki + motywy)
#!/bin/bash
# Plik: update-all.sh
echo "🔄 Starting full WordPress update..."
# Backup przed wszystkim
echo "📦 Creating database backup..."
wp db export backup-before-update-$(date +%Y-%m-%d-%H%M%S).sql
# Update WordPress core
echo "⬆️ Updating WordPress core..."
wp core update
# Update wszystkich wtyczek
echo "🔌 Updating all plugins..."
wp plugin update --all
# Update wszystkich motywów
echo "🎨 Updating all themes..."
wp theme update --all
# Flush cache
echo "🧹 Flushing cache..."
wp cache flush
# Verify
echo "✅ Verification:"
wp core version
wp plugin list --update=available
wp theme list --update=available
echo "✅ Update complete!"Użycie:
chmod +x update-all.sh
./update-all.shCleanup performance (dla wolnych stron)
#!/bin/bash
# Plik: cleanup-performance.sh
echo "🧹 Starting WordPress cleanup..."
# 1. Usuń transients
echo "Deleting transients..."
wp transient delete --all
# 2. Usuń stare revisions (zostaw 5 ostatnich)
echo "Deleting old revisions..."
REVISION_IDS=$(wp post list --post_type=revision --posts_per_page=1000 --offset=5 --format=ids)
if [ ! -z "$REVISION_IDS" ]; then
wp post delete $REVISION_IDS --force
fi
# 3. Usuń spam comments
echo "Deleting spam comments..."
wp comment delete $(wp comment list --status=spam --format=ids) --force
# 4. Usuń trashed items
echo "Emptying trash..."
wp post delete $(wp post list --post_status=trash --format=ids) --force
# 5. Optymalizuj bazę
echo "Optimizing database..."
wp db optimize
# 6. Regeneruj thumbnails (jeśli używasz nowego rozmiaru)
echo "Regenerating thumbnails..."
wp media regenerate --yes
# 7. Flush cache
echo "Flushing all caches..."
wp cache flush
wp rewrite flush
echo "✅ Cleanup complete!"
wp db size --human-readableWooCommerce bulk operations
# Export wszystkich produktów do CSV
wp wc product list --format=csv > products-$(date +%Y-%m-%d).csv
# Bulk zmiana cen (10% discount na wszystko)
wp db query "UPDATE wp_postmeta SET meta_value = meta_value * 0.9 WHERE meta_key = '_regular_price';"
# Lista zamówień z ostatnich 7 dni
wp wc order list --after="$(date -d '7 days ago' +%Y-%m-%d)" --format=table
# Bulk zmiana statusu zamówień
wp wc order update $(wp wc order list --status=processing --format=ids) --status=completedAutomatyzacja z cron jobs
Daily database backup
Panel Joton → Zaawansowane → Narzędzia programistyczne → Cron jobs:
# Komenda:
cd /home/u123-abc/twoja-domena.pl && /usr/local/bin/wp db export backup-daily-$(date +\%Y-\%m-\%d).sql && find . -name "backup-daily-*.sql" -mtime +7 -delete
# Harmonogram: Daily at 3:00 AMCo robi:
- Przechodzi do katalogu WordPress
- Eksportuje bazę danych
- Usuwa backupy starsze niż 7 dni (oszczędność miejsca)
Weekly plugin updates (z emailem)
# Komenda (zapisz jako ~/scripts/weekly-update.sh):
#!/bin/bash
DOMAIN="twoja-domena.pl"
EMAIL="[email protected]"
LOG="/tmp/wp-update-$(date +%Y-%m-%d).log"
cd /home/u123-abc/$DOMAIN
# Backup
wp db export backup-weekly-$(date +%Y-%m-%d).sql
# Update
wp plugin update --all > $LOG 2>&1
wp theme update --all >> $LOG 2>&1
# Wyślij email z raportem
mail -s "WordPress Update Report - $DOMAIN" $EMAIL < $LOG
# Cleanup
rm $LOGCron (każda niedziela o 2:00):
0 2 * * 0 /home/u123-abc/scripts/weekly-update.shMonthly cleanup (transients, revisions)
# Komenda:
cd /home/u123-abc/twoja-domena.pl && /usr/local/bin/wp transient delete --all && /usr/local/bin/wp db optimize
# Harmonogram: Monthly (1st day at 4:00 AM)Custom scripty bash
Deployment script (staging → production)
#!/bin/bash
# Plik: deploy-to-production.sh
STAGING_PATH="/home/u123-abc/staging.example.com"
PROD_PATH="/home/u123-abc/example.com"
echo "🚀 Starting deployment: staging → production"
# 1. Backup production
echo "📦 Backing up production database..."
cd $PROD_PATH
wp db export backup-pre-deploy-$(date +%Y-%m-%d-%H%M%S).sql
# 2. Export staging database
echo "📤 Exporting staging database..."
cd $STAGING_PATH
wp db export staging-export.sql
# 3. Search-replace URLs
echo "🔄 Updating URLs for production..."
wp search-replace 'staging.example.com' 'example.com' --export=production-ready.sql
# 4. Import to production
echo "📥 Importing to production..."
cd $PROD_PATH
wp db import $STAGING_PATH/production-ready.sql
# 5. Sync files (wtyczki/motywy)
echo "📁 Syncing files..."
rsync -av --exclude='wp-config.php' $STAGING_PATH/wp-content/ $PROD_PATH/wp-content/
# 6. Flush cache
echo "🧹 Flushing caches..."
wp cache flush
wp rewrite flush
# 7. Verify
echo "✅ Deployment complete! Verification:"
wp core version
wp plugin list --status=active | head -10
echo "🎉 Production is live!"Migracja między hostingami
#!/bin/bash
# Plik: migrate-wordpress.sh
OLD_URL="old-domain.com"
NEW_URL="new-domain.com"
BACKUP_NAME="migration-$(date +%Y-%m-%d).sql"
echo "🚚 Starting WordPress migration"
# 1. Export z starego hostingu
echo "1/5 Exporting database from old hosting..."
wp db export $BACKUP_NAME
# 2. Skopiuj plik do nowego hostingu
echo "2/5 Transferring files..."
scp $BACKUP_NAME [email protected]:/home/u123-abc/new-domain.com/
# 3. SSH do nowego hostingu i import
echo "3/5 Importing to new hosting..."
ssh [email protected] << EOF
cd /home/u123-abc/new-domain.com
wp db import $BACKUP_NAME
EOF
# 4. Search-replace URL
echo "4/5 Updating URLs..."
ssh [email protected] << EOF
cd /home/u123-abc/new-domain.com
wp search-replace '$OLD_URL' '$NEW_URL'
wp cache flush
EOF
# 5. Verify
echo "5/5 Verification..."
ssh [email protected] << EOF
cd /home/u123-abc/new-domain.com
wp option get siteurl
wp option get home
EOF
echo "✅ Migration complete!"Troubleshooting
Error: bash: wp: command not found
Przyczyna: WP-CLI nie jest w PATH lub nie jest zainstalowane
Rozwiązanie:
# Sprawdź pełną ścieżkę
which wp
# Jeśli zwraca /usr/local/bin/wp, użyj pełnej ścieżki:
/usr/local/bin/wp --info
# Lub dodaj alias
echo "alias wp='/usr/local/bin/wp'" >> ~/.bashrc
source ~/.bashrcError: Error: This does not seem to be a WordPress installation.
Przyczyna: Nie jesteś w katalogu głównym WordPress
Rozwiązanie:
# Przejdź do katalogu z wp-config.php
cd /home/u123-abc/twoja-domena.pl
# Lub użyj --path
wp --path=/home/u123-abc/twoja-domena.pl plugin listError: PHP Fatal error: Allowed memory size exhausted
Przyczyna: Operacja wymaga więcej pamięci (np. import dużej bazy)
Rozwiązanie:
# Zwiększ limit pamięci dla tej komendy
php -d memory_limit=512M /usr/local/bin/wp db import large-database.sql
# Lub permanentnie w wp-cli.yml
echo "php:
memory_limit: 512M" > wp-cli.ymlError: Error establishing a database connection
Przyczyna: WP-CLI nie może połączyć się z MySQL
Rozwiązanie:
# Sprawdź dane w wp-config.php
grep DB_ wp-config.php
# Sprawdź czy MySQL działa
wp db check
# Test połączenia
wp db cliPermission denied przy zapisie plików
Przyczyna: Niepoprawne uprawnienia do katalogów
Rozwiązanie:
# Sprawdź uprawnienia
ls -la wp-content/
# Napraw uprawnienia (Joton)
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;Przykłady praktyczne (real-world scenarios)
Scenariusz 1: Urgent security update dla 20 stron
Problem: Wykryto CVE w wtyczce Contact Form 7, musisz zaktualizować 20 stron klientów w ciągu godziny.
Rozwiązanie:
#!/bin/bash
# Plik: bulk-security-update.sh
SITES=(
"client1.com"
"client2.com"
"client3.com"
# ... 17 więcej
)
for SITE in "${SITES[@]}"; do
echo "🔄 Updating $SITE..."
ssh [email protected] << EOF
cd /home/u123-abc/$SITE
wp db export backup-security-$(date +%Y-%m-%d).sql
wp plugin update contact-form-7
wp plugin list | grep contact-form-7
EOF
echo "✅ $SITE updated!"
done
echo "🎉 All 20 sites updated!"Scenariusz 2: Migracja z HTTP na HTTPS
Problem: Włączyłeś SSL, ale linki wewnętrzne nadal są http://
Rozwiązanie:
# 1. Backup
wp db export backup-before-https.sql
# 2. Update URL w wp_options
wp option update home 'https://twoja-domena.pl'
wp option update siteurl 'https://twoja-domena.pl'
# 3. Search-replace w content
wp search-replace 'http://twoja-domena.pl' 'https://twoja-domena.pl'
# 4. Flush cache
wp cache flush
# 5. Verify (wszystkie URL powinny być https://)
wp db query "SELECT * FROM wp_options WHERE option_value LIKE '%http://%' LIMIT 10;"Scenariusz 3: Przeniesienie WooCommerce store do subdomeny
Problem: Chcesz przenieść sklep z example.com/shop na shop.example.com
Rozwiązanie:
# 1. Export z głównej domeny
cd /home/u123-abc/example.com
wp db export shop-export.sql
# 2. Kopiuj pliki do nowej subdomeny
rsync -av wp-content/ /home/u123-abc/shop.example.com/wp-content/
# 3. Import do subdomeny
cd /home/u123-abc/shop.example.com
wp db import shop-export.sql
# 4. Update URLs
wp search-replace 'example.com/shop' 'shop.example.com'
wp search-replace 'example.com' 'shop.example.com' --precise
# 5. Update permalinks
wp rewrite flush
# 6. WooCommerce specific
wp option update woocommerce_shop_page_id $(wp post list --post_type=page --name=shop --field=ID)Integracja z funkcjami Joton
Wykorzystanie backupów Joton + WP-CLI
Scenariusz: Chcesz przywrócić stronę sprzed 3 dni (backup Joton) + dodatkowa weryfikacja przez WP-CLI
Przywróć backup przez panel Joton:
- Panel → Kopie zapasowe → Wybierz backup z 3 dni temu → Przywróć
Weryfikacja przez WP-CLI:
ssh [email protected]
# Sprawdź czy przywrócenie się powiodło
wp core verify-checksums
wp plugin verify-checksums --all
# Sprawdź wersje
wp core version
wp plugin list --fields=name,version,update
# Test czy admin działa
wp user list --role=administratorRedis cache + WP-CLI
Jeśli włączyłeś Redis w panelu Joton:
# Flush Redis cache
wp cache flush
# Sprawdź status Redis Object Cache plugin
wp plugin list | grep redis
# Test czy Redis działa
wp redis status
# Metrics
wp redis infoSSH keys rotation (security best practice)
# Co 90 dni generuj nowy klucz SSH
ssh-keygen -t rsa -b 4096 -C "new-key-$(date +%Y-%m-%d)"
# Dodaj nowy klucz do panelu Joton
cat ~/.ssh/id_rsa_new.pub
# Testuj nowy klucz
ssh -i ~/.ssh/id_rsa_new [email protected]
# Jeśli działa, usuń stary klucz z panelu JotonNastępne kroki
Po opanowaniu WP-CLI możesz przejść do:
- CI/CD automatyzacja - GitHub Actions z WP-CLI deployment
- Custom WP-CLI commands - pisanie własnych komend dla powtarzalnych zadań
- Multi-site management - zarządzanie WordPress Multisite przez CLI
- Performance monitoring - połączenie WP-CLI z New Relic/DataDog
Przydatne linki
- WP-CLI Official Handbook - pełna dokumentacja
- WP-CLI Command Reference - lista wszystkich komend
- WP-CLI GitHub - issues i feature requests
- Generowanie kluczy SSH - setup SSH dla Joton
- Narzędzia programistyczne - panel Joton SSH/Cron
- Kopie zapasowe - backup strategy Joton
Powrót do: WordPress Know-How