Преместването на WordPress сайт между два сървъра е често срещана задача при промяна на хостинг услугата или при преминаване към по-мощна среда. Процесът изисква внимание, защото WordPress се състои както от файлове, така и от база данни. В следващите редове ще разгледаме стъпките, които трябва да се следват, за да се извърши миграцията коректно и без загуба на данни.
Прехвърляне на файловете с rsync през SSH
За прехвърляне на файловете между два сървъра е най-удобно да се използва командата rsync. Тя позволява синхронизиране на данни чрез SSH връзка и копира само променените файлове, което я прави бърза и ефективна. Допълнително предимство е възможността за работа с SSH ключ вместо с парола, което осигурява по-добра сигурност.
Основните опции, които се използват, са -a за архивен режим (запазване на структурата и правата на файловете), -v за детайлен изход и --progress за визуализиране на напредъка. Чрез параметъра -e се задава SSH връзката, включително портът и пътят до ключа.
Примерна команда за копиране на файловете може да изглежда така:
rsync -av --progress -e "ssh -p 1022 -i private-key.pkey" /home/cpanel/public_html/ cpanel@server.hosting.bg:~/public_html/
Преди да изпълните командата, е важно да определите правилните директории. В cPanel това може да се направи от менюто Domains, където е посочена основната директория (root) на съответния домейн. Уверете се, че целевата директория на новия сървър съществува и има необходимите права за достъп. При по-големи сайтове е препоръчително да се направи тестово изпълнение с флага --dry-run, което позволява да се провери какви файлове ще бъдат прехвърлени, без реално да се извърши копирането.
Прехвърляне на базата данни
След като файловете са копирани, следва прехвърлянето на базата данни. Най-добрият начин е чрез командата mysqldump, която се изпълнява през SSH. Този метод е по-сигурен и по-надежден в сравнение с експортиране през phpMyAdmin, тъй като няма ограничения в размера и времето за изпълнение на заявките.
Влезте в стария сървър и създайте dump файл с базата данни чрез следната команда:
mysqldump -uusername -p database_name > /home/cpanel/database.sql
След като dump файлът е създаден, може да бъде прехвърлен към новия сървър със същия rsync, например:
rsync -av -e "ssh -p 1022 -i private-key.pkey" /home/cpanel/database.sql cpanel@server.hosting.bg:~/
В новия cPanel акаунт трябва да се създаде нова база данни и потребител от менюто Databases, като на потребителя се предоставят всички права върху базата. След това dump файлът може да се импортира в новата база чрез:
mysql -uusername -p new_database < /home/cpanel/database.sql
Настройки на WordPress след прехвърлянето
След като файловете и базата данни са прехвърлени, трябва да се коригират настройките във файла wp-config.php. Отворете го и заменете данните за базата със съответните стойности за новия сървър:
define( 'DB_NAME', 'new_database' );define( 'DB_USER', 'new_user' );define( 'DB_PASSWORD', 'new_password' );define( 'DB_HOST', 'localhost' );
След това проверете версията на PHP в новия акаунт, като тя трябва да бъде съвместима с използваната WordPress версия и плъгините.
Ако сайтът използва кеширане чрез Redis, е необходимо да се уверите, че правилният порт е зададен. При Redis Object Cache това се настройва през wp-config.php файла, а при W3 Total Cache може да се редактира файлът /wp-content/w3tc-config/master.php, като се коригира стойността 'redis.servers' => '127.0.0.1:XXXX'.
Преместване на SSL/TLS сертификата
Ако сайтът използва персонализиран SSL/TLS сертификат, той може да се прехвърли от стария към новия cPanel чрез менюто SSL/TLS → Manage SSL sites. Оттам се копират съдържанията на трите секции — Certificate (CRT), Private Key (KEY) и CA Bundle (CABUNDLE) — и се поставят в съответните полета на новия сървър. В случай че се използва AutoSSL или Let’s Encrypt, няма нужда от ръчно прехвърляне, тъй като системата автоматично ще издаде нов сертификат след миграцията.
Тестване на сайта преди промяна на DNS
Преди да насочите домейна към новия сървър, е препоръчително да тествате дали сайтът работи коректно. Това може да се направи чрез добавяне на запис в hosts файла на Вашия компютър. Например:
192.168.1.10 example.com www.example.com
След запазване на файла браузърът ще зарежда сайта от новия сървър, без реално да е извършена промяна в DNS записите.
Промяна на DNS записите и финални проверки
Когато сте сигурни, че сайтът функционира правилно, може да насочите домейна към новия сървър. Добра практика е предварително да се намали стойността на TTL на DNS записите до 300 секунди, за да се ускори разпространението на промяната. След това се актуализира A записът, като се задава IP адресът на новия сървър.
След като домейнът вече сочи към новия хостинг, е важно да се направят финални проверки — дали сайтът зарежда правилно през HTTPS, дали всички медийни файлове са налични, дали кешовете са изчистени и дали контактните форми и имейлите функционират. Ако сайтът използва Cron задачи, проверете дали те са добавени и активни в секцията Cron Jobs на новия акаунт.
Заключение
Миграцията на WordPress сайт между сървъри със cPanel може да бъде напълно безпроблемна, ако се спазят няколко последователни стъпки. Използването на rsync и SSH осигурява бързо и сигурно прехвърляне на файловете, а прехвърлянето на базата данни чрез mysqldump гарантира целостта на съдържанието. След внимателна проверка на настройките и тестване чрез hosts файла, преместването на сайта може да бъде извършено без прекъсване на достъпа и без загуба на данни.
Абонирайте се за СуперБлога, за да получавате полезно и експертно познание от света на уеб хостинг услугите, касаещо Вашия сайт и дигитално присъствие.
![10 основни грешки при изграждането на един уебсайт [Аудио] 10 основни грешки при изграждането на един уебсайт](https://blog.superhosting.bg/wp-content/uploads/2021/10/SH_Fail_blog-1-150x150.png)
![Black Friday: Маркетинговата стратегия и нейните тънкости [Аудио]](https://blog.superhosting.bg/wp-content/uploads/2021/11/SH-BG-BlackFr-4-blog-2-150x150.png)
![Каква е разликата между домейн и уебсайт? [Аудио] Каква е разликата между домейн и уебсайт?](https://blog.superhosting.bg/wp-content/uploads/2020/12/SH-domain-website-blog-150x150.png)