
🔄 Kuidas asendada vana domeen uuega phpMyAdmini abil: juhend WordPressile
Kolisite uuele domeenile ja see on maas. Või avaneb, aga ilma stiilideta. Või administraatoripaneel ei lase sind sisse. Igaüks, kes on käsitsi WordPressi migreerinud, on selle hetke läbi elanud: andmebaas mäletab endiselt vana URL-i ja sait üritab meeleheitlikult laadida ressursse aadressilt, mida enam ei eksisteeri.
Neli SQL-päringut phpMyAdminis lahendavad probleemi viie minutiga. Ei mingeid pluginaid, WP-CLI-d ega paanikat. Allpool on samm-sammuline juhend alates praeguse domeeni leidmisest kuni lõpliku kontrollini. Koos kohandustega mittestandardsete tabeliprefiksite, HTTPS-i ja serialiseeritud andmete jaoks.
💡 Kiirülevaade:
- Leia praegune domeen wp_options tabelist: siteurl ja home väljad
- Käivita neli UPDATE päringut phpMyAdmini SQL-vahekaardil
- Lähtesta administraatori parool wp_users kaudu, kui administraatoripaneel sind sisse ei lase
- Salvesta püsilinkide seaded WordPressi seadetes, et stiilid taastada
- Poodide ja multisaidipaigaldiste puhul kasuta Better Search Replace või WP-CLI-d: tavaline REPLACE lõhub serialiseeritud massiivid
Kust alustada: leia praegune domeen andmebaasist
Enne asendamist veendu, et tead, milline domeen on saidil praegu määratud. See säästab aega, kui saiti on varem kolitud ja andmebaasi võib olla jäänud kolmas, „vahepealne" URL.
Ava phpMyAdmin, vali saidi andmebaas ja leia wp_options tabel. See sisaldab kahte rida: siteurl (WordPressi aadress) ja home (saidi aadress). Need on väärtused, mida me esmalt muudame.

Kui tabeli prefiks on mittestandardne (näiteks mysite_ wp_ asemel), otsi mysite_options tabelit. Prefiksi leiad wp-config.php failist: $table_prefix muutuja.
Neli SQL-päringut täielikuks domeenivahetuseks
Käivita iga päring ükshaaval phpMyAdmini „SQL" vahekaardil. Enne käivitamist tee kindlasti andmebaasist varukoopia: eksportimine phpMyAdmini kaudu võtab minuti ja säästab sind pöördumatute vigade eest.
Asenda http://www.oldurl väärtusega http://www.newurl kõigis allolevates päringutes. Kui sait töötab HTTPS-iga, kasuta mõlemas aadressis https://.
1. HOME ja SITEURL uuendamine
See muudab kahte võtmeaadressi wp_options tabelis. Ilma selle sammuta sait lihtsalt ei avane uuel domeenil; WordPress üritab jätkuvalt vanale ümber suunata.
1 UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldurl', 'http://www.newurl') WHERE option_name = 'home' OR option_name = 'siteurl';
2. Postituste GUID-ide uuendamine
guid väli wp_posts tabelis salvestab iga postituse püsiva identifikaatori. Selle asendamine ei ole saidi toimimise seisukohast kriitiline; WordPress ei kasuta GUID-i marsruutimiseks. Aga kui inimesed loevad sinu saiti RSS-lugejate kaudu, on GUID-ide puhtus oluline: vanad URL-id voos viivad katkiste linkideni.
1 UPDATE wp_posts SET guid = replace(guid, 'http://www.oldurl', 'http://www.newurl');
3. Postituste sisu uuendamine
Kõige mahukam päring. post_content sisaldab kõigi lehtede ja postituste teksti, sealhulgas manustatud pilte ja siselinke. Pärast selle käivitamist laaditakse kõik sisus olevad pildid uuelt domeenilt.
1 UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldurl', 'http://www.newurl');
4. Metaandmete väljade uuendamine
Kohandatud väljad, pluginate seaded, teema andmed: kõik see on salvestatud wp_postmeta tabelisse. Jäta see päring vahele ja saad katkised lingid ootamatutes kohtades: logo jaluses, taust kohandajas, URL sinu SEO-pluginas.
1 UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://www.oldurl', 'http://www.newurl');
Pärast kõigi nelja päringu käivitamist ava sait uuel domeenil. Kui kõik on õigesti tehtud, ei tohiks probleeme olla. Kuid mõnikord juhtub midagi muud: teade „Error establishing a database connection" või leht avaneb ilma stiilideta.

Esimene asi, mida selles olukorras vajad, on juurdepääs administraatoripaneelile.
Kuidas pääseda administraatoripaneelile, kui parool on kadunud või sait sind sisse ei lase
Klient ei jätnud parooli. Või lukustasid end domeeni muutes välja ja /wp-admin viskab sind lõputusse ümbersuunamisse. Siin on kaks võimalust administraatori õiguste saamiseks otse andmebaasi kaudu.
Administraatori parooli lähtestamine phpMyAdmini kaudu
Ava wp_users tabel (sinu prefiks võib erineda: mysite_users jne). Leia administraatori õigustega kasutaja ja klõpsa „Muuda":

user_pass real vali rippmenüüst MD5 funktsioon ja sisesta uus parool kõrvalolevasse välja. Klõpsa „Mine":

Märkus: tänapäevane WordPress kasutab phpass-i (bcrypt-räsisid), mitte MD5. Aga kui sisestad WordPressi parooli, kontrollib see räsi järjest: kui bcrypt-kontroll ebaõnnestub, proovib MD5 varuvarianti ja räsib parooli kohe ümber praegusesse vormingusse. Seetõttu toimib MD5 phpMyAdmini kaudu ajutise võtmena.
Administraatori loomine PHP kaudu
Alternatiivne meetod on lisada uus administraator programselt. Kood sisestatakse aktiivse teema functions.php faili või MU-plugin'i kaudu.
Lisa oma alamteema functions.php faili järgmine:
1 function sdstudio_add_admin_user() { 2 $userdata = array( 3 'user_login' => 'tempadmin', 4 'user_pass' => 'TempPass123!', 5 'user_email' => '[email protected]', 6 'role' => 'administrator', 7 ); 8 wp_insert_user( $userdata ); 9 } 10 add_action( 'init', 'sdstudio_add_admin_user' );
Funktsioon wp_insert_user() loob kasutaja antud parameetritega ja init konks käivitub igal WordPressi päringul. Ava lihtsalt saidil ükskõik milline leht ja kasutaja luuakse.
Pärast administraatoripaneeli sisselogimist kustuta kindlasti nii funktsioon functions.php failist kui ka loodud ajutine kasutaja. tempadmin-i jätmine avatekstis parooliga on turvaauk.
Katkiste piltide ja stiilide parandamine pärast domeeni vahetust
Sul on administraatoripaneeli ligipääs, aga pildid ei lae ja kujundus on katki. Üheksal juhul kümnest aitab üks lihtne toiming.
Mine "Seaded" → "Püsilinkide" alla:

Ära muuda midagi, klõpsa lihtsalt "Salvesta muudatused":

WordPress ehitab URL-ide struktuuri uuesti üles, uuendab ümberkirjutusreeglite vahemälu ja tühjendab sisemise ümbersuunamise vahemälu. Pärast seda taastuvad pildid tavaliselt oma kohtadele.
Kui see ei aidanud, tähendab see, et vana domeen on manustatud serialiseeritud massiividesse. Tavaline SQL-i REPLACE lõhub need: serialiseeritud massiivi stringi pikkus on sisse kodeeritud numbrina ja "vana-pikk-domeen.ru" asendamine "uus-lühike.io"-ga muudab seda pikkust, muutes massiivi loetamatuks. Paigalda tasuta plugin Better Search Replace; see käsitleb serialiseerimist õigesti ja näitab enne asendamist, kui palju vasteid igast tabelist leiti.
WP-CLI-ga saitide puhul on see ühe käsuga veelgi lihtsam:
1 wp search-replace 'http://olddomain.ru' 'https://newdomain.io' --all-tables --dry-run
--dry-run lipp näitab esmalt, mida asendataks, ilma muudatusi tegemata. Kui oled kindel, käivita käsk ilma selle liputa. WP-CLI search-replace käsitleb samuti serialiseeritud andmeid ja teeb seda kiiremini kui veebiliides.
Allolev video demonstreerib kogu protsessi alates phpMyAdminisse sisselogimisest kuni saidi kontrollimiseni pärast asendamist:
⁉️🤔 Korduma kippuvad küsimused
Kas domeeni asendamiseks on kohustuslik kasutada phpMyAdmini?
Ei. Kui saiti pole veel üle tõstetud, teevad Duplicator või All-in-One WP Migration asenduse juurutamise käigus automaatselt. Kui sait on juba uuel majutusel ilma administraatori ligipääsuta, jäävad üle SQL-päringud phpMyAdmini, Admineri või WP-CLI kaudu. Enamiku veebihaldurite jaoks on phpMyAdmin kõige otsesem ja kontrollitavam meetod: näete iga toimingut, selle asemel et usaldada mõne pluginat kui musta kasti.
Mida teha, kui tabeli prefiks ei ole wp_?
Kontrollige konstandi
$table_prefixväärtust failiswp-config.php. Tavaliselt on seewp_, kuid majutusteenused või turvapluginad nagu Solid Security (endine iThemes Security) muudavad selle mõnikord suvaliseks. Kõigis ülaltoodud päringutes asendagewp_oma prefiksiga (näiteksxyz123_optionswp_optionsasemel).
Miks avaneb sait pärast asendamist ilma stiilideta?
Vana domeen on jäänud teema seadetesse, vahemällu või CDN-i. Lähtestage püsilinkide seaded (juhised ülalpool) ja tühjendage vahemälu plugina vahemälu. Kui kasutate Cloudflare'i või muud CDN-i, tühjendage vahemälu teenusepakkuja poolel. Kui see ei aidanud, käivitage Better Search Replace: vana URL on tõenäoliselt manustatud serialiseeritud
theme_mods_*massiivi.
Sait on HTTPS-il, kuid pärast kolimist sertifikaat ei tööta. Mida teha?
Veenduge, et kasutasite kõigis päringutes
https://(mittehttp://). Kontrollige, et mõlemad aadressid WordPressi seadetes pärast administraatori paneeli sisselogimist algaksidhttps://. SSL-sertifikaat ise seadistatakse majutuse poolel, juhtpaneeli või tasuta Let's Encrypti kaudu. See on eraldi protseduur, mis ei ole andmebaasiga seotud.
Kas ma saan domeeni asendada ilma ligipääsuta phpMyAdminile?
Jah. WP-CLI:
wp search-replace 'http://olddomain' 'http://newdomain' --all-tables. Ainult FTP: lisage failiwp-config.phpreaddefine('WP_HOME','http://newdomain');jadefine('WP_SITEURL','http://newdomain');. See alistab ajutiselt aadressid ja annab teile administraatori ligipääsu. Pärast sisselogimist eemaldage need read ja salvestage seaded liidese kaudu.
Kas ma pean muutma GUID-i wp_posts tabelis või võin selle vahele jätta?
Selle muutmine ei ole saidi toimimiseks vajalik. WordPress ei kasuta GUID-i marsruutimiseks, vaid ainult postituste tuvastamiseks RSS-voogudes. Kui inimesed loevad teie saiti aktiivselt RSS-i kaudu, on asendamine mõistlik. Kui mitte, võite neljast päringust kolmanda tagajärgedeta vahele jätta.
Pärast domeeni asendamist SQL-i kaudu läksid mõne plugina seaded kaduma. Miks?
Pluginad nagu WooCommerce, Advanced Custom Fields ja slaidiseaded salvestavad URL-e serialiseeritud massiividesse tabelis
wp_postmeta. TavalineREPLACEei arvesta serialiseeringus oleva stringi pikkuse loenduriga ja lõhub struktuuri. Lahendus on Better Search Replace võiwp search-replace(need deserialiseerivad massiivi, asendavad stringi ja serialiseerivad selle tagasi). Kui olete selle juba lõhkunud, taastage andmebaas varukoopiast ja korrake asendust õige tööriistaga.
Mida teha keerulistel juhtudel: poed, multisaidid ja suured andmebaasid
Domeeni asendamine SQL-i kaudu on viieminutiline protseduur, kui teil on otsene ligipääs phpMyAdminile ja standardne tabeli prefiks. Kuid on olukordi, kus käsitsi asendamine REPLACE abil on tõeliselt riskantne.
Veebipoed WooCommerce'il sadade tuhandete tellimustega. Multisaidi võrgustikud kümnete eraldi tabelitega iga alamsaidi jaoks. Saidid, kus URL-id on sisse kodeeritud serialiseeritud massiividesse (teema seaded, leheehitajad, slaidid). Sellistel juhtudel võib üksainus SQL REPLACE andmestruktuuri kahjustada ning andmebaasi taastamine varukoopiast võtab rohkem aega kui täpse asenduse tegemine kohe esimesel korral.
Better Search Replace või WP-CLI search-replace oskavad serialiseeringuga ümber käia; kasutage neid. Ja kui andmebaasi maht ületab gigabaidi ning vea hind on kõrge, maksab arendusspetsialisti töötund vähem kui poe taastamine, mille seisak maksab raha.
Saidi kolimise teemat, säilitades SEO ja kaotamata liiklust, käsitlesime eraldi juhendis. Ja kui puutute pärast asendamist kokku konkreetse veaga, kirjutage kommentaaridesse ja aitame diagnostikaga.



