WordPress Multisite на VPS: десятки сайтов под одной админкой
Multisite — режим WordPress, где из одной установки крутится сеть сайтов: у каждого свой домен или поддомен, но общее ядро, темы и плагины. Это экономит время на обновлениях и деньги на хостинге. Разберём, как включить сеть на VPS, настроить wildcard-поддомены, nginx и SSL.
Содержание
Когда нужен Multisite, а когда нет
['Multisite оправдан, когда сайтов много и они однотипны: сеть блогов, филиалы компании, лендинги под регионы, клиентские сайты веб-студии. Обновили ядро и плагины один раз — обновились все. Один сервер, одна база (с префиксами таблиц на каждый сайт), одна панель.', 'Не стоит городить сеть ради двух непохожих проектов: их проще держать отдельными установками. Multisite добавляет ограничения — некоторые плагины несовместимы с сетевым режимом, а один тяжёлый сайт делит ресурсы с остальными.', 'Для сети из 5–20 небольших сайтов возьмите VPS с 2–4 ГБ RAM и обязательно NVMe: база растёт, и на медленном диске админка начинает тормозить. У MAATRIX на AMD EPYC + NVMe сеть из десятка сайтов спокойно живёт на среднем тарифе.']Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для мультисайтаБазовый LEMP: nginx, PHP, MySQL
['Ставим стек LEMP (Linux + nginx + MySQL + PHP-FPM):', 'sudo apt update\nsudo apt install -y nginx mysql-server php-fpm php-mysql \\\n php-curl php-gd php-mbstring php-xml php-zip unzip', 'Создаём базу и пользователя под сеть:', "sudo mysql\nCREATE DATABASE wpnet CHARACTER SET utf8mb4;\nCREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'СильныйПароль';\nGRANT ALL ON wpnet.* TO 'wpuser'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;", 'Скачиваем и распаковываем WordPress в каталог сайта:', 'cd /var/www\nsudo curl -O https://wordpress.org/latest.tar.gz\nsudo tar -xzf latest.tar.gz\nsudo chown -R www-data:www-data /var/www/wordpress']
Включаем сеть в wp-config.php
["Установите WordPress обычным образом (мастер на /wp-admin/install.php), затем откройте wp-config.php и над строкой «That's all, stop editing» добавьте:", "define('WP_ALLOW_MULTISITE', true);", 'После этого в админке появится пункт «Инструменты → Установка сети». Выберите тип адресации — поддомены (site.example.com) или подкаталоги (example.com/site). Для сети разных проектов удобнее поддомены.', 'WordPress выдаст ещё один блок констант — впишите его в wp-config.php ровно как показано (значения подставит сам мастер):', "define('MULTISITE', true);\ndefine('SUBDOMAIN_INSTALL', true);\ndefine('DOMAIN_CURRENT_SITE', 'example.com');\ndefine('PATH_CURRENT_SITE', '/');\ndefine('SITE_ID_CURRENT_SITE', 1);\ndefine('BLOG_ID_CURRENT_SITE', 1);", 'И добавит правила в .htaccess (для nginx их заменяет конфиг ниже). Перелогиньтесь — вверху появится меню «Мои сайты».']
Wildcard-поддомены: DNS и nginx
['Чтобы любой поддомен вида *.example.com вёл на сервер, добавьте в DNS wildcard-запись A на IP вашего VPS:', '*.example.com. A 203.0.113.10', 'В nginx укажите server_name с маской и стандартный обработчик WordPress:', 'server {\n listen 80;\n server_name example.com *.example.com;\n root /var/www/wordpress;\n index index.php;\n location / { try_files $uri $uri/ /index.php?$args; }\n location ~ \\.php$ {\n include snippets/fastcgi-php.conf;\n fastcgi_pass unix:/run/php/php-fpm.sock;\n }\n}', 'Проверьте конфиг и перезапустите: sudo nginx -t && sudo systemctl reload nginx.']
Wildcard SSL для всей сети
['Обычный HTTP-выпуск сертификата не покроет поддомены — для *.example.com нужен wildcard-сертификат, а он выдаётся только через DNS-проверку. Если ваш DNS у поддерживаемого провайдера, используйте соответствующий плагин certbot; универсальный ручной способ:', "sudo apt install -y certbot python3-certbot-nginx\nsudo certbot certonly --manual --preferred-challenges dns \\\n -d example.com -d '*.example.com'", 'Certbot попросит добавить TXT-запись _acme-challenge в DNS. После выпуска пропишите пути к сертификату в nginx и добавьте listen 443 ssl. Ключевой момент: без wildcard-сертификата новые сайты сети будут открываться с ошибкой безопасности.']
Добавляем сайты и частые ошибки
['Новый сайт добавляется в «Мои сайты → Управление сетью → Сайты → Добавить». Если DNS и SSL настроены как выше, поддомен заработает сразу.', '- Поддомены не открываются — забыли wildcard-запись A в DNS.
- Ошибка сертификата на поддоменах — выпустили обычный SSL вместо wildcard.
- «Инструменты → Установка сети» не появился — не добавили WP_ALLOW_MULTISITE или не перелогинились.
- Плагин ломает сеть — активируйте его сетевым способом или только на нужном сайте.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для мультисайтаЧастые вопросы
Поддомены или подкаталоги — что выбрать?
Поддомены (site.example.com) удобнее для независимых проектов и разных доменов через domain mapping. Подкаталоги проще в SSL, но выглядят как разделы одного сайта.
Сколько сайтов потянет один VPS?
Зависит от посещаемости. Сеть из 10–20 небольших сайтов комфортно живёт на 2–4 ГБ RAM с NVMe и кэшированием.
Нужен ли отдельный SSL на каждый сайт?
Нет, при поддоменах достаточно одного wildcard-сертификата на *.example.com. Для чужих доменов через mapping выпускается отдельный сертификат.