WordPress Multisite (поддомейни/поддиректории)

WordPress има вградена функционалност, наречена Multisite (Мултисайт), за създаване на мрежа от сайтове, съществуваща под една инсталация. Въпреки че сайтовете са отделни, те използват средата и хостинг ресурсите на основния сайт – базата данни и дисковото пространство.

Сайтовете не са отделени в собствени директории, но имат отделни директории за качваните файлове. Също така всички сайтове използват базата данни на основния сайт, като имат собствени таблици в нея.

Администраторът на мрежата от сайтове може да управлява всеки един сайт през един административен панел – Network Admin (Администрация на мрежата).

Бележка: Поради разрастващото се естество на функционалността Мултисайт на WordPress, може да се наложи да използвате по-подходяща хостинг услуга, различна от споделен хостинг, като собствен Managed VPS или виртуален сървър.

Мултисайт е най-подходящ вариант за под-сайтове към един основен сайт (бранд, бизнес). Под-сайтовете може да представят под-брандове, различните секции в един новинарски сайт, под-сайтове към училищния сайт, различните отдели в един бизнес и други.

Мултисайт, в споделена хостинг среда, не е подходящ вариант за индивидуални и уникални, съвсем отделни уеб проекти, които с бъдещето си разрастване ще имат нужда от собствено пространство, ресурси, администрация и управление.

Официална помощна информация за Multisite:

Before You Create A Network | Create A Network | Multisite Network Administration

Инсталация на WordPress и активиране на Мултисайт

Multisite е вградена функционалност в WordPress и за да я използвате само е необходимо да инсталирате WordPress и да активирате Mulitsite в конфигурационния му файл wp-config.php.

Инсталацията на WordPress може да се извърши през WordPress мениджъра в cPanel » Нова инсталация на WordPress.

Бележка: За момента функционалностите в WordPress мениджъра не може да се използват за управление и настройки на WP Мултисайт.

Бележка: Активирането на Мултисайт функционалността за инсталация, намираща се в поддиректория не е препоръчително. Ако искате да използвате Мултисайт, поставете WordPress инсталацията в основната за сайта директория.

Активиране на Мултисайт в WordPress

След като имате инсталиран WordPress, преди да активирате Мултисайт, деактивирайте всички активни плъгини и се уверете, че опцията за постоянни/приятелски адреси е включена.

За да отключите функционалността Мултисайт в обикновена WordPress инсталация, ще трябва да редактирате конфигурационния файл – wp-config.php и да добавите в него един ред. Редакция на файла можете да направите директно през cPanel » Файлов мениджър или като използвате FTP.

Във файла wp-config.php добавете следните редове, над реда „That’s all, stop editing! Happy blogging“:

/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );

редът /* Multisite */ е коментар към кода;

След като запишете промените по файла, използването на Мултисайт в WordPress ще е разрешено, но все още няма да е активирано. Следващата стъпка е конфигуриране на форма̀та за уеб адресите на сайтовете.

Презаредете страницата на административния панел на WordPress, за да се покаже новото меню Network Setup в Tools.

Има два варианта за конфигуриране на адресите на сайтовете в WP Мултисайт, като може да се използват поддомейни или поддиректории:

поддомейн

https://site.mysupersite.com

или

поддиректория

https://mysupersite.com/site

WP Мултисайт с поддомейни (sub-domains)

След като Мултисайт е разрешен във файла wp-config.php, активирането му се извършва през админ панела.

За да използвате поддомейни за адресите на уебсайтовете, много е важно първо да създадете един специален поддомейн в cPanel (wildcard поддомейн).

Създаване на wildcard поддомейн

Създаване на Wildcard поддомейн в cPanel

При създаването на wildcard поддомейна през cPanel » Поддомейни, въдете коректно данните:

Поддомейн: Въведете само символа “*” (без кавичките).

Домейн: Това е домейнът на Мултисайт сайта.

Основна Директория: Вместо автоматично генерираната директория “_wildcard_.mysupersite.com”, трябва да изберете директорията на основния Мултисайт сайт.

Ако сайтът се намира под основния домейн в cPanel, директорията е public_html. Ако сайтът е поддомейн/адон домейн, трябва първо да проверите в коя директория се намира.

Важно: За директория на поддомейна посочете директорията на основния Мултисайт сайт.

При създаването на този специален поддомейн се създава и wildcard DNS запис за него, който насочва всички поддмейни (несъществуващи реално) към основния Мултисайт сайт. Това е нужно, за да може WordPress Мултисайт да функционира коректно. Поддомейните (адресите) на сайтовете не е нужно да се създават ръчно като поддомейни в cPanel.

Wildcard DNS записът може да се види в Редактор на DNS зони и ще изглежда по подобен начин:

*.mysupersite.com. 14400 IN A IP-адрес-на-хостинг-сървъра

Конфигурация на Мултисайт през админ панела

След като wildcard поддомейнът е създаден, можете да продължите с конфигурацията на Мултисайт в WordPress и да изберете “sub-domains” като структура за адресите на сайтовете.

За да продължите с конфигурацията, влезте в админ панела на WordPress, в меню Tools » Network Setup.

Конфигурация и активиране на Мултисайт
Конфигурация и активиране на Мултисайт.

Изберете “Sub-domains” и въведете детайли за мрежата от сайтове – заглавие и активен имейл адрес на администратора. Продължете с Install.

Важно: Модулът mod_rewrite на уеб сървъра Apache е активиран на всички хостинг услуги, единствено е нужно да добавите директивата RewriteEngine On в .htaccess файла, когато искате да го ползвате.

В случай че специалният wildcard поддомейн (*.mysupersite.com) не е създаден все още в cPanel, ще получите съобщението:

Warning! Wildcard DNS may not be configured correctly!
The installer attempted to contact a random hostname (1f0d36.supercoolwp.com) on your domain. This resulted in an error message: cURL error 6: Couldn’t resolve host ‘1f0d36.mysupersite.com’
To use a subdomain configuration, you must have a wildcard entry in your DNS. This usually means adding a * hostname record pointing at your web server in your DNS configuration tool.
You can still use your site but any subdomain you create may not be accessible. If you know your DNS is correct, ignore this message.

Wildcard поддомейнът може да се създаде и след конфигурирането на Мултисайт в WordPress. Докато не бъде създаден, поддомейните на сайтовете няма да се зареждат.

Редакция на wp-config и .htaccess файловете

Последната стъпка от активирането на Мултисайт с поддомейни, е да се добави кодът, посочен след кликване на Install.

Активиране на Мултисайт

Можете да редактирате файловете директно през cPanel » Файлов мениджър или през FTP. Направете копие на тези файлове, в случай че инсталацията не е нова.

Кодът във wp-config се поставя точно под реда, с който отключихте Мултисайт функционалността define( ‘WP_ALLOW_MULTISITE’, true );.

След като добавите кода в посочените два файла и се логнете отново в админ панела, автоматично ще се зареди Network Admin панела. Това е административният панел за вашата мрежа от сайтове.

Netwok Admin (Администрация на мрежата)
Netwok Admin (Администрация на мрежата).

През меню My Sites (Моите сайтове) можете да превключвате между Network Admin (Администрация на мрежата) и админ панела за основния сайт.

През меню My Sites (Моите сайтове) можете да превключвате между Network Admin (Администрация на мрежата) и админ панела за основния сайт.

През Network Admin можете да добавите нов сайт или да активирате свободната регистрация на нови сайтове (потребители). За всеки сайт се създава и потребител, който е администратор за сайта.

SSL сертификати за поддомейните в Мултисайт

Възможно е всеки един сайт в Мултисайт да има валиден SSL сертификат. AutoSSL сертификатите не поддържат wildcard поддомейни (*.mysupersite.com), поради това активирането на такъв е нужно да се извърши за всеки поддомейн отделно.

Това се извършва като за всеки един сайт се създаде ръчно поддомейн в cPanel. При създаване на поддомейна AutoSSL автоматично ще инсталира SSL сертификат за него.

Важно: При създаване на поддомейна, задължително трябва да се посочи директорията на основния сайт на Мултисайт.

Важно: След като се създаде поддомейна в cPanel, уверете се, че адресът на сайта е зададен в Network Admin с https:// отпред. Промяна на адреса на сайт се извършва през Network Admin панела » All Sites » Edit » таб Info.

WP Мултисайт с поддиректории (sub-directories)

За Мултисайт с поддиректории не е необходима допълнителна настройка, освен активирането на приятелските адреси. При конфигурирането изберете опцията „Sub-directories„. След което поставете посочения код във файловете wp-config.php и .htaccess.

Възможно е да преконфигурирате Мултисайт от поддомейни към използването на поддиректории. За да превключите от поддомейни към поддиректории, редактирайте кода в wp-config.php като промените следния ред от:

define('SUBDOMAIN_INSTALL', true);

на:

define('SUBDOMAIN_INSTALL', false);

След това задължително трябва да промените кода и в .htaccess файла, като поставите следния:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

# END WordPress

Бележка: Преконфигуриране на Мултисайт не се препоръчва когато вече имате създадени сайтове с поддомейни и съдържание в тях.

WP Мултисайт със собствени домейни

От версия 4.5+ на WordPress е възможно за сайтовете в Мултисайт да се използват собствени домейни. За предишни версии на WordPress това може да се осъществи с допълнителен плъгин. Функционалността за собствен домейн работи и при двата варианта за конфигурация на Мултисайт – поддомейни или поддиректории.

За да ползвате собствени домейни в Мултисайт, първо ще нужно те да се добавят в cPanel. Ако Мултисайт сайта е основен домейн, тогава допълнителните домейни може да се добавят като паркирани домейни. Ако Мултисайт сайта не е на основния домейн в cPanel, тоест с директория различна от public_html, допълнителните домейни трябва да се добавят като адон домейни (с директория към основния Мултисайт сайт).

“Site Address (URL)”

След като домейните са насочени към същия хостинг сървър, на който се намира Мултисайт сайта, в настройките на съответния сайт в Network Admin единствено е нужно да промените URL адреса на сайта “Site Address (URL)”, от поддомейн/поддиректория на собствения домейн.

WordPress Multisite Domain Mapping

Промяна на домейна/ url адреса на WordPress Мултисайт

Промяна на адреса на WordPress Мултисайт като логика e както при обикновения WordPress. Разликата е, че на много места в базата данни ще е нужно да се направи смяна на адреса. В Мултисайт има няколко таблици, в които се записва адреса на основния сайт. Освен в базата данни, адресът трябва да се промени и в конфигурационния файл на Мултисайт (wp-config.php).

Промяна на адреса в базата данни

Важно: Преди да направите промени в данните, направете бекъп на базата данни. Или направете нейно копие през phpMyAdmin » маркирате базата данни » Operations » Copy database to (пълно име за новата база,  cpuser_dbcopy).

Промяна на адреса в базата данни може да се извърши през phpMyAdmin.

В следните таблици полетата home и siteurl съдържат адреса на сайта:

wp_options

1. wp_options

Това е таблицата с настройки на основния Мултисайт сайт. Променете адреса в полета: siteurl и home, като оставите http:// или https:// в началото.

wp_sitemeta

2. wp_sitemeta

Потърсете поле siteurl и го променете. Оставете непроменен протокола в началото на адреса и завършващата наклонена черта.

wp_site

3. wp_site

Променете домейна в единствения запис. Не добавяйте протокола в началото и наклонената черта в края.

wp_blogs

4. wp_blogs

Променете домейна за всеки един сайт, който е със стария адрес. Отново само домейна, без протокол и наклонена черта.

 wp_N_option


5. wp_N_options

Всеки сайт използва отделни таблици в базата данни, съдържащи в името си номера (ID) на сайта. По същия начин, както в таблицата options на основния сайт, трябва да промените полетата siteurl и home.

Важно: Промяната на адреса в базата данни няма да промени записите, в които адресът се намира в сериализиран вид.

Промяна на адреса в конфигурационния файл

В конфигурационния файл wp-config.php променете адреса в реда:

define(‘DOMAIN_CURRENT_SITE’, ‘supercoolwp.com’);

Ако конфигурацията на Мултисайт е с използване на поддомейни, уверете се че за новия адрес също има създаден wildcard поддомейн.

Moving WordPress Multisite

Обновена: 06.04.2022
Беше ли Ви полезна тази статия?

Вижте още