Skip to content

Kõik WordPressist, veebiarendusest — ja mitte ainult

🔄 Kuidas asendada vana domeen uuega phpMyAdmini abil: juhend WordPressile

🔄 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.

wp_options tabel phpMyAdminis siteurl ja home väärtustega

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.

1UPDATE 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.

1UPDATE 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.

1UPDATE 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.

1UPDATE 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.

Andmebaasi ühenduse viga pärast WordPressi domeeni muutmist

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":

wp_users tabel phpMyAdminis WordPressi kasutajate nimekirjaga

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

WordPressi kasutajale MD5 parooli määramine phpMyAdmini kaudu

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:

1function 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}
10add_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:

WordPressi püsilinkide seadete leht administraatori paneelis

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

Salvesta muudatused nupp WordPressi püsilinkide seadetes

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:

1wp 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_prefix väärtust failis wp-config.php. Tavaliselt on see wp_, kuid majutusteenused või turvapluginad nagu Solid Security (endine iThemes Security) muudavad selle mõnikord suvaliseks. Kõigis ülaltoodud päringutes asendage wp_ oma prefiksiga (näiteks xyz123_options wp_options asemel).

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:// (mitte http://). Kontrollige, et mõlemad aadressid WordPressi seadetes pärast administraatori paneeli sisselogimist algaksid https://. 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 faili wp-config.php read define('WP_HOME','http://newdomain'); ja define('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. Tavaline REPLACE ei arvesta serialiseeringus oleva stringi pikkuse loenduriga ja lõhub struktuuri. Lahendus on Better Search Replace või wp 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.