Uporaba WP-CLI na gostovanju cPanel: najpogostejši ukazi

WordPress Branje: 6 min

WP-CLI je vmesnik ukazne vrstice za WordPress: z njim lahko izklopiš ali posodobiš vtičnike tudi, če se skrbniški vmesnik ne naloži, prepišeš naslov spletnega mesta in v sekundah opraviš naloge, za katere bi v brskalniku potreboval veliko klikov. V naših paketih gostovanje cPanel je ukaz wp nameščen in ga je mogoče uporabljati v paketih z dostopom SSH (cP Premium, cP Pro, cP Pro 100).

Članek prikazuje, kako delati varno in na kaj paziti na strežnikih cPanel aWh, ter zbira ukaze za vsakdanjo rabo.

Odpiranje terminala

  • Terminal cPanel: v skupini Napredno v cPanelu klikni ikono Terminal. Ukazna vrstica, ki se odpre v brskalniku, je enaka povezavi SSH in že teče kot tvoj uporabnik.
  • SSH: s svojega računalnika lahko vstopiš na vratih 4231, s ključem SSH (prijave z geslom ni). Nastavitev ključa opisuje članek o ustvarjanju ključa SSH.

Terminal cPanel: ukazi WP-CLI v mapi spletnega mesta staging

Vedno delaj na pravem spletnem mestu

WP-CLI dela iz mape, v kateri si, ali iz mape, ki jo navedeš s stikalom --path. Če na gostovanju teče več WordPressov (na primer produkcijska stran in kopija staging), ukaz wp plugin deactivate --all, izdan v napačni mapi, ustavi drugo spletno mesto. Zato na začetku vsakega dela preveri:

cd ~/public_html
pwd
wp core is-installed && wp option get siteurl

Če siteurl ni naslov spletnega mesta, na katerem si želel delati, si v napačni mapi.

Kje so spletna mesta? Glavna domena je v mapi public_html. Ob dodajanju nove domene ali poddomene cPanel ustvari mapo z imenom domene ob public_html: WordPress poddomene staging.pelda.hu je na primer v mapi ~/staging.pelda.hu, ne pod public_html. Točno pot vidiš v stolpcu Korenski imenik dokumentov strani Domene (podrobnosti: Kateri je korenski imenik moje spletne strani?).

Pri enkratnih ukazih namesto menjave mape navedi pot:

wp --path=/home/felhasznalonev/staging.pelda.hu plugin list

Posebnosti strežnikov cPanel aWh

  • Različica PHP: php ukazne vrstice in s tem tudi WP-CLI uporablja različico PHP, ki si jo nastavil v vmesniku Select PHP Version (razširitve in nastavitve PHP). PHP ukazne vrstice nima omejitve pomnilnika, zato velik uvoz tu steče, tudi če se v brskalniku zatakne.
  • Del ukazov wp db ne deluje. Zaradi varnostnih nastavitev PHP ne sme zagnati zunanjega programa (proc_open je onemogočen), zato se wp db export, wp db import, wp db query, wp db check in wp db cli ustavijo s to napako: The PHP functions proc_open() and/or proc_close() are disabled. Iz istega razloga tudi wp --info na koncu izpisa javi napako. wp db prefix, wp db tables, wp db size in wp db search delujejo, prav tako wp search-replace in wp option. Za varnostno kopijo podatkovne baze in poizvedbe SQL neposredno uporabi ukaza mysqldump in mysql (glej spodaj) ali phpMyAdmin (uvoz in izvoz podatkovne baze).
  • Predpona tabel ni vedno wp_. WP Toolkit ob namestitvi dodeli naključno predpono (na primer 1vL7334_options). Svojo izpiše wp db prefix; v poizvedbah SQL uporabi to.

Varnostna kopija podatkovne baze in SQL z ukazom mysql

Ukazoma mysqldump in mysql je treba podati uporabnika in geslo podatkovne baze. Da geslo ne pride v ukazno vrstico (in v zgodovino ukazov), ga iz podatkov v wp-config.php zapiši v datoteko, ki jo lahko bereš le ti:

cd ~/public_html
umask 077
printf '[client]\nuser=%s\npassword="%s"\nhost=localhost\n' \
  "$(wp config get DB_USER)" "$(wp config get DB_PASSWORD)" > ~/.my.cnf

host naj bo vedno localhost, tudi če je v datoteki wp-config.php zapisano localhost:3306. Nato:

# Varnostna kopija v domači imenik, ki s spleta ni dosegljiv
mysqldump --single-transaction --no-tablespaces "$(wp config get DB_NAME)" > ~/mentes-$(date +%F).sql
tail -1 ~/mentes-$(date +%F).sql

# Poizvedba
mysql "$(wp config get DB_NAME)" -e "SELECT COUNT(*) FROM $(wp db prefix)posts"

# Obnovitev iz varnostne kopije
mysql "$(wp config get DB_NAME)" < ~/mentes-2026-10-27.sql

Zadnja vrstica celotne varnostne kopije je -- Dump completed on …; če manjka, je bilo kopiranje prekinjeno. Če datoteke ~/.my.cnf po delu ne potrebuješ, jo izbriši (rm ~/.my.cnf), in če spremeniš geslo podatkovne baze, jo napiši znova.

Previdno z ukazi, ki spreminjajo

  • Najprej preizkusi. Kjer obstaja stikalo --dry-run (na primer pri ukazu wp search-replace), najprej zaženi z njim, preberi rezultat in šele nato zares.
  • Varnostna kopija pred tem. Po napačni množični operaciji lahko obnoviš tudi iz dnevne varnostne kopije (obnovitev iz JetBackup), vendar je svež mysqldump hitrejši.
  • Način vzdrževanja pred obiskovalci skrije napol dokončano stanje:
wp maintenance-mode activate
wp plugin update --all
wp maintenance-mode deactivate
  • Beleži sejo, če opraviš veliko korakov: po ukazu script ~/wp-cli-$(date +%F-%H%M).log vse, kar vtipkaš in kar računalnik odgovori, pride tudi v datoteko (izhod: exit).

Najpogostejši ukazi

Stanje spletnega mesta

wp core version                      # različica WordPress
wp core check-update                 # ali obstaja nova različica
wp core verify-checksums             # ali so osnovne datoteke poškodovane
wp option get siteurl                # naslov spletnega mesta
wp option get home
wp db size --size_format=mb          # velikost podatkovne baze

Vtičniki in teme

wp plugin list
wp plugin list --update=available    # tisti, za katere obstaja posodobitev
wp plugin install contact-form-7 --activate
wp plugin deactivate contact-form-7
wp plugin update --all
wp plugin update woocommerce --version=9.8.1   # na določeno različico
wp plugin delete hello

wp theme list
wp theme activate twentytwentyfive
wp theme update --all

Uporabniki

wp user list --role=administrator
wp user create szerkeszto szerkeszto@pelda.hu --role=editor
wp user update 1 --user_pass='NovoMočnoGeslo'
wp user session destroy 1 --all      # odjava z vseh naprav
wp user delete 5 --reassign=1        # njegova vsebina gre k uporabniku 1

Nastavitve, prehodni podatki, predpomnilnik

wp option get blogname
wp option update blogname "Novo ime"
wp transient delete --expired        # brisanje poteklih prehodnih podatkov
wp cache flush                       # praznjenje predpomnilnika objektov
wp rewrite flush                     # ponovna gradnja trajnih povezav

Načrtovana opravila

wp cron event list
wp cron event run --due-now          # izvedba zapadlih nalog
wp cron test

Predstavnost

wp media regenerate --yes            # ponovno ustvarjanje sličic
wp media import ~/kep.jpg --title="Naslov slike"

Zamenjava naslova

wp search-replace 'regi-domain.hu' 'uj-domain.hu' --all-tables --skip-columns=guid --dry-run

Zamenjavo naslova podrobno opisuje članek o zamenjavi URL-jev po zamenjavi domene.

Konfiguracija

wp config get DB_NAME
wp config set WP_DEBUG true --raw
wp config list

Stikalo --raw v datoteko zapiše logično vrednost (true, false) ali število brez narekovajev; pri besedilu ga izpusti.

Večina ukazov s stikalom --format=json, --format=csv ali --format=count izpiše rezultat tudi v drugi obliki, wp help <parancs> pa pokaže vse možnosti. Ponovno namestitev osnovnih datotek WordPress opisuje ločen članek: Ponovna namestitev WordPressa z WP-CLI.

Če nimaš dostopa SSH

V paketu cP Basic ni SSH in Terminala. Takrat lahko večino nalog opraviš v vmesniku WP Toolkit (WordPress Management): posodobitev, upravljanje vtičnikov in tem, varnostno kopiranje, kloniranje. Zaženeš lahko tudi ukaz WP-CLI: na kartici spletnega mesta klikni povezavo WP-CLI in v polje Ukaz okna, ki se odpre, vpiši ukaz brez besede wp (na primer plugin list). WP Toolkit rezultat pokaže v spodnjem delu okna.

WP Toolkit: polje Ukaz v oknu WP-CLI

Če redno delaš v ukazni vrstici, je vredno preiti na paket z dostopom SSH.

Nazaj: WordPress – članki (45)