Как да променим домейна на WordPress сайт?
Съдържание
Причини за промяна домейна на уеб сайт
Съществуват много различни причини, поради които един уебмастер може да пожелае промяна на домейна:
- закупуване на домейн в по-популярно TLD (.COM);
- закупуване на по-подходящо домейн име;
- промяна името на търговската марка (rebranding);
- структурна промяна на бизнеса (придобиване, сливане, партньорство...);
- обединяване на няколко близки по значение домейни в един нов домейн;
- забрана (suspend) на стария домейн и ново начало с нов домейн;
- преместване на сайта от поддиректория;
- добавяне/премахване на
www
към/от URL адреса; - инсталиране на SSL сертификат и промяна на протокола от
http://
наhttps://
;
В описаните ситуации имаме съществуващ сайт, чието домейн име трябва да бъде променено. И тъй като WordPress е най-масово използваната платформа за създаване на сайтове, в статията ще покажем няколко начина, по които може да променим домейна на WordPress сайт.
Методи за промяна на WordPress домейн
Има различни методи, по които може да извършим тази промяна чрез:
- импортиране архив на базата данни от тестовата инсталация в нова инсталация (с идентична тема, плъгини и настройки);
- копиране на файловете в конфигурационната директория на новия домейн (със същата или нова база данни);
- архивиране на сайта с WordPress плъгин (файлове и база данни) и импортиране на архива в директорията на новия домейн;
- клониране на сайта в нова директория с нов домейн;
и други подобни...
Всички тези методи доказано работят, но в статията ще ви покажем най-лесния начин за постигане на същия резултат - като заменим текущия домейн на WordPress сайта с нов домейн.
Точно така - без копиране и местене на файлове, без експортиране и импортиране на базата данни, без инсталиране и настройване на плъгини - само с промяна на домейна.
Нещо повече - промяната на домейна на WordPress сайт може да бъде направена по няколко различни начини и вие може да изберете този, който е най-удобен за вас.
В примера ще заменим домейна wordpress-old.site
с wordpress-new.site
, но няма абсолютно никаква разлика при работа с поддомейни, важно е домейните/поддомейните да бъдат коректно конфигурирани в хостинга.
Напомняме ви, че при вашите тестове трябва да замените примерните под/домейни с ваши собствени активни домейни/поддомейни.
Конфигуриране на нов домейн в хостинга
На първото изображение виждаме конфигурацията на текущия домейн wordpress-old.site
- root
директорията на сайта е public_html/_wordpress_site
:
Отваряме cPanel > Addon Domains и създаваме новия допълнителен домейн wordpress-new.site
като в полето Document Root въвеждаме пътя до root
директорията на текущия сайт:
Кликаме бутона Create и след няколко секунди новия допълнителен домейн се добавя в таблицата с конфигурираните домейни в хостинга:
Промяна на домейна в WordPress Dashboard
Така изглежда текущия сайт wordpress-old.site
в браузър:
Логваме се в администрацията на WordPress и отваряме панела Settings > General:
Полетата, свързани с промяната на домейна, са:
- WordPress Address (URL) - полето съдържа URL адреса, който посетителите въвеждат за да достигната сайта;
- Site Address (URL) - полето съдържа URL адреса, на който се хоства WordPress инсталацията;
И двата URL адреса трябва да съдържат протокол (https://
или http://
) и да не завършват с наклонена черта '/' в края:
Другите две полета съдържат следната информация:
- Site Title - съдържа основното заглавие на сайта;
- Tagline - съдържа допълнително заглавие или описание;
В зависимост от дизайна на активната тема съдържанието на тези две полета може да не се вижда в сайта.
Променяме съдържанието на описаните четири полета като особено внимаваме да не допуснем грешка в изписването на домейните и запазваме промените като кликаме бутона Save Changes в дъното на панела:
След смяната на домейна WordPress прекратява текущата сесия:
и трябва да се логнем отново с новия URL адрес wordpress-new.site
:
Така изглежда същия сайт след описаните промени:
Ако въведем и запазим грешен URL адрес
Ако допуснем грешка в изписването на домейните и след запазването на промяната не можем да се логнем в администрацията на сайта, разработчиците на WordPress ни дават възможност ръчно да въведем името на сайта в два основни файла за да продължи коректната работа на сайта.
Добавяне на код в wp-config.php
Възможно е ръчно да зададем URL адреса на сайта във файла wp-config.php
. Може да достъпим файла през редактора на файловия мениджър в cPanel, през FTP (изгегляне, редактиране и качване обратно в хостинга) или SSH.
За целта трябва да добавим следните два реда код в wp-config.php
като внимаваме да не изтрием единичните кавички:
define ('WP_HOME', 'https://example-domain.com');
define ('WP_SITEURL', 'https://example-domain.com');
Този метод записва двата URL адреса (адресите могат да бъдат различни в определени ситуации) в самия сайт. След въвеждането на кода двете полета за промянa на URL адресите в панела General Settings са неактивни, но съдържат коректния домейн wordpress-new.site
:
Важно: този код не променя грешните записи в базата данни при въвеждане на грешните домейни в General Settings, а само предоставя информация с по-висок приоритет от записите в базата данни.
Ако премахнем кода от файла, сайта ще продъжи да показва грешка 404 Not Found
.
Добавяне на код в functions.php
Друг подобен изход от същата ситуация е да достъпим през файловия мениджър в cPanel, FTP или SSH файла functions.php
в активната тема (wordpress-root-dir > wp-content > themes > theme-name) и в самото начало на файла, ведната след откриващия PHP таг , да въведем следните два реда код:
update_option( 'siteurl', 'https://example-domain.com.com');
update_option( 'home', 'https://example-domain.com.com');
Логваме се успешно в администрацията и при проверка в панела General Settings забелязваме, че двете полета WordPress Address (URL) и Site Address (URL) са активни и може да правим промени в тях, също така те съдържат коректния домейн на сайта.
Препоръката на разработчиците на WordPress е веднага след като се логнем в администрацията, да премахнем двата реда код, които ние добавихме, от файла functions.php.
Промяна на WordPress домейн през phpMyAdmin
Влизаме в cPanel и в секция Databases кликаме линка phpMyAdmin:
Ако не сме сигурни коя база данни ползва сайта трябва да отворим файла wp-config.php
в root
директорията на сайта през редактора в File Manager или през SSH и да проверим.
Кликаме името на коректната база данни (или знакът плюс пред него) и в списъка с таблици кликаме името на таблицата prefix_options
:
Префиксът на WordPress по подразбиране e wp_
, но ви препоръчаме да ползвате собствен, различен префикс и по този начин ще създадете по-високо ниво на сигурност.
Първите два реда в таблицата съдържат в колоната option_value
двата URL адреса, които ние желаем да променим:
Промяната може да бъде извършена по два начина - вие трябва да изберете само единия от тях.
- Директна промяна в полето
option_value
- кликаме два пъти полето с URL адреса и то се променя в активно текстово поле, в което редактираме домейна, и кликаме извън полето или натискаме клавиш Enter, за да запазим информацията:
Полето възстановява първоначалния си вид и текстово съобщение ни потвърждава успешно извършената промяна:
- Редактиране съдържанието на
option_value
в панела Insert - кликаме линка Edit в началото на реда:
В панела Insert променяме внимателно домейна в полето option_value
и кликаме бутона Go за да запазим промяната:
Важно: и при двата метода повтаряме описаните действия за двата URL адреса - целта е в двата реда да бъде записан коректно новия домейн на WordPress сайта.
Промяна на WordPress домейн през SSH
Припомняме, че в хостинг от ICN.Bg, SSH достъп е платена опция за хостинг плановете Ултима и Икономичен, и се закупува допълнително към хостинг плана. За хостинг плановете Бизнес и Стандарт, SSH достъп заедно с други много полезни опции като Dedicated IP адрес и безплатен домейн, е безплатна опция.
Логваме се през SSH в хостинга с командата:
cpaneluser@servername[~]# ssh -p 22 cpaneluser@11.22.33.44
cpaneluser@11.22.33.44's password:
cpaneluser@servername[~]#
Логваме се в MySQL с командата:
mysql -u cpaneluser_wpresss -p
Enter password:
В MySQL промпта избираме базата данни на WordPress сайта (information_schema е служебна база данни) с командата use database-name;
:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cpaneluser_wpblog |
+--------------------+
2 rows in set (0.03 sec)
mysql> use cpaneluser_wpblog;
Database changed
Може да видим списък с таблицита с командата show tables;
:
mysql> show tables;
+-------------------------+
| Tables_in_ihost_wpblog |
+-------------------------+
| OWPB_commentmeta |
| OWPB_comments |
| OWPB_links |
| OWPB_options |
| OWPB_postmeta |
| OWPB_posts |
| OWPB_term_relationships |
| OWPB_term_taxonomy |
| OWPB_termmeta |
| OWPB_terms |
| OWPB_usermeta |
| OWPB_users |
+-------------------------+
12 rows in set (0.00 sec)
Сега изпълняваме следните команди, с всяка от които:
- променяме домейна в първия ред (
option_id
= 1) на таблицатаprefix_options
:
mysql> UPDATE `OWPB_options` SET `option_value` = 'http://wordpress-new.site' WHERE `OWPB_options`.`option_id` = 1;
Query OK, 1 row affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0
- променяме домейна във втория ред (
option_id
= 2) на таблицатаprefix_options
:
mysql> UPDATE `OWPB_options` SET `option_value` = 'http://wordpress-new.site' WHERE `OWPB_options`.`option_id` = 2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
- променяме основното заглавие на WordPress сайта:
mysql> UPDATE `OWPB_options` SET `option_value` = 'New Site' WHERE `OWPB_options`.`option_id` = 3;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
- променяме допълнителното заглавие:
mysql> UPDATE `OWPB_options` SET `option_value` = 'My New Wordpress Blog' WHERE `OWPB_options`.`option_id` = 4;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Излизаме от MySQL промпта:
mysql> quit;
Bye
cpaneluser@servername [~]#
Промяна на WordPress домейн с WP-CLI
Първо проверяваме дали в хостинга е инсталирана SSH библиотеката за управление на WordPress WP-CLI:
cpaneluser@servername[~]# wp --info
OS: Linux 3.10.94-1.el6.elrepo.x86_64 #1 SMP Thu Dec 10 12:39:34 EST 2015 x86_64
Shell: /bin/bash
PHP binary: /usr/local/php71/bin/php-cli
PHP version: 7.1.11
php.ini used: /usr/local/php71/lib/php.ini
WP-CLI root dir: phar://wp-cli.phar
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /home/cpaneluser
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 1.5.1
cpaneluser@servername[~]#
Навигираме до root директорията на WordPress сайта и изпълняваме следните две команди:
wp option update home 'http://example-domain.com'
wp option update siteurl 'http://example-domain.com'
cpaneluser@servername [~]# cd public_html/_wordpress_site
cpaneluser@servername [~/public_html/_wordpress_site]# wp option update home 'http://wordpress-new.site'
Success: Updated 'home' option.
cpaneluser@servername [~/public_html/_wordpress_site]# wp option update siteurl 'http://wordpress-new.site'
Success: Updated 'siteurl' option.
cpaneluser@servername [~/public_html/_wordpress_site]#
Обобщение
Накратко припомняме описаните в статията начини, по които може да променим домейна на WordPress сайт:
- през Dashboard > Settings > General - въвеждаме пълния URL, не само домейна без да добавяме '/' накрая;
- чрез добавяне на два реда код в wp-config.php файла в root директорията на WordPress - не променя грешните записи в базата данни;
- чрез добавяне на два реда код в functions.php файла в активираната тема на сайта - този метод променя грешните записи в базата данни;
- през phpMyAdmin - променяме домейна директно в базата данни в таблица
prefix_options
в колонатаoption_value
; - през SSH - логваме се в MySQL, избираме базата данни и изпълняваме команди, с които променяме домейна (и по желание заглавията) на WordPress сайта;
- през WP-CLI - навигираме до root директорията на сайта и изпълняваме две команди;