Установка WordPress Multisite с OpenLiteSpeed на Linux

В этой статье мы развернем комбинацию приложений для эффективного управления веб-проектами: быстрый веб-сервер OpenLiteSpeed и гибкую систему WordPress Multisite.

WordPress — это ведущая CMS в мире, написанная на PHP и использующая базу данных (чаще MariaDB или MySQL). В качестве веб-сервера обычно используются Apache или Nginx. OpenLiteSpeed предлагает превосходную производительность, легковесность и открытый исходный код, что делает его идеальным выбором для ускорения загрузки ваших сайтов.

Функционал WordPress Multisite позволяет вам создавать и централизованно управлять целой сетью веб-сайтов (с использованием поддоменов или подкаталогов) на одной установке WordPress. Это существенно упрощает задачи администрирования, обновления и масштабирования для разработчиков, агентств и владельцев множества сайтов.

В этом руководстве мы пошагово пройдем через весь процесс: от подготовки системы и установки OpenLiteSpeed, MariaDB и PHP до финальной настройки WordPress в режиме Multisite. Для вашего удобства мы предоставим примеры команд установки пакетов для наиболее распространенных менеджеров пакетов в различных дистрибутивах. Команды управления службами (systemctl) универсальны для большинства современных систем, использующих Systemd. Пути установки OpenLiteSpeed по умолчанию, используемые в руководстве, основаны на стандартном методе установки от LiteSpeed.



Содержание

Шаг 1. Обновляем системные пакеты

Перед началом установки компонентов обновите вашу операционную систему. Это гарантирует, что вы работаете с последними версиями пакетов и исправлениями безопасности. Подключитесь к вашему серверу по SSH.

Выберите команду, соответствующую вашему дистрибутиву:

Для Debian/Ubuntu:

Bash
sudo apt update -y && sudo apt upgrade -y

Для RHEL/CentOS/Fedora:

Bash
sudo dnf check-update -y && sudo dnf upgrade -y

Для openSUSE:

Bash
sudo zypper refresh && sudo zypper update -y

Эти команды обновят списки пакетов и установят все доступные обновления.


Шаг 2. Установка OpenLiteSpeed

OpenLiteSpeed обычно не входит в стандартные репозитории большинства дистрибутивов. Рекомендуемый способ установки — использовать официальный репозиторий LiteSpeed, который также содержит оптимизированные сборки PHP. Сначала скачаем скрипт для добавления репозитория:

Bash
wget -O openlitespeed.sh https://repo.litespeed.sh

Добавим права к исполнению скаченному скрипту:

Bash
sudo chmod +x openlitespeed.sh

Затем выполним этот скрипт с правами суперпользователя. Скрипт автоматически определит ваш дистрибутив и добавит соответствующий репозиторий LiteSpeed в систему.

Bash
sudo bash openlitespeed.sh

После успешного добавления репозитория, установим сам пакет OpenLiteSpeed с помощью вашего менеджера пакетов:

Bash
sudo apt install openlitespeed -y #Для Debian/Ubuntu
sudo dnf install openlitespeed -y #Для RHEL/CentOS/Fedora 
sudo zypper install openlitespeed -y #Для openSUSE

💡Для RHEL/CentOS/Fedora может понадобиться установка репозитория epel:

Bash
sudo dnf install epel-release

После завершения установки, запустим службу OpenLiteSpeed (она называется lshttpd) и настроим ее автозагрузку при старте системы. Эти команды стандартны для большинства современных дистрибутивов, использующих Systemd:

Bash
sudo systemctl start lshttpd
sudo systemctl enable lshttpd

Проверим статус службы, чтобы убедиться, что она успешно запущена:

Bash
sudo systemctl status lshttpd

Вывод должен показывать статус active (running).

Проверка статуса службы OpenLiteSpeed (lshttpd) после установки с помощью systemctl.

Шаг 3. Доступ к административной панели OpenLiteSpeed

Административная панель OpenLiteSpeed доступна по умолчанию по адресу http://ВашIPСервера:7080. Перед первым входом необходимо задать имя пользователя и пароль администратора, выполнив скрипт, который находится в директории установки OLS:

Bash
sudo bash /usr/local/lsws/admin/misc/admpass.sh

Скрипт предложит вам указать имя пользователя администратора (по умолчанию admin, можете нажать Enter, чтобы оставить) и новый пароль.

Настройка учетных данных администратора для панели управления OpenLiteSpeed.

Теперь откройте веб-браузер и перейдите по адресу http://ВашIPСервера:7080. Используйте только что установленные имя пользователя и пароль для входа.

💡Не забудьте открыть в файрволле, если он активирован в вашем дистрибутиве

Для RHEL/CentOS/Fedora:

Bash
sudo firewall-cmd --add-port 7080/tcp --permanent
sudo firewall-cmd --reload
Страница входа в административную панель OpenLiteSpeed.

После успешного входа вы увидите главную панель управления OpenLiteSpeed.

Главная панель управления OpenLiteSpeed.

По умолчанию OpenLiteSpeed слушает на порту 8088. Для стандартного HTTP-трафика удобнее использовать порт 80. Для изменения этой настройки, в меню слева выберите пункт Listeners, затем нажмите View.

Переход к списку слушателей (Listeners) в OpenLiteSpeed.

На странице со списком слушателей (по умолчанию «Default») нажмите на иконку редактирования (карандаш).

Редактирование настроек слушателя «Default».

Измените значение поля Port с 8088 на 80. Сохраните изменения, нажав иконку сохранения в правом верхнем углу.

Изменение порта слушателя с 8088 на 80.

После изменения настроек слушателя, необходимо перезапустить OpenLiteSpeed, чтобы применить их. Нажмите соответствующую кнопку или ссылку в административной панели (обычно она появляется вверху страницы после сохранения).

Перезапуск службы OpenLiteSpeed для применения новой конфигурации порта.

Теперь OpenLiteSpeed настроен на прием трафика на стандартном HTTP-порту (80).


Шаг 4. Установка MariaDB и создание базы данных

WordPress требует базу данных для хранения всех своих данных. MariaDB — популярный, высокопроизводительный и полностью совместимый с MySQL сервер баз данных, доступный в репозиториях большинства дистрибутивов. Установим сервер MariaDB.

Выберите команду, соответствующую вашему дистрибутиву:

Bash
sudo apt install mariadb-server -y # Для Debian/Ubuntu
sudo dnf install mariadb-server -y # Для RHEL/CentOS/Fedora
sudo zypper install mariadb-server -y # Для openSUSE

После установки запустите и включите службу MariaDB (для систем с Systemd):

Bash
sudo systemctl start mariadb
sudo systemctl enable mariadb

Проверьте статус службы:

Bash
sudo systemctl status mariadb

Статус должен быть active (running).

Проверка статуса службы MariaDB.

Теперь создадим базу данных и пользователя для установки WordPress. Подключитесь к командной строке MariaDB.

Bash
sudo mysql

Выполните следующие SQL-команды построчно.

‼️ОБЯЗАТЕЛЬНО замените StrongPasswordHere на надежный и уникальный пароль для пользователя базы данных!

SQL
CREATE DATABASE wpdatabase;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL ON wpdatabase.* TO 'wpuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Создание базы данных и пользователя для WordPress в MariaDB.

Шаг 5. Установка PHP

WordPress написан на PHP, и ему требуются определенные расширения для полноценной работы. Репозиторий LiteSpeed предоставляет оптимизированные сборки PHP (пакеты начинаются с lsphp), специально предназначенные для работы с OpenLiteSpeed через LSAPI для максимальной производительности.

В этом шаге мы установим желаемую версию PHP и все необходимые расширения, а затем настроим OpenLiteSpeed на использование именно этой версии.

Выбор и установка версии PHP и расширений

Выберите версию PHP, которую вы хотите использовать (например, 8.3, 8.4). Обозначим выбранную версию как lsphpXY, где XY — номер версии (например, lsphp83, lsphp84). Убедитесь, что для этой версии установлены все необходимые расширения. Стандартный набор для WordPress включает поддержку базы данных (mysql), обработку изображений (imagick), сетевые функции (curl), базовые компоненты (common) и критически важное для современных версий WordPress расширение json.

Выполните команду установки пакетов, соответствующую вашему дистрибутиву, заменив XY на номер желаемой версии PHP:

Bash
# Для Debian/Ubuntu:
sudo apt install lsphpXY lsphpXY-mysqlnd lsphpXY-common lsphpXY-curl lsphpXY-imagick lsphpXY-json -y 
# Для RHEL/CentOS/Fedora :
sudo dnf install lsphpXY lsphpXY-mysqlnd lsphpXY-common lsphpXY-curl lsphpXY-imagick lsphpXY-json -y
# Для openSUSE:
sudo zypper install lsphpXY lsphpXY-mysqlnd lsphpXY-common lsphpXY-curl lsphpXY-imagick lsphpXY-json -y

Убедитесь, что команда выполнилась без ошибок и все указанные пакеты для выбранной версии lsphpXY успешно установлены.

Установка PHP 8.4 и необходимых расширений, совместимых с OpenLiteSpeed.

Настройка OpenLiteSpeed на использование установленной версии PHP

Теперь необходимо настроить виртуальный хост OpenLiteSpeed на использование установленной версии lsphpXY в качестве обработчика PHP-файлов. Это делается через административную панель OLS путем настройки External App (внешнего приложения) и Script Handler (обработчика скриптов).

  • Войдите в административную панель OLS: http://ВашIPСервера:7080.
  • Перейдите: Virtual Hosts -> нажмите на имя виртуального хоста «Example».

Настройка External App (Описание взаимодействия с PHP)

OpenLiteSpeed использует External App для описания того, как взаимодействовать с внешними обработчиками, такими как lsphp. Нам нужно убедиться, что настроена запись для вашей версии lsphpXY.

  • Перейдите на вкладку External App.
  • Если список пуст или содержит записи для старых версий PHP, нажмите кнопку «Add» (Добавить) или отредактируйте существующую запись типа LiteSpeed SAPI App, если она есть.
Переход к настройкам внешних приложений (External App) для виртуального хоста.
  • При добавлении или редактировании записи типа LiteSpeed SAPI App, заполните или измените следующие поля (замените XY на номер вашей версии PHP):
    • Name (Имя): Придумайте уникальное имя, например, lsphpXY.
    • Address (Адрес): Укажите путь к сокету LSAPI. Стандартный путь: uds://tmp/lshttpd/lsphpXY.sock.
    • Command (Команда): Укажите полный путь к исполняемому файлу lsphp вашей версии: /usr/local/lsws/lsphpXY/bin/lsphp.
    • Max Connections: Оставьте по умолчанию (например, 35) или установите значение по вашему усмотрению.
    • Instances (Экземпляры): Установите значение больше нуля, например, 1 или 5. Значение 0 означает, что OLS не будет автоматически запускать процессы lsphp.
    • Initial Request Timeout (secs)*: Установите, например, 60.
    • Retry Timeout (secs) *: Установите, например, 10.
    • Остальные настройки (Persistent Connection, Connection Idle Timeout, Cool Off Interval и т.д.) можно оставить по умолчанию. Настройка пользователя и группы для PHP-процессов наследуется от настроек самого виртуального хоста (вкладка General).
Настройка External App для lsphpXY: указание пути, сокета, количества экземпляров и таймаутов запросов.
  • Нажмите иконку сохранения, чтобы сохранить запись External App.

Настройка Script Handler (Сопоставление расширения .php с External App)

Теперь нужно указать OpenLiteSpeed, что файлы с расширением .php должны обрабатываться через External App, которое вы только что настроили (lsphpXY).

  • Для того же виртуального хоста «Example» перейдите на вкладку Script Handler.
  • Если здесь нет записи для суффикса .php, нажмите кнопку «Add» (Добавить). Если есть, отредактируйте существующую запись для .php.
Переход к настройкам обработчиков скриптов (Script Handler) для виртуального хоста.
  • При добавлении или редактировании обработчика, заполните или проверьте поля:
    • Suffixes (Суффиксы): Введите php.
    • Handler Type (Тип обработчика): Выберите LiteSpeed SAPI App.
    • Handler Name (Имя обработчика): Из выпадающего списка выберите Имя записи External App, которую вы создали или отредактировали в предыдущем шаге (например, lsphpXY).
Настройка Script Handler для обработки файлов .php с помощью указанного External App (lsphpXY).
  • Нажмите иконку сохранения, чтобы сохранить Script Handler.

Перезапуск OpenLiteSpeed для применения изменений

После всех изменений в настройках External App и Script Handler, OpenLiteSpeed покажет уведомление о необходимости перезапуска. Выполните перезапуск службы:

Bash
sudo systemctl restart lshttpd

Или используйте соответствующую кнопку в административной панели OLS.

Теперь OpenLiteSpeed настроен на использование выбранной вами версии lsphpXY для обработки PHP-файлов виртуального хоста «Example». Вы успешно установили и настроили PHP.


Шаг 6. Загрузка и установка WordPress

Загрузим последнюю версию WordPress и разместим ее в корневой директории по умолчанию для тестового виртуального хоста OpenLiteSpeed, которая находится по пути /usr/local/lsws/Example/html/.

Перейдите в эту директорию:

Bash
cd /usr/local/lsws/Example/html/

Загрузите архив WordPress:

Bash
sudo wget https://wordpress.org/latest.zip

Распакуйте скачанный архив. Файлы WordPress будут извлечены во вложенную папку wordpress.

Bash
sudo unzip latest.zip

Установите правильные права доступа для файлов WordPress, чтобы веб-сервер OpenLiteSpeed мог их читать и записывать.

Bash
sudo chown -R nobody:nogroup /usr/local/lsws/Example/html/wordpress 
sudo chown -R nobody:nobody /usr/local/lsws/Example/html/wordpress # Для Almalinux 8

Перейдите в распакованную директорию WordPress:

Bash
cd /usr/local/lsws/Example/html/wordpress

Скопируйте пример конфигурационного файла WordPress и переименуйте его в wp-config.php:

Bash
sudo mv wp-config-sample.php wp-config.php

Отредактируйте файл wp-config.php, чтобы настроить подключение к базе данных, созданной на Шаге 4. Откройте файл в текстовом редакторе (например, nano):

Bash
sudo nano wp-config.php

Найдите следующие строки:

PHP
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** Database username */
define( 'DB_USER', 'username_here' );

/** Database password */
define( 'DB_PASSWORD', 'password_here' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

Замените database_name_here, username_here и password_here на данные вашей базы данных из Шага 4 (wpdatabase, wpuser и ваш StrongPasswordHere). DB_HOST оставляем localhost.

Сохраните изменения в редакторе (Ctrl+O, Enter в nano) и выйдите (Ctrl+X).


Шаг 7. Конфигурация OpenLiteSpeed

Теперь необходимо настроить OpenLiteSpeed так, чтобы его виртуальный хост «Example» указывал на директорию, куда мы установили WordPress (/usr/local/lsws/Example/html/wordpress/). Вернитесь в административную панель OpenLiteSpeed (http://ВашIPСервера).

Перейдите в меню: Virtual Hosts -> выберите «Example» -> вкладка General.

Измените следующие параметры:

  • Document Root: Укажите путь $VH_ROOT/html/wordpress.
  • Index Files: Добавьте index.php к списку индексных файлов, например, index.html, index.php.
Настройка виртуального хоста OpenLiteSpeed: изменение корневой директории на папку WordPress и добавление index.php.

Сохраните изменения, нажав иконку сохранения. Как и после предыдущих изменений в конфигурации веб-сервера, потребуется перезапуск OpenLiteSpeed.


Шаг 8. Завершение установки WordPress в браузере

Все серверные компоненты настроены. Теперь можно завершить установку WordPress через веб-интерфейс. Откройте браузер и перейдите просто по IP-адресу вашего сервера (поскольку мы настроили слушатель на порту 80).

⚠️ Не забудьте добавить разрешающие правила для файрвола

Для RHEL/CentOS/Fedora :

Bash
sudo firewall-cmd --add-port 80/tcp --permanent
sudo firewall-cmd --reload

Вы должны увидеть страницу приветствия установки WordPress. Выберите желаемый язык и нажмите «Продолжить».

Начало установки WordPress: выбор языка.

На следующем экране введите основные данные для вашего первого сайта в сети: Название сайта, Имя пользователя администратора WordPress, Пароль и Адрес электронной почты. Используйте надежное имя пользователя (не ‘admin’) и сложный пароль! Затем нажмите «Установить WordPress».

Ввод данных для создания первого сайта и учетной записи администратора WordPress.

После завершения установки вы увидите сообщение об успехе и кнопку для входа в панель управления.

Установка WordPress завершена.

Войдите в панель управления, используя созданные учетные данные администратора WordPress.

Панель управления WordPress.

Шаг 9. Конфигурация WordPress Multisite

Теперь, когда базовая установка WordPress завершена и ваш веб-сервер настроен, мы готовы включить режим Multisite. Этот процесс требует внесения изменений в файлы конфигурации WordPress (wp-config.php и .htaccess).

Включение возможности настройки сети в wp-config.php

По умолчанию опция настройки сети Multisite скрыта в меню WordPress. Чтобы она появилась, нужно добавить специальную строку в файл wp-config.php.

Подключитесь к серверу по SSH и откройте файл wp-config.php в корневой директории WordPress:

Bash
sudo nano /usr/local/lsws/Example/html/wordpress/wp-config.php

Найдите строку /* That's all, stop editing! Happy publishing. */. Выше этой строки добавьте следующую строку:

PHP
define( 'WP_ALLOW_MULTISITE', true );
Добавление строки define( 'WP_ALLOW_MULTISITE', true ); в файл wp-config.php для активации меню настройки сети.

Сохраните изменения в файле (Ctrl+O, Enter) и закройте редактор (Ctrl+X).

Запуск мастера установки сети WordPress

Теперь, после добавления строки WP_ALLOW_MULTISITE, меню настройки сети должно появиться в панели администратора WordPress. Обновите страницу панели администратора в браузере.

В меню слева перейдите в Инструменты -> Установка сети.

Доступ к мастеру установки сети сайтов (Multisite) через меню «Инструменты».

На странице «Создание сети сайтов WordPress» вам будет предложено выбрать структуру вашей сети: с поддоменами (site1.вашдомен.ru) или подкаталогами (вашдомен.ru/site1). Убедитесь, что выбран вариант «Подкаталоги» (Subdirectory), как мы планировали. Введите Название вашей сети и Адрес электронной почты администратора сети.

Конфигурация параметров сети сайтов: выбор структуры с подкаталогами, ввод названия и email администратора.

Нажмите кнопку Установить.

Получение и добавление кодов конфигурации сети

На следующем экране WordPress предоставит вам два блока кода, которые необходимо добавить в ваши файлы wp-config.php и .htaccess для завершения активации Multisite.

⚠️Не закрывайте эту страницу, пока не скопируете коды!

Коды для завершения настройки сети сайтов, сгенерированные WordPress.

Редактирование wp-config.php для завершения настройки сети

Снова откройте файл wp-config.php на сервере:

Bash
sudo nano /usr/local/lsws/Example/html/wordpress/wp-config.php

Найдите строку /* That's all, stop editing! Happy publishing. */. Добавьте выше этой строки код из первого блока, который показал вам мастер установки сети. Этот код заменит или дополнит строку define( 'WP_ALLOW_MULTISITE', true );, которую вы добавили ранее. Пример кода (ваш IP-адрес или доменное имя в строке DOMAIN_CURRENT_SITE будут отличаться и должны соответствовать тому, что показал мастер):

PHP
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false ); // false означает подкаталоги
define( 'DOMAIN_CURRENT_SITE', 'ВАШ_IP_ИЛИ_ДОМЕН' ); // Замените на ваш IP или домен!
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

Если строка define( 'WP_ALLOW_MULTISITE', true ); все еще присутствует, вы можете удалить ее, так как define( 'MULTISITE', true ); ее заменяет.

Добавление кодов конфигурации сети из мастера установки в файл wp-config.php.

Сохраните и закройте файл (Ctrl+O, Enter, Ctrl+X).

Редактирование .htaccess для правил перезаписи сети

Откройте файл .htaccess в корневой директории WordPress. Если его нет, nano создаст его.

Bash
sudo nano /usr/local/lsws/Example/html/wordpress/.htaccess

Полностью замените всё содержимое этого файла на код из второго блока, который показал вам мастер установки сети (правила для Apache/LiteSpeed RewriteEngine). Пример кода для подкаталогов:

Apache
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [RR=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]

Замена содержимого файла .htaccess на правила перезаписи для сети сайтов.

Сохраните и закройте файл (Ctrl+O, Enter, Ctrl+X).

Вход в сеть и доступ к панели управления сетью

После внесения изменений в оба файла конфигурации, обновите страницу панели администратора WordPress в браузере. Вам, скорее всего, потребуется снова войти в систему.

Теперь в верхней панели администратора WordPress должен появиться пункт Мои сайты (My Sites). Наведите на него курсор, и в выпадающем меню выберите Управление сетью (Network Admin), а затем Консоль (Dashboard).

Доступ к панели администратора сети сайтов через меню «Мои сайты».

Вы попадете в центральную панель управления всей вашей сетью сайтов.

Создание нового сайта в сети

Из панели администратора сети вы можете добавлять новые сайты. Нажмите кнопку Создать новый сайт.

Создание нового сайта в сети WordPress Multisite.

Заполните необходимую информацию для нового сайта: Адрес сайта (только подкаталог, например site2), Название сайта, Адрес email администратора этого сайта.

Форма добавления нового сайта в сети WordPress Multisite.

Нажмите «Добавить сайт». WordPress создаст новый сайт в вашей сети.

Поздравляем! Вы успешно настроили WordPress Multisite с OpenLiteSpeed.


Заключение

Мы успешно развернули стек OpenLiteSpeed + MariaDB + PHP и настроили поверх него WordPress в режиме Multisite. Эта конфигурация обеспечивает высокую производительность и значительно упрощает управление несколькими веб-сайтами с единой точки доступа.

Теперь вы можете входить на каждый созданный сайт индивидуально или управлять ими централизованно через панель администратора сети. Изучите обширные возможности WordPress Multisite, включая установку общих тем и плагинов, управление пользователями сети и тонкую настройку каждого сайта.

Не забывайте о критически важных шагах по обеспечению безопасности: регулярно обновляйте операционную систему, WordPress, темы и плагины. Также рекомендуется настроить брандмауэр (например, ufw для Debian/Ubuntu, firewalld для RHEL/CentOS/Fedora/openSUSE) для ограничения доступа только к необходимым портам (80, 443, 22 и 7080 для админ-панели OLS, если она должна быть доступна извне).

Надеемся, это подробное руководство было полезным для вас! Если у вас есть вопросы или комментарии по процессу, будем рады обсудить их на roadit.ru. Успехов в ваших веб-разработках!

Was this helpful?

0 / 0

Добавить комментарий 0