Продължете към съдържанието

Миграция на WordPress сайт от localhost към хостинг

да кажем, че сте разработили един хубав сайт за клиент и вече е време да го пуснете (сайта).

  • Какво трябва да мигрирате, за да започне сайта да работи?
  • файлове (html, php, картинки, js, css)
  • базата данни (sql)

Какви са вариантите за мигриране на WordPress сайт?

  • хостинг поддръжката да мигрира сайта
  • ползвате плъгин, за мигриция на WordPress сайта
  • ръчно мигриране на WordPress сайта

Хостинг Миграция

Ако вашият хостинг партньор има възможност да мигрира сайта вместо вас, много добре! Трябва да архивирате сайта в ZIP формат, да го качите в облака (google drive, dropbox и др.) и да изпратите на поддръжката връзка към файла, за да го свалят. По имей няма да стане заради размера на файла. Някой хостинг доставчици предлагат безплатна миграция, когато клиента е нов.

Ползвана на плъгин за мигриция на WordPress сайта

Това е една много добра идея защото ползвайки плъгин за мигриция на WordPress сайта той ще се погрижи за 99% от нещата, които трябва да се направят при миграцията.
Това включва

Duplicator - https://wordpress.org/plugins/duplicator/
All-in-One WP Migration and Backup - https://wordpress.org/plugins/all-in-one-wp-migration/

Duplicator
При Duplicator плъгина се получават два файла - installer.php и архив …(afasfasfasf_site.zip).
Трябва да създадете новата база данни на хостинга и след това да качите двата файла в директорията, където трябва да бъде инсталиран WordPress.
След това отваряте site.com/installer.php и следвате стъпките.

Важно: ползвайте НОВА база данни, защото Duplicator изтрива предишното съдържание (всички таблици).

И с двата плъгина първо трябва да се направи пакет и след това да се стартира процеса по импорт.

All-in-One WP Migration and Backup
създава един файл с разширение .wpress. Това е измислен формат от създателите на плъгина и явно им позволява да мигрират големи сайтове.
Безплатната версия на плъгина има ограничение в размера на файла, който може да се мигрира. Има платени добавки, които премахват това ограничение.

Ръчно мигриране на WordPress сайт

това е решение, ако предните варианти не са опция или сайтът е прекалено голям.
За тази ситуация си трябва добро планиране и опит за да се получат добре нещата.
За целта ще ползваме инструмента wp-cli. Повече WordPress хостинг го имат инсталиран.
Също ще трябва достатъчно просстранство и ssh достъп, за да излишни ограничения.

стъпки

  • експортиране на базата данни
  • архивиране на файловете
  • създаване на сайт в контролния панел
  • настройка на DNS записи
  • активиране на SSL сертификат
  • създаване на нова база данни
  • прехвърляне на файловете
  • разархивиране на файловете
  • обновяване на информацията в wp-config.php
  • импорт на базата данни
  • заместване на линковете http://localhost -> https://site.com
  • изчистване на кеша (cache)

експортиране на базата данни
За да експортирате базата данни (sql) трябва да го направите през инструмент, като phpMyAdmin/Adminer или с

с wp-cli
wp db export .ht_site_db.sql

mysqldump
mysqldump -uSOME_USER -pSOME_PASS --protocol=tcp MY_DB --skip-lock-tables > .ht_site_db.sql

обикновено сървърът за бази данни работи на порт 3306, но ако е на различен порт от стандартния можете да добавите това към командния ред по-горе.
-P3307

създаване на сайт в контролния панел
в зависимост от контролния панел идете в секция domains или как там се казва и добавте домейна си.

настройка на DNS записи
ако DNS сървъра и хостинга се обслужват от един и същи доставчик няма нужда да правите промени, но ако позлвате NameCheap за регистрация на домейн и ползвате друга компания за хостинг, тогава трябва да отидете в DNS manager и да добавите записи.
@ 11.22.33.44
www 11.22.33.44

създаване на нова база данни
потърсете в контролния панел database и там ще следвате стъпките, които ви излизат.

Ако имате root достъп до базата данните, можете и ръчно да създадете базата данни и портебител към нея.
обикновено се създава потребител с хост 'localhost', но ако трябва да се свързвате със сайта от всякъде трябва да заместите localhost с процент: %

CREATE USER 'site_example_com'@'localhost' IDENTIFIED BY 'dFioasfoijoijaosf4aahs';

CREATE DATABASE site_example_com_db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, CREATE ROUTINE, ALTER ROUTINE,CREATE TEMPORARY TABLES,
DROP,INDEX, LOCK TABLES ON site_example_com_db.* TO 'site_example_com'@'localhost';

FLUSH PRIVILEGES;

разархивиране на файловете
unzip some-file.zip

обновяване на информацията в wp-config.php

wp config set DB_USER site_example_com
wp config set DB_PASSWORD dFioasfoijoijaosf4aahs
wp config set DB_NAME site_example_com_db
wp config set DB_HOST localhost

импорт на базата данни
wp db import .ht_site_db.sql

заместване на линковете
http://localhost -> https://site.com

wp search-replace \
'http://localhost/nice-client' \
'https://example.com' \
--precise --recurse-objects \
--all-tables \
--network \
--skip-plugins --skip-themes --skip-packages --verbose 2>&1

по този назин ще се заместят всички линкове както трябва.
Директното заместване в базата данни е много бързо и грешно и ще повреди данните, защото WordPress ги пакетира по определен назин (сериализация) и те трябва да се разпакетират (десериализация) преди да се обработят.

изчистване на кеша (cache)
wp cache flush --skip-plugins

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *