да кажем, че сте разработили един хубав сайт за клиент и вече е време да го пуснете (сайта).
- Какво трябва да мигрирате, за да започне сайта да работи?
- файлове (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