Гид по технологиям

Установка LOMP (OpenLiteSpeed + MySQL + PHP) на Rocky Linux 9

• 9 min read • DevOps • Обновлено 18 Nov 2025
LOMP на Rocky Linux 9 — OpenLiteSpeed, PHP, MySQL
LOMP на Rocky Linux 9 — OpenLiteSpeed, PHP, MySQL

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://:7080

В первый раз браузер выдаст предупреждение о небезопасном соединении — это ожидаемо, если не установлен сертификат. Разрешите продолжить.

Страница входа OpenLiteSpeed

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

Панель администратора OpenLiteSpeed

Примечание. На некоторых конфигурациях 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://:7080 и перейдите в раздел Listeners. По умолчанию слушатель настроен на порт 8080. Нажмите View, затем Edit и поменяйте порт на 80. Сохраните и выполните Graceful restart.

Список слушателей

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

Шаг 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:///phpinfo.php

Информация о PHP

Шаг 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: 30

Access Control — разрешите по умолчанию все, если не требуется ограничение:

Allowed List: *
Denied List: Not set

Script Handler Definition для PHP:

Suffixes: php
Handler Type: LiteSpeed SAPI
Handler Name: [Server Level]: lsphp

Rewrite 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 и проверьте вывод.

Тест сайта OpenLiteSpeed

Вы должны увидеть сообщение об успешном подключении к базе данных при корректных данных.

Устранение неполадок — типовые сценарии

Важно. Ниже перечислены частые проблемы и способы их поиска и устранения.

  • Панель 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 и слабые шифры

Критерии приёмки

  1. Панель OpenLiteSpeed доступна на порту 7080
  2. Сайт обслуживается по HTTPS с валидным сертификатом LetsEncrypt
  3. PHP 8.2 обрабатывает скрипты и phpinfo показывает lsphp
  4. Веб‑приложение успешно подключается к MySQL тестовой базе

Тесты и критерии приёмки (минимум)

  • Загрузка страницы index.php возвращает статус 200 и строку о подключении к БД
  • Certbot renew –dry-run завершается без ошибок
  • Logs: отсутствие FATAL ошибок в error.log за последние 24 часа после запуска

Резервное копирование и откат

Рекомендуется сохранять:

  • /usr/local/lsws/conf/ — конфигурация сервера
  • /usr/local/lsws/example.com/html/ — содержимое сайта
  • Базы данных через mysqldump или инструменты инкрементальных бэкапов

Пример базового отката:

  1. Остановить lshttpd: sudo systemctl stop lshttpd
  2. Восстановить /usr/local/lsws из бэкапа
  3. Восстановить базу данных: mysql -u root -p < dumpfile.sql
  4. Запустить 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 и чеклистом по безопасности.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро