Установка LOMP (OpenLiteSpeed + MySQL + PHP) на Rocky Linux 9
LOMP — это стек Linux, OpenLiteSpeed, MySQL/MariaDB и PHP. В этой инструкции подробно описаны все шаги по установке и настройке OpenLiteSpeed, установки PHP 8.2, MySQL, конфигурации виртуального хоста, SSL с LetsEncrypt и базовых проверок на Rocky Linux 9. Включены чеклисты, рекомендации по безопасности и типовые сценарии устранения неполадок.
Введение
OpenLiteSpeed — лёгкая и открытая версия веб‑сервера от LiteSpeed Technologies. Он поддерживает правила Apache Rewrite, HTTP/2 и HTTP/3, TLS v1.3 и протокол QUIC. Администрирование выполняется через WebGUI, что упрощает управление по сравнению с сервером, управляемым только через конфиг‑файлы.
LOMP — это сокращение от Linux, OpenLiteSpeed, MySQL/MariaDB и PHP. Серверы LiteSpeed хорошо работают с PHP через интерфейс LSAPI. LSPHP использует LSAPI для обслуживания динамических PHP страниц.
Эта инструкция шаг за шагом покажет, как установить LOMP на сервер с Rocky Linux 9 и подготовить его к размещению PHP‑приложений.
Кому будет полезно
- Системным администраторам, настраивающим быстрый и лёгкий PHP‑хостинг
- Разработчикам, которым нужен тестовый или продукционный сервер с OpenLiteSpeed
- DevOps‑инженерам, ищущим альтернативу Nginx/Apache
Важно. Перед началом убедитесь, что у вас есть доступ к серверу с правами sudo и рабочий FQDN для основного сайта.
Ключевые параметры и порты
Факт-бокс
- Порты: 7080 — панель администратора, 80 — HTTP, 443 — HTTPS
- Рекомендуемая PHP версия в инструкции: 8.2
- Рекомендуемый способ получения сертификатов: Certbot (Let’s Encrypt)
Предварительные требования
- Сервер с Rocky Linux 9
- Неруотвый пользователь с sudo
- Полное доменное имя (FQDN), например example.com, указывающее на сервер
- SELinux можно не отключать — инструкция учитывает стандартную работу с OpenLiteSpeed
Обновите систему:
$ sudo dnf updateУстановите утилиты, если они не установлены:
$ sudo dnf install wget curl nano unzip yum-utils -yНекоторые пакеты могут быть уже установлены.
Шаг 1 — Настройка фаервола
Rocky Linux использует firewalld. Проверьте статус:
$ sudo firewall-cmd --state
runningСписок активных сервисов в постоянных правилах:
$ sudo firewall-cmd --permanent --list-servicesОткройте порт панели OpenLiteSpeed:
$ sudo firewall-cmd --permanent --add-port=7080/tcpОткройте HTTP и HTTPS:
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=httpsПримените изменения:
$ sudo firewall-cmd --reloadПроверьте ещё раз:
$ sudo firewall-cmd --permanent --list-servicesОжидаемый вывод включает: cockpit dhcpv6-client http https ssh
Важно. Если у вас кастомная зона или более строгие правила, настройте их вместо изменения публичной зоны.
Шаг 2 — Установка OpenLiteSpeed
Скачайте последний бинарный пакет с официальной страницы OpenLiteSpeed. Пример:
$ wget https://openlitespeed.org/packages/openlitespeed-1.7.16.tgzРаспакуйте архив:
$ tar -zxf openlitespeed-*.tgz
$ cd openlitespeed
$ sudo ./install.shИнсталлятор создаст и включит systemd сервис lshttpd. Запустите сервис:
$ sudo systemctl start lshttpdПроверка версии:
$ /usr/local/lsws/bin/lshttpd -v
LiteSpeed/1.7.16 Open (BUILD built: Thu Nov 17 16:18:46 UTC 2022)
module versions:
lsquic 3.1.1
modgzip 1.1
cache 1.64
mod_security 1.4Создайте пароль администратора:
$ sudo /usr/local/lsws/admin/misc/admpass.shПри запросе укажите admin как имя пользователя и задайте безопасный пароль.
Откройте панель администратора по адресу:
http://
В первый раз браузер выдаст предупреждение о небезопасном соединении — это ожидаемо, если не установлен сертификат. Разрешите продолжить.

На странице входа используйте admin и пароль, который задали ранее.

Примечание. На некоторых конфигурациях Rocky Linux 9 инсталлятор может выдавать предупреждения о недостающих пакетах PHP. Это ожидаемо и решается установкой LSPHP из репозитория LiteSpeed.
Шаг 3 — Установка PHP 8.2 (LSPHP)
Добавьте репозиторий LiteSpeed:
$ sudo rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.3-1.el8.noarch.rpmУстановите lsphp82 и необходимые модули:
$ sudo dnf install lsphp82 lsphp82-mysqlnd lsphp82-process lsphp82-bcmath lsphp82-pdo lsphp82-common lsphp82-xml lsphp82-opcache lsphp82-soapНа момент написания могут отсутствовать lsphp82-gd и lsphp82-mbstring в репозитории. Если вам нужны эти модули, следите за обновлениями репозитория.
Проверьте версию PHP:
$ /usr/local/lsws/lsphp82/bin/php -v
PHP 8.2.1 (cli) (built: Jan 3 2023 18:40:55) (NTS)
Zend Engine v4.2.1
with Zend OPcache v8.2.1Список модулей:
$ /usr/local/lsws/lsphp82/bin/php --modules
[PHP Modules]
... (список модулей)Позже мы свяжем этот интерпретатор с OpenLiteSpeed.
Шаг 4 — Установка MySQL
Установите сервер MySQL:
$ sudo dnf install mysql-server
$ sudo systemctl enable mysqld --now
$ sudo systemctl status mysqldПример вывода статуса сервиса:
? mysqld.service - MySQL 8.0 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-17 07:31:00 UTC; 2s ago
Status: 'Server is operational'Запустите скрипт для повышения безопасности:
$ sudo mysql_secure_installationРекомендуется установить Validate Password Plugin и выбрать уровень 2 для строгих требований к паролям. Затем создайте сильный пароль для root и ответьте утвердительно на остальные вопросы по удалению анонимных пользователей и тестовой базы.
Создайте тестовую базу и пользователя:
$ mysql -u root -p
mysql> CREATE DATABASE testdb;
mysql> CREATE USER 'testuser' IDENTIFIED BY 'Your_Password123';
mysql> GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';
mysql> FLUSH PRIVILEGES;
mysql> exitЗамените пароли и имена на собственные.
Шаг 5 — Конфигурация OpenLiteSpeed
Перенос HTTP порта на 80
Зайдите в панель администратора http://


Шаг 6 — Настройка PHP в панели
Перейдите Server Configuration → External App. Отредактируйте существующую запись LiteSpeed App для PHP или создайте новую, ориентируясь на следующие значения:
Name: lsphp
Address: uds://tmp/lshttpd/lsphp.sock
Max Connections: 35
Environment: PHP_LSAPI_MAX_REQUESTS=500
PHP_LSAPI_CHILDREN=35
LSAPI_AVOID_FORK=200M
Initial Request Timeout (secs): 60
Retry Timeout : 0
Persistent Connection: Yes
Response Buffering: no
Start By Server: Yes(Through CGI Daemon)
Command: lsphp82/bin/lsphp
Back Log: 100
Instances: 1
Priority: 0
Memory Soft Limit (bytes): 2047M
Memory Hard Limit (bytes): 2047M
Process Soft Limit: 1400
Process Hard Limit: 1500Сохраните и выполните Graceful restart сервера.
Проверьте работу PHP, создав phpinfo файл и открыв http://

Шаг 7 — Создание виртуального хоста
Создайте структуру папок для сайта:
$ sudo mkdir /usr/local/lsws/example.com/{html,logs} -pПерейдите в Admin console → Virtual Hosts → Add. Заполните минимальные поля:
Virtual Host Name: example.com
Virtual Host Root: $SERVER_ROOT/example.com/
Config File: $SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf
Follow Symbolic Link: Yes
Enable Scripts/ExtApps: Yes
Restrained: Yes
External App Set UID Mode: Server UIDПосле создания, если система сообщит, что конфигурационный файл отсутствует, нажмите ссылку для его создания, затем сохраните.
Настройки General для виртуального хоста:
Document Root: $VH_ROOT/html/
Domain Name: example.com
Enable GZIP Compression: Yes
Enable Brotli Compression: YesНастройте Index files:
Use Server Index Files: No
Index files: index.php, index.html, index.htm
Auto Index: NoНастройки логирования Virtual Host:
Use Server’s Log: Yes
File Name: $VH_ROOT/logs/error.log
Log Level: ERROR
Rolling Size (bytes): 10M
Keep Days: 30Добавьте Access Log:
Log Control: Own Log File
File Name: $VH_ROOT/logs/access.log
Rolling Size (bytes): 10M
Keep Days: 30Access Control — разрешите по умолчанию все, если не требуется ограничение:
Allowed List: *
Denied List: Not setScript Handler Definition для PHP:
Suffixes: php
Handler Type: LiteSpeed SAPI
Handler Name: [Server Level]: lsphpRewrite Control:
Enable Rewrite: Yes
Auto Load from .htaccess: Yes
Log Level: Not SetДобавьте виртуальный хост в Default Listener → Virtual Host Mappings, указав домен example.com. Выполните Graceful restart.

Шаг 8 — Установка SSL
Необходимо две группы сертификатов: самоподписанный для панели и LetsEncrypt для сайта.
Создайте самоподписанный сертификат:
$ openssl req -x509 -days 365 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodesСохраните key.pem и cert.pem в домашней папке для дальнейшего использования в Listener SSL.
Установка Certbot через snapd (сначала включите EPEL):
$ sudo dnf install -y epel-release
$ sudo dnf install -y snapd
$ sudo systemctl enable snapd --now
$ sudo snap install core && sudo snap refresh core
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
$ certbot --versionПолучите сертификат для сайта через webroot:
$ sudo certbot certonly --webroot -w /usr/local/lsws/example.com/html/ --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d example.comГенерация параметров Diffie‑Hellman:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096Проверьте dry run продления:
$ sudo certbot renew --dry-runВ панели Admin создайте новый Listener для SSL: IP Address = ANY, Port = 443, Secure = Yes. Добавьте виртуальный хост mapping для example.com.
В Listener → SSL Tab укажите самоподписанный ключ для панели:
Private Key File: /home/user/key.pem
Certificate File: /home/user/cert.pem
Chained Certificate: YesВ настройках SSL Protocol укажите TLS v1.2 и TLS v1.3 и путь к dhparam:
Protocol Version: TLS v1.2 TLS v1.3
Ciphers: ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384
Enable ECDH Key Exchange: Yes
Enable DH Key Exchange: Yes
DH Parameter: /etc/ssl/certs/dhparam.pemДля виртуального хоста example.com укажите Let’s Encrypt сертификаты:
Private Key File: /etc/letsencrypt/live/example.com/privkey.pem
Certificate File: /etc/letsencrypt/live/example.com/fullchain.pem
Chained Certificate: YesВключите OCSP Stapling:
Enable OCSP Stapling: Yes
OCSP Response Max Age(Secs): 300
OCSP Responder: http://r3.o.lencr.orgДля HTTP/3 и QUIC в Virtual Hosts → SSL Tab включите опцию Enable HTTP3/QUIC.
Выполните Graceful restart.
Шаг 9 — Тест сайта
Создайте тестовую страницу:
$ sudo nano /usr/local/lsws/example.com/html/index.phpВставьте содержимое:
OpenLiteSpeed Server Install Test
Hello,';
// Define PHP variables for the MySQL connection.
$servername = "localhost";
$username = "testuser";
$password = "password";
// Create a MySQL connection.
$conn = mysqli_connect($servername, $username, $password);
// Report if the connection fails or is successful.
if (!$conn) {
exit('Your connection has failed.
' . mysqli_connect_error());
}
echo '
You have connected successfully.
';
?>
Откройте https://example.com и проверьте вывод.

Вы должны увидеть сообщение об успешном подключении к базе данных при корректных данных.
Устранение неполадок — типовые сценарии
Важно. Ниже перечислены частые проблемы и способы их поиска и устранения.
Панель 7080 недоступна
- Проверьте работу lshttpd: sudo systemctl status lshttpd
- Убедитесь, что порт 7080 открыт: sudo firewall-cmd –list-ports
- Если панель слушает только localhost, проверьте binding в конфигурации
PHP не обрабатывается, а файл скачивается
- Проверьте, что в настройках виртуального хоста прописан Script Handler для php
- Убедитесь, что Command для External App указывает на lsphp82/bin/lsphp
- Проверьте права на сокет uds и папки
Certbot не может пройти верификацию
- Убедитесь, что webroot указан корректно и доступен по HTTP
- Проверьте, что сервера проксирования или NAT не перенаправляют HTTP на HTTPS
Ошибки подключения к MySQL
- Проверьте, что MySQL слушает локально и позволяет соединения от нужного пользователя
- Убедитесь, что в скрипте используются корректные драйверы (mysqli или pdo_mysql)
HTTP/3 не работает
- Проверьте включение HTTP/3 в Listener и в настройках виртуального хоста
- Проверьте, что ваш брандмауэр и прокси поддерживают UDP порт 443, необходимый для QUIC
Советы по безопасности и hardening
- Обновляйте систему и пакеты регулярно: sudo dnf update
- Закройте неиспользуемые сервисы и порты
- Отключите root‑логин по SSH и используйте ключи
- Создайте регулярные резервные копии конфигураций /usr/local/lsws и баз данных
- Настройте мониторинг и алерты на состояние lshttpd и mysqld
- Ограничьте доступ к панели 7080 по IP, если это возможно
Автоматизация продления сертификатов
Certbot ставит cron или systemd таймер по умолчанию при установке через snap. Для уверенности добавьте задачу, которая логирует попытки:
0 3 * * * /usr/bin/certbot renew --quiet --post-hook "/usr/local/lsws/bin/lswsctrl restart"Эта строка в crontab обновит сертификаты ночью и перезапустит OpenLiteSpeed при успешном обновлении.
Альтернативные подходы
- LEMP: Linux + Nginx + MySQL + PHP — альтернативный стек с другой моделью работы PHP (php-fpm)
- LAMP: Linux + Apache + MySQL + PHP — если необходима полная совместимость с .htaccess и модулями Apache
- Использовать Docker контейнеры для изоляции окружения и упрощения миграции
Когда стоит выбрать OpenLiteSpeed
- Нужно быстрое и лёгкое решение для PHP‑приложений с хорошей производительностью
- Нужна поддержка HTTP/3 и интеграция LSAPI
Когда OpenLiteSpeed может не подойти
- Если ваш проект сильно зависит от специфичных модулей Apache, которые не поддерживаются
- Если у команды сильный опыт и инфраструктура уже заточена под Nginx
Чеклист для развёртывания (Role based)
DevOps / Сисадмин
- Установить и обновить Rocky Linux 9
- Настроить firewall и открыть порты 80, 443, 7080
- Установить OpenLiteSpeed и LSPHP
- Настроить виртуальный хост и Listener
- Настроить Certbot и автоматическое продление
- Настроить логирование и ротацию
Разработчик
- Проверить работу phpinfo
- Проверить подключение к MySQL с учётными данными приложения
- Запустить тесты интеграции приложения на целевом сервере
Специалист по безопасности
- Провести аудит прав доступа на папки сайта
- Настроить fail2ban или аналог для защиты SSH
- Проверить настройки TLS и слабые шифры
Критерии приёмки
- Панель OpenLiteSpeed доступна на порту 7080
- Сайт обслуживается по HTTPS с валидным сертификатом LetsEncrypt
- PHP 8.2 обрабатывает скрипты и phpinfo показывает lsphp
- Веб‑приложение успешно подключается к MySQL тестовой базе
Тесты и критерии приёмки (минимум)
- Загрузка страницы index.php возвращает статус 200 и строку о подключении к БД
- Certbot renew –dry-run завершается без ошибок
- Logs: отсутствие FATAL ошибок в error.log за последние 24 часа после запуска
Резервное копирование и откат
Рекомендуется сохранять:
- /usr/local/lsws/conf/ — конфигурация сервера
- /usr/local/lsws/example.com/html/ — содержимое сайта
- Базы данных через mysqldump или инструменты инкрементальных бэкапов
Пример базового отката:
- Остановить lshttpd: sudo systemctl stop lshttpd
- Восстановить /usr/local/lsws из бэкапа
- Восстановить базу данных: mysql -u root -p < dumpfile.sql
- Запустить lshttpd: sudo systemctl start lshttpd
Краткий глоссарий (1‑строка)
- LSAPI — протокол взаимодействия веб‑сервера и PHP интерпретатора, оптимизированный для LiteSpeed
- LSPHP — сборка PHP, адаптированная для работы через LSAPI
- Listener — объект в панели OpenLiteSpeed, отвечающий за прослушивание порта
- Virtual Host — логическая привязка сайта к директории и конфигурации
Советы по оптимизации производительности
- Включите OPcache и настройте его параметры для вашего приложения
- Настройте кэширование на уровне OpenLiteSpeed, если приложение статично отдаёт ресурсы
- Используйте Brotli и Gzip для сжатия контента
- Мониторьте использование памяти и количество процессов lsphp
Совместимость и миграция
- Конфигурация .htaccess будет поддерживаться, если включена опция Auto Load from .htaccess
- При миграции с Apache проверьте правила Rewrite и модули мод_security
- При переносе с Nginx перепишите конфиги в формат OpenLiteSpeed при необходимости
Заключение
Эта пошаговая инструкция покрывает установку и базовую настройку LOMP на Rocky Linux 9: OpenLiteSpeed, PHP 8.2 и MySQL, создание виртуального хоста, установка SSL и базовые проверки работоспособности. Дополнительно приведены чеклисты, сценарии устранения неполадок и рекомендации по безопасности.
Если у вас остались вопросы или нужна помощь с конкретной ошибкой, опишите окружение и логи, и мы поможем с диагностикой.
Краткое резюме
- OpenLiteSpeed — быстрый и удобный веб‑сервер с GUI
- LSPHP через LSAPI даёт хорошую производительность для PHP
- Certbot + Let’s Encrypt обеспечивает бесплатные сертификаты и автоматическое продление
Короткое объявление для команды (пример)
OpenLiteSpeed установлен на Rocky Linux 9 и готов обслуживать сайты на PHP 8.2 с автоматическим получением сертификатов LetsEncrypt. Проверьте настройки виртуального хоста и загрузите тестовую страницу.
Социальный превью
OG title: Установка LOMP на Rocky Linux 9 OG description: Подробная инструкция по установке OpenLiteSpeed, PHP 8.2 и MySQL с SSL и чеклистом по безопасности.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента