Visas sistēmas darbojas Tavs IP: 216.73.217.36 info@cloudhosting.lv +371 66 66 29 69 Klientu zona

← Visi jautājumi

Kā manuāli pārcelt WordPress: faili, datubāze, DNS

Šī pamācība soli pa solim parāda, kā manuāli pārcelt WordPress vietni no viena servera uz citu: failu kopēšana, datubāzes pārnešana, URL pārrakstīšana un DNS pārslēgšana ar dīkstāvi tuvu nullei. Tā domāta ikvienam, kas jūtas ērti ar SSH un komandrindu. Migrācijas spraudnis nav vajadzīgs, un beigās apskatām, kad spraudnis tomēr ir saprātīga izvēle.

Kas īsti ir jāpārceļ

WordPress vietne ir trīs lietas: wp-content mape (tēmas, spraudņi, augšupielādes), MySQL vai MariaDB datubāze un daži iestatījumi failā wp-config.php. Pats WordPress kodols ir aizvietojams, to pašu versiju vari lejupielādēt no jauna mērķa serverī. Pirms kaut ko aiztiec, pārbaudi, vai mērķa serverī ir tāda pati vai jaunāka PHP versija, spraudņiem vajadzīgie paplašinājumi (biežākie: mysqli, gd vai imagick, curl, zip) un pietiekami daudz diska vietas augšupielāžu mapei.

1. solis: nokopē failus

Izmanto rsync caur SSH. Tas saglabā laika zīmogus, rāda progresu un ļauj vēlāk palaist to vēlreiz, pārkopējot tikai izmainītos failus:

rsync -avz --exclude 'wp-content/cache' old-server:/var/www/example.com/ /var/www/example.com/

Kešatmiņas mapes izslēdz: tās tāpat tiks izveidotas no jauna un bieži satur iekodētus ceļus. Ja vecais hostings dod tikai FTP, lejupielādē vienu tar arhīvu, nevis tūkstošiem atsevišķu failu:

tar czf site.tar.gz -C /var/www/example.com .

2. solis: izveido un importē datubāzes dampu

Uz vecā servera:

mysqldump --single-transaction --default-character-set=utf8mb4 -u dbuser -p dbname > site.sql

--single-transaction dod konsekventu momentuzņēmumu, nebloķējot dzīvo vietni. Pārkopē failu un importē to jaunajā serverī:

mysql -u dbuser -p newdbname < site.sql

Ja jaunajā serverī datubāzes nosaukums vai lietotājs mainās, vispirms tos izveido un piešķir tiesības. Abās pusēs saglabā utf8mb4 kodējumu: klusa pāreja uz utf8 nogriež emocijzīmes un visus pārējos 4 baitu simbolus.

3. solis: pārraksti URL drošā veidā

Ja domēns paliek tas pats, šo soli izlaid. Ja tas mainās, nekad nedarbini vienkāršu SQL UPDATE ... REPLACE() pa visām tabulām. WordPress glabā logrīku iestatījumus, tēmu opcijas un spraudņu datus kā serializētus PHP masīvus, un tajos ir ierakstīti virkņu garumi. Akla aizstāšana izmaina virknes, bet ne garumus, un dati klusi vairs neatserializējas: pazūd logrīki, atiestatās tēmas opcijas.

Pareizais rīks ir wp-cli, kas prot strādāt ar serializētiem datiem:

wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables --dry-run
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables

Vispirms palaid izmēģinājumu ar --dry-run un izlasi atskaiti pa tabulām. Ja wp-cli nav pieejams, izmanto serializācijai drošu skriptu, piemēram, Search Replace DB, un izdzēs to no servera uzreiz pēc pabeigšanas, citādi tas ir publiski sasniedzams caurums.

4. solis: izlabo wp-config.php

Atjaunini datubāzes bloku atbilstoši jaunajam serverim:

define( 'DB_NAME', 'newdbname' );
define( 'DB_USER', 'newdbuser' );
define( 'DB_PASSWORD', 'newpassword' );
define( 'DB_HOST', 'localhost' );

Pārbaudi vēl trīs lietas. Pirmkārt, $table_prefix jāsakrīt ar to, kas patiešām ir dampā. Otrkārt, saglabā esošās autentifikācijas atslēgas un "salts": to nomaiņa izmet ārā visus ielogotos lietotājus. Treškārt, ja vecajā konfigurācijā bija definēti WP_HOME un WP_SITEURL, atjaunini tos uz jauno domēnu, jo tie ir pārāki par datubāzē glabātajām vērtībām.

5. solis: notestē caur hosts failu, tad pārslēdz DNS

Vismaz dienu pirms pārcelšanas samazini A ieraksta DNS TTL līdz 300 sekundēm, lai vecā vērtība pēc pārslēgšanas ātri beidzas. Kamēr DNS vēl rāda uz veco serveri, notestē jauno, piespiežot savu datoru domēnu atrisināt tur. Pievieno rindu failā /etc/hosts (Windows: C:\Windows\System32\drivers\etc\hosts):

203.0.113.10 example.com www.example.com

Tagad tavs pārlūks iet uz jauno serveri, kamēr visi pārējie vēl redz veco. Notestē sākumlapu, pieslēgšanos wp-admin, permalinkus dažās dziļākās lapās, attēlu ielādi un jebkuru formu vai pirkuma soli. Kad viss strādā, atjaunini A un AAAA ierakstus, izņem hosts rindu un paturi veco serveri strādājošu vēl vismaz 48 stundas: daži DNS atrisinātāji TTL ignorē, un pirms izslēgšanas gribi sagaidīt, ka vecā servera piekļuves žurnāls apklust.

Biežākie kļūmju punkti un kad pietiek ar spraudni

Jauktais saturs, permalinki, failu tiesības

  • Jauktais saturs (mixed content). Ja migrācijas laikā vietne pārgāja no http uz https, saturā un opcijās iekodētie http:// URL turpina ielādēties pa parasto http, un pārlūks tos bloķē. Labo ar vēl vienu search-replace no http://example.com uz https://example.com.
  • Permalinki atgriež 404. Sākumlapa strādā, bet katra apakšlapa ir 404. Tā ir trūkstoša pārrakstīšanas konfigurācija: uz Apache nav pārkopēts .htaccess fails vai izslēgts mod_rewrite; uz nginx servera blokā trūkst try_files $uri $uri/ /index.php?$args;. Permalinku iestatījumu pārsaglabāšana wp-admin izveido .htaccess no jauna.
  • Failu tiesības. Ja augšupielādes nestrādā vai spraudņi nevar atjaunināties, faili pēc kopēšanas visticamāk pieder nepareizajam lietotājam. Uzstādi par īpašnieku PHP procesa lietotāju un tiesības 755 mapēm, 644 failiem:
    chown -R www-data:www-data /var/www/example.com
    find /var/www/example.com -type d -exec chmod 755 {} +
    find /var/www/example.com -type f -exec chmod 644 {} +

Migrācijas spraudnis vai manuāli: kad kuru

Duplicator, All-in-One WP Migration un līdzīgi spraudņi der mazai vietnei: lielākais gigabaits vai divi, viens cilvēks, kas rediģē, un gatavība visu eksportu atkārtot, ja kaut kas neizdodas. Tie sapako visu vienā arhīvā un URL pārrakstīšanu izdara tavā vietā.

Manuāla migrācija ir drošāka, kad augšupielāžu mape ir liela (spraudņa pakošana nomirst uz PHP atmiņas un izpildes limitiem), kad vietne ir noslogota un tieši pirms DNS pārslēgšanas vajag pēdējo inkrementālo rsync un svaigu dampu, multisite instalācijām, un vienmēr, kad gribi precīzi zināt, kas tika pārcelts. Manuālais ceļš ir arī vienīgais, kas dod īstu ģenerālmēģinājumu: hosts faila tests pret dzīvo datubāzi ir tas, ko arhīva spraudnis nevar piedāvāt.

Ja pārcelies pie mums, gan WordPress hostings, gan parastais mājas lapu hostings nāk ar pieejamu SSH un wp-cli, tāpēc katra šīs pamācības komanda strādā tieši tā, kā uzrakstīta. Ja migrāciju labāk gribi atdot mums, to var izdarīt atbalsts.

Gribi, lai to darām mēs?
Mājaslapu hostings. Koplietots cPanel hostings ar dienas rezerves kopijām.
Uzzināt vairāk

Gatavs sākt?

Palaid dažās minūtēs vai aprunājies ar inženieri par piemērotāko risinājumu.