Как развернуть сайт с помощью OpenLiteSpeed Web Server на Ubuntu

OpenLiteSpeed – бесплатная версия коммерческого веб-сервера LiteSpeed, построенная на событийно-управляемой архитектуре. По сравнению с классическим Apache он экономнее расходует оперативную память и процессор при высокой нагрузке, а по сравнению с Nginx – поддерживает правила mod_rewrite, что упрощает перенос сайтов на популярных CMS (WordPress, Joomla, OpenCart и других).

В этой статье разберем полный цикл: установку OpenLiteSpeed на Ubuntu 24.04, настройку PHP и базы данных, создание виртуального хоста под конкретный сайт и подключение SSL-сертификата.

Обратите внимание!
OpenLiteSpeed требует полного контроля над виртуальным сервером (установка пакетов, systemd-сервисы), поэтому разворачивать его можно только на VPS или выделенном сервере – на виртуальном хостинге с общими ресурсами такой веб-сервер установить нельзя.

Установка OpenLiteSpeed

Подключитесь к серверу по SSH и обновите список пакетов:

sudo apt update && sudo apt upgrade -y

Установка OpenLiteSpeed из официального репозитория 

Разработчики LiteSpeed Technologies поддерживают единый скрипт, который добавляет их репозиторий в систему:

sudo wget -O - https://repo.litespeed.sh | sudo bash

После того как репозиторий подключится, установите сам веб-сервер:

sudo apt-get -y install openlitespeed

Пакет разворачивается в каталог /usr/local/lsws/ – в дальнейшем все конфигурационные файлы и логи будут находиться там.

OpenLiteSpeed устанавливается как служба systemd с именем lshttpd. Проверьте ее статус:

sudo systemctl status lshttpd

Если по какой-то причине служба не стартовала, включите автозапуск и запустите ее вручную:

sudo systemctl enable lshttpd
sudo systemctl start lshttpd

Узнать установленную версию можно так:

/usr/local/lsws/bin/openlitespeed -v

Если на сервере включен UFW, разрешите порты HTTP, HTTPS и админ-панели OpenLiteSpeed:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 7080/tcp
sudo ufw allow 8088/tcp
sudo ufw reload

Порт 7080 – это админ-панель (WebAdmin Console), 8088 – порт, на котором сайт по умолчанию доступен сразу после установки. Позже, когда вы настроите отдельные «слушатели» на 80/443, порт 8088 можно будет закрыть.

Установка PHP (LSPHP)

OpenLiteSpeed работает с собственной сборкой PHP – LSPHP, которая взаимодействует с сервером по протоколу LSAPI (это быстрее, чем классический PHP-FPM через сокет). На момент подготовки статьи актуальная ветка – PHP 8.4:

sudo apt-get install lsphp84 lsphp84-common lsphp84-mysql lsphp84-curl lsphp84-opcache lsphp84-imagick lsphp84-intl -y

Если сайту на Linux нужна другая версия PHP (например, старый проект написан под 7.4 или 8.1), в репозитории есть и другие сборки – их можно ставить параллельно, меняя 84 на нужный номер версии. Полный список доступных версий LSPHP и модулей к ним можно проверить, используя команду: 

sudo apt-cache search lsphp

После установки перезапустите веб-сервер:

sudo systemctl restart lshttpd

Установка пакета lsphp84 сама по себе не означает, что сайты начнут работать на PHP 8.4. OpenLiteSpeed обращается к PHP через внешнее приложение (External App), и по умолчанию оно указывает на путь $SERVER_ROOT/fcgi-bin/lsphp5 – символическую ссылку, которая при наличии нескольких сборок может вести на другую версию. Путь нужно указать явно.

Войдите в панель WebAdmin и откройте Server Configuration - External App. В списке найдите приложение с типом LiteSpeed SAPI App (обычно оно называется lsphp) и нажмите иконку редактирования. В поле Command укажите полный путь к нужной сборке:

/lsphp84/bin/lsphp

Сохраните изменения. Затем перейдите в Server Configuration - Script Handler и убедитесь, что для суффикса php в поле Handler Name выбрано именно то внешнее приложение, которое вы только что отредактировали.

После сохранения настроек нажмите иконку Graceful Restart в правом верхнем углу панели, чтобы применить изменения без разрыва активных соединений.

Установка базы данных

Большинству сайтов (особенно на WordPress и других CMS) нужна СУБД. Обычно для связки с OpenLiteSpeed выбирают MariaDB:

sudo apt-get install mariadb-server mariadb-client -y
sudo systemctl enable --now mariadb

Пройдите базовую настройку безопасности (задайте пароль root, отключите анонимный вход и тестовую базу):

sudo mysql_secure_installation

Пароль для панели WebAdmin

При установке OpenLiteSpeed автоматически создает случайный пароль администратора и сохраняет его в файл:

sudo cat /usr/local/lsws/adminpasswd

Если хотите задать собственный пароль, выполните скрипт и следуйте подсказкам:

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

Теперь откройте в браузере адрес https://IP-адрес-сервера:7080 – браузер предупредит о самоподписанном сертификате панели, это ожидаемо, можно продолжить. Войдите под логином admin и паролем, который вы получили или задали выше.

WebAdminConsole

Заодно проверьте, что сайт-заглушка OpenLiteSpeed отвечает: откройте http://IP-адрес-сервера:8088 – должна открыться стартовая страница с надписью Congratulations.

сайт-заглушка OpenLiteSpeed

Настройка «слушателей» на портах 80 и 443

По умолчанию сервер слушает нестандартный порт 8088, поэтому для полноценной работы сайта на Ubuntu Server нужно создать отдельные «слушатели» на 80-м (HTTP) и 443-м (HTTPS) портах.

В панели WebAdmin перейдите в раздел Listeners и нажмите Add.

раздел Listeners

HTTP-слушатель:

  • Listener Name: HTTP
  • IP Address: ANY IPv4
  • Port: 80
  • Secure: No

HTTPS-слушатель:

  • Listener Name: HTTPS
  • IP Address: ANY IPv4
  • Port: 443
  • Secure: Yes

Для HTTPS-слушателя сразу после создания нужно будет указать сертификат – либо временный самоподписанный (чтобы сервис стартовал), либо сразу Let's Encrypt, если он уже выпущен.

После сохранения настроек нажмите иконку Graceful Restart в правом верхнем углу панели, чтобы применить изменения без разрыва активных соединений.

Виртуальный хост для сайта

Виртуальный хост – это конфигурация конкретного сайта: где лежат его файлы, какие домены к нему привязаны и какие обработчики использовать. Сначала подготовьте каталоги на сервере (замените betutorial.ru на свой домен):

sudo mkdir -p /usr/local/lsws/betutorial.ru/{conf,html,logs}

Каталог conf должен принадлежать пользователю lsadm – от его имени панель WebAdmin записывает конфигурационные файлы:

sudo chown -R lsadm:lsadm /usr/local/lsws/betutorial.ru/conf

А каталоги с файлами сайта и логами – пользователю, от имени которого работают PHP-процессы. В Ubuntu по умолчанию это nobody:nogroup:

sudo chown -R nobody:nogroup /usr/local/lsws/betutorial.ru/html
sudo chown -R nobody:nogroup /usr/local/lsws/betutorial.ru/logs

Этот шаг пропускать нельзя. Без прав на запись в html CMS не сможет загружать медиафайлы, устанавливать плагины и обновляться: в WordPress это проявится как ошибка при загрузке изображений или запрос данных FTP при установке плагина.

Теперь в панели WebAdmin перейдите в Virtual Hosts, нажмите Add и заполните:

  • Virtual Host Name: betutorial.ru
  • Virtual Host Root: /usr/local/lsws/betutorial.ru
  • Config File: /usr/local/lsws/conf/vhosts/betutorial.ru/vhost.conf
  • Enable Scripts/ExtApps: Yes
  • Restrained: No
раздел Virtual Hosts

Если появится предупреждение о том, что файл конфигурации еще не существует – соглашайтесь на его создание (CLICK TO CREATE). Сохраните виртуальный хост, откройте его настройки заново и на вкладке General укажите:

  • Document Root: /usr/local/lsws/betutorial.ru/html
  • Index Files: index.html, index.php

На вкладке Log настройте журналы – без этого ошибки сайта будут попадать только в общий лог сервера, и диагностика заметно усложнится.

Virtual Host Log:

  • Use Server's Log: No
  • File Name: /usr/local/lsws/betutorial.ru/logs/error.log
  • Log Level: ERROR (на время настройки можно поставить DEBUG)
  • Rolling Size: 10M

Access Log:

  • Log Control: Own Log File
  • File Name: /usr/local/lsws/betutorial.ru/logs/access.log
  • Rolling Size: 10M
  • Keep Days: 30

На вкладке Rewrite включите поддержку .htaccess, если сайт (например, WordPress) на нее рассчитан:

  • Enable Rewrite: Yes
  • Auto Load from .htaccess: Yes

Затем свяжите виртуальный хост с созданными ранее слушателями: откройте Listeners – HTTP – Virtual Host Mappings – Add и укажите:

  • Virtual Host: betutorial.ru
  • Domains: betutorial.ru, www.betutorial.ru

Повторите ту же привязку для слушателя HTTPS. После этого снова сделайте Graceful Restart.

Загрузка файлов сайта

Скопируйте файлы будущего сайта в каталог /usr/local/lsws/betutorial.ru/html. Сделать это можно с помощью файлового менеджера. 

Если сайту нужна база данных, создайте ее и пользователя в MariaDB:

sudo mysql -u root -p
CREATE DATABASE site_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'site_user'@'localhost' IDENTIFIED BY 'надежный_пароль';
GRANT ALL PRIVILEGES ON site_db.* TO 'site_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Укажите эти данные в конфигурационном файле CMS (например, wp-config.php для WordPress).

Импортировать базу данных можно через терминал, предварительно загрузив дамп на сервер. 

Подключение SSL-сертификата

Обратите внимание!
A-запись для домена и поддомена www должна указывать на IP-адрес вашего сервера. Это обязательное условие: без корректного DNS не пройдет проверка домена при выпуске SSL-сертификата Let's Encrypt.

Проще всего выпустить бесплатный сертификат Let's Encrypt через certbot:

sudo apt install certbot -y
sudo certbot certonly --webroot -w /usr/local/lsws/betutorial.ru/html -d betutorial.ru -d www.betutorial.ru

Сертификат и ключ появятся в /etc/letsencrypt/live/betutorial.ru/. Пропишите пути к ним в панели WebAdmin:

  • Для слушателя HTTPS (Listeners – HTTPS – SSL – Edit):
    • Private Key File: /etc/letsencrypt/live/betutorial.ru/privkey.pem
    • Certificate File: /etc/letsencrypt/live/betutorial.ru/fullchain.pem
    • Chained Certificate: Yes
  • Дополнительно можно задать сертификат и на уровне самого виртуального хоста (Virtual Hosts – betutorial.ru – SSL) – это удобно, если на одном IP и наборе портов «висит» несколько сайтов с разными сертификатами (используется SNI). Настройки SSL виртуального хоста имеют приоритет над настройками листенера. 

Не забудьте настроить автопродление сертификата – сertbot обычно сам добавляет задачу в cron/systemd timer, проверить ее можно командой:

sudo certbot renew --dry-run

После обновления сертификата OpenLiteSpeed нужно перезапускать (через Graceful Restart в панели), чтобы он подхватил новый файл.

Проверка работы сайта

Откройте в браузере https://ваш_домен – должен загрузиться сайт с валидным сертификатом (иконка «замка» без предупреждений). Если что-то не работает, начните диагностику с логов виртуального хоста:

tail -f /usr/local/lsws/betutorial.ru/logs/error.log
tail -f /usr/local/lsws/logs/error.log

Полезные команды для управления OpenLiteSpeed

sudo systemctl start lshttpd      				# запустить сервер
sudo systemctl stop lshttpd       				# остановить сервер
sudo systemctl restart lshttpd    				# полный перезапуск
sudo /usr/local/lsws/bin/lswsctrl restart   	# альтернативный способ перезапуска

Через панель WebAdmin перезапуск лучше делать кнопкой Graceful Restart – она перечитывает конфигурацию без разрыва уже открытых соединений с посетителями сайта.

Заключение

OpenLiteSpeed Web Server – удачный выбор, если вы хотите получить производительность LiteSpeed без затрат на коммерческую лицензию: сервер экономно расходует ресурсы VPS, «понимает» привычные .htaccess-правила и управляется через понятную веб-панель. Установка занимает несколько минут, а дальнейшая тонкая настройка (кэш, дополнительные виртуальные хосты, модуль LSCache для WordPress) выполняется прямо из браузера, без правки конфигурационных файлов вручную.

Если возникнут вопросы, напишите нам, пожалуйста, тикет из панели управления аккаунта (раздел “Помощь и поддержка”), а если вы захотите обсудить эту статью с коллегами по цеху и сотрудниками Beget – ждем вас в нашем сообществе в Telegram.