Skip to content

Документация

Kostenkov-2021 edited this page Jul 30, 2024 · 1161 revisions

Введение

Open Server Panel — это мощная альтернатива WAMP-стекам, таким как Xampp, Wampserver, Laravel Herd, EasyPHP, Vertrigo и подобным им решениям. Приложение работает на ОС Windows, поддерживает Apache и Nginx в качестве веб-сервера и предоставляет возможность запускать различные версии PHP, MySQL, PostgreSQL, MongoDB и других популярных модулей. Если у вас есть опыт работы с подобным ПО, освоение Open Server Panel не составит труда.

Приложение может использоваться как в стационарном, так и в портативном режиме. В портативном режиме вы можете свободно перемещать папку с программой по диску или копировать на другой компьютер. Однако учтите, что на устаревших версиях Windows полная портативность может быть ограничена (из-за ограничения в 255 символов в путях). В комплект поставки включён инструмент System Preparation Tool, предназначенный для подготовки Windows к работе с Open Server Panel. Для его запуска требуются права администратора.

Управлять Open Server Panel можно тремя способами:

  • Веб-интерфейс (в разработке).
  • Интерфейс командной строки (CLI).
  • Трей-меню.

Ключевые особенности

  • Полная кастомизация: Пользователи получают полный доступ к настройкам всех модулей.
  • Гибкое управление: Управление осуществляется через консоль, трей-меню или веб-интерфейс (в разработке).
  • Надежный контроль процессов: Мониторинг и автоматическое восстановление после сбоев.
  • Параллельная работа модулей: Возможность одновременного запуска всех модулей, включая запуск нескольких версий одного и того же модуля (например, MySQL 5.5 и MySQL 8.0).
  • Профили настроек: Создание профилей с индивидуальными настройками модулей, включая конфиги и данные.
  • Персонализация доменов: Индивидуальная настройка для каждого домена, от IP-адреса до версии PHP.
  • Встроенная поддержка SSL и IPv6: Работает "из коробки" и не требует дополнительной настройки.
  • Оптимизированная среда: Преднастроенная среда для каждого модуля, включая быстрый доступ к shell/cli.
  • Удобная смена среды: Мгновенное переключение между средами в консоли.
  • Богатый набор расширений PHP: Более 115 доступных расширений.
  • Встроенный функционал: Планировщик заданий и SMTP-сервер.
  • Composer и Node.js: Управление версиями Node.js с помощью NVM. Composer доступен во всех модулях PHP.
  • Повышенная стабильность: Отсутствие багов, зависаний и проблем с кодировками.
  • Доступность: Все настройки, шаблоны, языковые файлы и документация доступны на GitHub.

Системные требования

Для полноценной работы Open Server Panel требуется:

Компонент Требования
Операционная система Windows 10 (версия 1607 или новее), Windows Server 2016 или новее.
32-битные системы не поддерживаются.
Версии для Linux и MacOS отсутствуют.
Аппаратные ресурсы Минимум 3 ГБ оперативной памяти (RAM) и 10 ГБ свободного места на диске.
Обязательное ПО MSVC++ 2005-2022 Redistributable Packages (x86/x64, включены в комплект поставки).
Файловая система NTFS (сетевые диски не поддерживаются).

Примечание: При ограниченном объеме оперативной памяти (менее 3 ГБ) может потребоваться ограничение количества одновременно запускаемых модулей. На малопроизводительных компьютерах рекомендуется запускать не более одного модуля каждого типа одновременно.

Поддержка устаревших операционных систем

Open Server Panel может запускаться на устаревших версиях Windows (x64), однако с некоторыми ограничениями:

  • Не все модули доступны.
  • Пути к файлам не могут превышать 255 символов.
Операционная система Номер версии Уровень поддержки
Windows 7 SP1 6.1.7601 Ограниченная
Windows Server 2008 R2 SP1 6.1.7601 Ограниченная
Windows Home Server 2011 6.1.8400 Ограниченная
Windows Server 2012 6.2.9200 Ограниченная
Windows 8 6.2.9200 Ограниченная
Windows 8.1 6.3.9600 Ограниченная
Windows Server 2012 R2 6.3.9600 Ограниченная
Windows 10 v1507 10.0.10240 Ограниченная
Windows 10 v1511 10.0.10586 Ограниченная

Начало работы

Структура каталогов

.
├── addons                    # Дополнения
│   └── <имя_дополнения>      # Основной каталог дополнения
│       └── ospanel_data      # Служебные файлы (исходники настроек и конфигов)
├── bin                       # Общие исполняемые файлы
├── config                    # Настройки
│   ├── <имя_модуля>          # Настройки модуля
│   │   ├── default           # Каталог профиля Default
│   │   │   ├── templates     # Шаблоны конфигурации
│   │   │   └── settings.ini  # Настройки модуля для профиля Default
│   │   └── module.ini        # Базовые настройки модуля (вкл/выкл + имя профиля)
│   ├── menu.ini              # Настройки меню
│   └── program.ini           # Настройки программы
├── data                      # Хранилище данных (базы данных и др.)
├── home                      # Пользовательские проекты (домены)
├── licenses                  # Лицензии на компоненты сторонних производителей
├── logs                      # Файлы журналов
│   ├── domains               # Журналы проектов
│   └── mail                  # Хранилище почты
├── modules                   # Модули
│   └── <имя_модуля>          # Основной каталог модуля
│       └── ospanel_data      # Служебные файлы (исходники настроек и конфигов)
├── system                    # Служебный каталог программы
│   └── lang                  # Языковые файлы
├── temp                      # Временные файлы
└── user                      # Пользовательские данные
    └── ssl                   # Пользовательские файлы SSL (ключи, сертификаты и др.)

Рекомендации по установке

  • Операционная система: Для оптимальной производительности рекомендуется использовать Windows 10 или более новую версию.
  • Место установки: Устанавливайте Open Server Panel на SSD-накопитель, если он доступен, для повышения скорости работы модулей.
  • Неподдерживаемые конфигурации:
    • USB-флеш-накопители: Не рекомендуется использовать USB-флеш-накопители для установки Open Server Panel, так как это может привести к быстрому износу устройства и значительно снизить производительность.
    • Внешние носители с USB 2.0: Использование внешних носителей информации с устаревшим интерфейсом USB 2.0 не рекомендуется из-за низкой скорости передачи данных.

Установка

  1. Загрузка дистрибутива:

  2. Запуск установщика:

    • Рекомендуется устанавливать Open Server Panel в корень диска (например, C:\OSPanel).
    • Разрешенные символы в пути к каталогу: A-Za-z0-9-+\_.\:
    • Портативная установка: Выбирайте этот вариант, только если планируете использовать Open Server Panel на разных компьютерах и устанавливаете его на переносной носитель. В остальных случаях рекомендуется стандартная установка.
  3. Запуск System Preparation Tool:

    • После завершения установки запустите System Preparation Tool. Для запуска этой утилиты требуются права администратора.
    • Исключения: Запуск System Preparation Tool не требуется, если вы устанавливаете только недостающие модули, а Open Server Panel той же версии уже установлен.
  4. Настройка файрвола/антивируса:

    • Исключения: Добавьте каталог Open Server Panel в исключения вашего файрвола/антивируса.
    • Защита файла HOSTS: Если ваш файрвол/антивирус защищает файл HOSTS и игнорирует добавленные исключения, отключите эту функцию.

Важно: Неправильная настройка файрвола/антивируса может значительно снизить производительность Open Server Panel. Постоянное сканирование файлов, используемых модулями, создает дополнительную нагрузку на систему. На устаревших компьютерах с HDD-дисками это может привести к серьезному падению производительности, делая работу с Open Server Panel практически невозможной.

Первый запуск

Важно: Запуск Open Server Panel с правами администратора не рекомендуется. Это может представлять потенциальную угрозу безопасности и не является обязательным условием для работы программы.

  1. Запуск программы:

    • Запустите Open Server Panel из меню «Пуск» или вручную, выполнив файл .\bin\ospanel.exe (для портативной установки).
    • Убедитесь, что значок Open Server Panel появился в области уведомлений Windows.
  2. Анализ ошибок запуска (при необходимости):

    • Если программа не запускается, проверьте файл логов: .\logs\general.log.
    • Распространенные ошибки веб-сервера:
      • Address already in use (#10048 in listen: Bind): Указанный IP-адрес и порт уже используются другим приложением. Измените настройки IP/порта в конфигурации Open Server Panel или в настройках конфликтующего приложения.
      • Permission denied (#10013 in listen: Bind): Отказано в разрешении на использование указанного IP-адреса и порта. Настройте системный файрвол, чтобы разрешить Open Server Panel доступ к сети.
  3. Запуск CLI-интерфейса:

    • Откройте CLI-интерфейс: Меню -> Интерфейс командной строки.
    • Ошибка The system cannot write to the specified device: Измените шрифт консоли на совместимый с кодировкой UTF-8 (например, Consolas) и перезапустите CLI-интерфейс.
    • Проверка логов: Выполните команду osp log general в CLI-интерфейсе, чтобы проверить наличие ошибок или предупреждений в журнале программы.
  4. Инициализация корневого CA-сертификата (при необходимости):

    • Если корневой CA-сертификат не был создан во время установки, выполните команду osp cacert init в CLI-интерфейсе.
  5. Подготовка системы (при необходимости):

    • Если System Preparation Tool не был запущен во время установки, запустите его с помощью команды osp sysprep в CLI-интерфейсе.
    • Важно: После завершения подготовки системы обязательно перезагрузите компьютер.

Внимание: Open Server Panel не будет работать корректно без предварительной подготовки системы с помощью System Preparation Tool. Подробнее о функциях утилиты можно узнать здесь.

Установка дополнительных модулей

Для установки дополнительных модулей запустите инсталлятор Open Server Panel повторно, снимите галочки со всех компонентов и выберите только необходимые модули.

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

При использовании портативной версии Open Server Panel на другом компьютере необходимо установить корневой SSL-сертификат и выполнить подготовку системы на этом компьютере. Для этого запустите CLI-интерфейс и выполните команды osp cacert init и osp sysprep.

Создание проектов

Настройка путей поиска проектов

  1. Откройте файл конфигурации: .\config\program.ini

  2. Укажите пути к проектам:

    • В параметре projects_search_path перечислите диски или каталоги, где находятся ваши проекты, разделяя их точкой с запятой (;).
    • Разрешенные символы: A-Za-z0-9-+_.\:
    • Пример: projects_search_path = C:\OSPanel\home;D:\projects
  3. Сохраните изменения и перезапустите Open Server Panel.

Создание конфигурационного файла проекта

  1. Создайте каталог: В корневом каталоге каждого проекта создайте подкаталог .osp.

  2. Создайте файл конфигурации: В каталоге .osp создайте файл project.ini со следующим содержимым:

    [имя_домена]

    Замените [имя_домена] на желаемое имя домена вашего проекта.

Выбор конфигурации сервера

После перезапуска Open Server Panel вы сможете выбрать необходимые версии PHP и Nginx для ваших проектов через меню программы.

Варианты организации работы веб-сервера:

  • Apache + PHP: Выберите только модуль PHP для вашего проекта.
  • Nginx + Apache + PHP: Выберите модули Nginx и PHP для вашего проекта. Nginx в этой конфигурации выступает в роли прокси-сервера.
  • Nginx + PHP-FCGI: Выберите модули Nginx и PHP-FCGI для вашего проекта.
  • Только Nginx (без PHP): Выберите только модуль Nginx для вашего проекта.

Важно:

  • Для доступа к домену в браузере необходимо включить соответствующий PHP-движок и/или Nginx-движок.
  • Включите другие модули, необходимые для работы вашего проекта.
  • Модули PHP без префикса FCGI представляют собой составные модули Apache + PHP и названы таким образом для удобства выбора в консоли.

Импорт корневого SSL-сертификата

Если ваш браузер не использует хранилище сертификатов Windows (например, Firefox), импортируйте корневой сертификат Open Server Panel вручную:

  1. Firefox: Настройки -> Сертификаты -> Просмотр сертификатов... -> Вкладка "Центры сертификации" -> Импортировать...
  2. Путь к сертификату: data\ssl\root\cert.crt
  3. Перезапустите браузер

Важно: Повторите импорт сертификата после каждого пересоздания корневого сертификата с помощью команды osp cacert init.

Дополнительная информация

  • Подробная информация о настройке проектов доступна здесь.
  • Примеры доменов, доступных по умолчанию после установки Open Server Panel, можно найти в каталоге home.

Работа в консоли

Выбор консоли

Open Server Panel по умолчанию использует CMD.exe (стандартный интерпретатор командной строки Windows). Для просмотра переменных среды и их значений используйте команду set.

Рекомендация: Для более удобной и современной работы рекомендуется установить и использовать Windows Terminal. Windows Terminal — это новое приложение для работы с командной строкой, поддерживающее различные оболочки, включая Command Prompt, PowerShell и WSL.

Управление выбором консоли осуществляется с помощью параметра use_win_terminal в файле конфигурации.

Важно:

  • PowerShell не поддерживается. Не используйте PowerShell для работы с Open Server Panel.
  • При использовании Windows Terminal выбирайте профиль «Командная строка», а не «Windows PowerShell».

Управление (CLI)

Использование: osp <команда> [<аргументы>]

Управление средой:

add     <MODULE|ADDON>      Объединить среду указанного модуля или дополнения с текущей средой
info                        Показать информацию о текущей среде
project <DOMAIN>   [start]  Активировать среду проекта и перейти в его корневой каталог
                            Используйте [start] для запуска проекта (если настроено)
reset   [init]              Сбросить текущую среду в консоли (оригинальная среда системы)
                            Используйте [init] для инициализации интерфейса командной строки
use     <MODULE|ADDON>      Применить среду указанного модуля или дополнения
                            Если модуль выключен, то работа с частью его утилит/команд/операций,
                            включая работу с данными (базами данных), может быть недоступна!

Управление модулями:

init    <MODULE> [PROFILE]  Перечитать настройки модуля и пересоздать временные файлы (конфиги)
                            При необходимости укажите новый активный профиль настроек модуля
                            Эта команда недоступна для модулей находящихся в активном состоянии!
                            Примените среду модуля повторно (команда "use" или "add") если она
                            сейчас активна, а настройки или профиль настроек изменились!
off     <MODULE>            Выключить модуль
on      <MODULE> [PROFILE]  Включить модуль (при необходимости укажите новый активный профиль)
restart <MODULE> [PROFILE]  Перезапустить модуль (при необходимости укажите новый активный профиль)
shell   <MODULE>            Запустить shell или интерфейс командной строки модуля (если доступно)
status  <MODULE>            Показать информацию о статусе модуля

Управление Node.js:

node    install <N> [ARCH]  Установить версию Node.js. В качестве номера версии <N> можно указать
                            конкретную версию, "latest" для последней текущей версии, или "lts" для
                            последней версии LTS. Установите параметр [ARCH] равным 32 или 64 для
                            установки 32-х или 64-х разрядной версии (по умолчанию), либо укажите
                            "all", чтобы установить обе версии одновременно. Для работы со средой
                            установленной версии Node.js используйте команды "osp use Node-x.x.x"
                            и "osp add Node-x.x.x", указывая полный номер версии с префиксом.
node    list   [available]  Показать список установленных версий Node.js
                            Используйте флаг [available] для просмотра доступных версий Node.js
node    mode    <N> [ARCH]  Показать текущую разрядность Node.js версии <N>
                            Установите [ARCH] равным 32 или 64 для смены текущей разрядности
node    node_mirror  [URL]  Задать зеркало node. По умолчанию: https://nodejs.org/dist/
                            Оставьте [URL] пустым для установки URL-адреса по умолчанию
node    npm_mirror   [URL]  Задать зеркало npm. По умолчанию: https://github.com/npm/cli/archive/
                            Оставьте [URL] пустым для установки URL-адреса по умолчанию
node    proxy        [URL]  Задать прокси-сервер для использования при загрузке Node.js
                            Оставьте [URL] пустым для просмотра текущего прокси
                            Установите [URL] равным "none" для отключения прокси
node    uninstall <N>       Удаление ранее установленной версии Node.js

Другие команды:

addons                      Показать информацию о дополнениях
cacert  <init|show|deinit>  Сгенерировать и установить|показать|удалить корневой сертификат (ЦС)
                            При установке нового все старые корневые сертификаты (ЦС) будут удалены
                            Перезапустите браузер для применения нового корневого сертификата
convert <DOMAIN>            Конвертировать имя домена из/в Punycode
exit                        Завершить работу программы (текущая среда будет сброшена)
log     <PATTERN> [N]       Показать журналы по фильтру пути к файлу (последние N строк)
                            Используйте регулярное выражение для выбора выводимых журналов
                            Показать все журналы модуля PHP-8.0: osp log php-8\.0
                            Показать все журналы доступа к доменам: osp log domains\\(.+)_access
                            Показать все журналы программы: osp log "\\(general|api|scheduler|smtp)"
                            Показать все доступные журналы (последние 15 строк): osp log . 15
modules                     Показать информацию о модулях
projects                    Показать информацию о проектах
status                      Показать статус всех систем (заданий, доменов, дополнений и модулей)
sysprep [silent|ssd]        Запустить инструмент подготовки операционной системы
                            Добавьте [silent] для запуска подготовки системы в тихом режиме
                            Флаг [ssd] аналогичен [silent] (но с оптимизацией настроек под SSD)
                            Подготовка в тихом режиме происходит автоматически и без отслеживания
                            прогресса, после окончания процедуры будет выполнена перезагрузка!
tasks                       Показать информацию о заданиях планировщика
version                     Показать информацию о версии программы

Примеры использования:

osp exit & ospanel          Перезапуск программы
osp use PostgreSQL-9.6      Применение в консоли среды модуля PostgreSQL-9.6
osp on PHP-8.1 myprofile    Включение модуля PHP-8.1 со сменой профиля настроек на MyProfile
osp restart mysql-8.0       Перезапуск модуля MySQL-8.0 (имя модуля принимается в любом регистре)
osp reset & osp add bind    Объединение системной среды со средой Bind

Вспомогательные утилиты:

aria2c                      Утилита для загрузки файлов по протоколам HTTP(S), (S)FTP и BitTorrent
bat                         Клон cat (linux) с подсветкой синтаксиса и интеграцией Git
brotli                      Утилита для сжатия данных без потерь с открытым исходным кодом
curl                        Инструмент командной строки для передачи данных с помощью URL-адресов
dust                        Утилита похожая на du (linux), но более интуитивная и понятная!
fd                          Простая и быстрая утилита для поиска записей в файловой системе
gzip                        Утилита сжатия и восстановления файлов с помощью алгоритма Deflate
jq                          Лёгкий и гибкий JSON-процессор командной строки
mmdbinspect                 Инструмент для поиска записей в одной или нескольких базах данных .mmdb
sass                        Dart Sass — популярный компилятор SASS/SCSS файлов
sd                          Интуитивно понятная программа для поиска и замены текста в файлах
wget                        Неинтерактивная консольная программа для загрузки файлов по сети
xh                          Удобный и быстрый инструмент для отправки HTTP-запросов

Для следующих команд CLI доступен аргумент silent, который подавляет вывод всех информационных сообщений, кроме предупреждений и сообщений об ошибках:

  • osp use ...
  • osp add ...
  • osp project ...
  • osp reset
  • osp reset init

Для команды osp reset init вместо аргумента silent можно использовать аргумент noprint, чтобы подавить вывод сведений о среде.

Для следующих команд CLI вместо имени модуля можно использовать аргумент all:

  • osp init
  • osp off
  • osp on
  • osp restart
  • osp status

Важно: Используйте аргумент all только в том случае, если вы полностью уверены в своих действиях.

Среда процесса

Среда процесса — это набор переменных и их значений, которые определяют поведение операционной системы и приложений, запущенных в этой среде. Эти переменные используются для хранения информации, необходимой приложениям, и для настройки системных параметров.

  • Каждый запущенный процесс в системе имеет свою среду, поэтому её часто называют средой окружения процесса.
  • В консоли для просмотра переменных среды и их значений используйте команду set.

Наследование среды

Open Server Panel наследует среду родительского процесса (обычно explorer.exe, т.е. стандартную системную среду) при запуске и сохраняет её до завершения работы.

  • Все процессы, запущенные Open Server Panel через меню, консоль (только для среды "System") или планировщик задач, также наследуют эту среду.
  • Важно: Если настройки среды в вашей системе изменились во время работы Open Server Panel, может потребоваться перезапуск программы.

Изолированная среда модулей

Модули Open Server Panel работают в собственной изолированной среде, которая формируется следующим образом:

  1. Фильтрация системной среды: Из системной среды удаляются переменные, не указанные в параметре allowed_env_vars файла конфигурации.
  2. Добавление переменных: К отфильтрованной среде добавляются переменные, указанные в секции environment настроек Open Server Panel.

Управление средой модулей

  • Предварительно настроенная среда: Для всех модулей Open Server Panel настроена готовая к использованию среда, которую можно активировать командой osp use ....
  • Быстрый запуск shell/cli: Для запуска shell/cli оболочки модуля используйте команду osp shell .... Активация или присоединение среды модуля не требуется.

Смена среды

Текущая среда всегда отображается в заголовке окна консоли (или в названии вкладки), например: PHP-8.0 + MySQL-5.7 | Open Server Panel.

  • Объединение сред: Модули разных типов можно объединить в одну среду с помощью команды osp add ....
  • Конфликты имен переменных: При наличии переменных с одинаковыми именами в разных средах, финальное значение переменной берется из среды модуля, подключенного последним (кроме переменной PATH, значения которой объединяются).
  • Переключение между проектами: Для переключения между проектами в консоли используйте команду osp project ..., которая активирует среду проекта (PHP/Nginx/Node + модули и дополнения, заданные опцией environment в файле project.ini) и переходит в его корневой каталог (см. project_dir).

Важно: Модули PHP являются комбинированными (кроме модулей с префиксом FCGI) и включают в себя Apache и PHP.

Включение нескольких модулей

Для одновременного запуска нескольких модулей используйте команду osp on для каждого модуля:

osp on Redis-7.0
osp on MySQL-5.7
osp on PHP-7.4

Важно: Для корректной установки пути к каталогу временных файлов (переменные TMP и TEMP) подключайте самый важный модуль последним.

Комбинация сред

Без изоляции переменной PATH

Для объединения сред нескольких модулей без изоляции от системной переменной PATH используйте следующие команды:

osp reset
osp add Redis-7.0
osp add MySQL-5.7
osp add PHP-7.4

С изоляцией переменной PATH

Для объединения сред нескольких модулей с изоляцией от системной переменной PATH используйте следующие команды:

osp use Redis-7.0
osp add MySQL-5.7
osp add PHP-7.4

Пример вывода в консоль

После выполнения команд вы увидите следующий вывод в консоли:

Redis-7.0: Рабочий процесс модуля успешно запущен
MySQL-5.7: Рабочий процесс модуля успешно запущен
PHP-7.4: Рабочий процесс модуля успешно запущен
Текущая среда: Redis-7.0
Текущая среда: Redis-7.0 + MySQL-5.7
Текущая среда: Redis-7.0 + MySQL-5.7 + PHP-7.4

Использование объединённой среды

Теперь вы можете работать с PHP-7.4, Apache-2.4, MySQL-5.7 и Redis-7.0 одновременно:

php -v
httpd -V
mysql -V
redis-cli -v

Работа с инструментами разработки

  • Готов к использованию: Composer предустановлен и готов к работе без дополнительной настройки.
  • Активация среды: Для работы с Composer в консоли активируйте среду любого проекта или модуля PHP.
  • Изолированные версии: Каждый модуль PHP имеет собственную версию Composer и отдельный домашний каталог.

Пример установки Zephir в PHP 7.4 с помощью Composer:

  1. Включение расширения: Раскомментируйте строку extension=zephir_parser в файле .\config\PHP-7.4\default\templates\php.ini.
  2. Перезапуск PHP: Выполните команду osp restart php-7.4 в CLI-интерфейсе (Меню -> Интерфейс командной строки).
  3. Активация среды: Выполните команду osp use php-7.4.
  4. Установка Zephir:
    cd %COMPOSER_HOME%
    composer require phalcon/zephir
    
  5. Проверка установки: Выполните команду zephir help.

NVM (Node Version Manager)

  • Встроенный инструмент: NVM включен в дистрибутив Open Server Panel и устанавливается как дополнение.
  • Работа через прослойку: Взаимодействие с NVM осуществляется через специальную прослойку с помощью команды osp node ....
  • Важно:
    • Обращайте внимание только на сообщения об ошибках от NVM.
    • Игнорируйте советы NVM по использованию команд nvm ... — они недоступны в Open Server Panel.
    • Такая реализация NVM обусловлена тем, что оригинальный NVM не поддерживает одновременное использование нескольких версий Node.js.

Рекомендация: Для удобного запуска приложений используйте nodemon. Пример использования nodemon можно посмотреть здесь.

  • Настройка команды запуска: Задайте команду запуска приложения в настройках проекта, используя параметр start_command.
  • Пример: start_command = nodemon app.js

Планировщик задач

Встроенный планировщик задач работает аналогично демону Cron в системах Unix. Задания планировщика описываются в файле <проект>\.osp\tasks.ini.

Важно: Для применения изменений в файле tasks.ini необходимо перезапустить Open Server Panel.

  • Базовый каталог: Все задания запускаются в базовом каталоге проекта (см. base_dir).
  • Статус проекта: Задания не выполняются, если проект находится в статусе «Выключен» или «Ошибка».

Секция [имя_домена]

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

План выполнения задания состоит из 7 колонок, разделяемых пробелами. Колонки задают время выполнения и настройки задания (минута, час, день, месяц, день недели, лимит, выключатель). В первых 5-ти колонках может находиться число, список чисел, разделённых запятыми, диапазон чисел, разделённых дефисом, символы * или /. В колонках 6-7 могут находится только числа и символ *.

* * * * * * * команда
- - - - - - -
| | | | | | |
| | | | | | ----- включение/выключение задания (* или 1 - включено, 0 - выключено)
| | | | | ------- лимит на количество запусков (* или 0 - безлимитно)
| | | | --------- день недели (1—7)
| | | ----------- месяц (1—12)
| | ------------- день месяца (1—31)
| --------------- час (0—23)
----------------- минута (0—59)

Примеры:

15 14 1 * * * *       # выполнять 1 числа каждого месяца в 14 часов 15 минут
0 22 * * 1-5 * *      # каждый рабочий день в 22:00
23 */2 * * * * *      # выполнять в 0:23, 2:23, 4:23 и т.д.
5 4 * * 7 * *         # выполнять в 4:05 по воскресеньям
15 10,13 * * 1,4 * *  # выполнять в понедельник и четверг в 10:15 и 13:15
* * * * * * *         # выполнять ежеминутно
0-59/2 * * * * * *    # выполнять по чётным минутам
1-59/2 * * * * * *    # выполнять по нечётным минутам
*/5 * * * * * *       # выполнять каждые 5 минут
* * * * * 1 0         # выполнить 1 раз после запуска программы (задание выключено)

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

Переменная Описание
{root_dir} Корневой каталог Open Server Panel (полный путь)
{root_drive} Диск корневого каталога
{root_path} Путь к корневому каталогу Open Server Panel
{base_dir} Базовый каталог проекта
{host} Имя домена (для интернационализированных доменов используется Punycode)
{host_decoded} Видимое имя домена (без Punycode)
{nginx_engine} Движок Nginx
{node_engine} Движок Node.js
{php_engine} Движок PHP
{project_dir} Корневой каталог проекта
{project_url} URL проекта
{public_dir} Публичный каталог проекта
{start_command} Команда запуска проекта (если настроена)
{terminal_codepage} Кодировка консоли (см. terminal_codepage)

Помимо шаблонных переменных, можно использовать любые переменные среды Windows, например: %COMSPEC%, %SYSTEMDRIVE%, %USERNAME%, %PATH% и т.д.

Обратите внимание, что при необходимости выполнения команды в рамках среды проекта нужно указать путь к cmd.exe (через переменную среды %COMSPEC%) и активировать среду проекта через osp project перед выполнением самой команды.

Выполнение команды в среде проекта

Для выполнения команды в среде проекта:

  1. Укажите путь к cmd.exe через переменную среды %COMSPEC%.
  2. Активируйте среду проекта с помощью команды osp project перед выполнением команды.

Пример файла tasks.ini:

[example.local]

Запуск Node-приложения  = * * * * * 1 * "%COMSPEC%" /c "osp project {host} start"
Резервное копирование   = */5 * * * * * * "%COMSPEC%" /c "tar -czf {base_dir}\.osp\backup\{host_decoded}.tar.gz -C {public_dir} *"
Laravel Schedule        = * * * * * * * "%COMSPEC%" /c "osp project {host} & php artisan schedule:run"

[forum.example.local]

Вызов cron.php по HTTPS = */30 * * * * * 0 wget --secure-protocol=TLSv1_2 -q --no-cache https://{host}/cron.php -O nul
Вызов cron.php из PHP   = 0-59/2 * * * * * * "%COMSPEC%" /c "osp project {host} & php -f cron.php"
Резервное копирование   = */5 * * * * 1 * "%COMSPEC%" /c "tar -czf {base_dir}\.osp\backup\{host_decoded}.tar.gz -C {public_dir} *"

Пример задания с сохранением вывода в файл:

[my-project.loc]

Тестовое задание        = * * * * * * * "%COMSPEC%" /c "osp project {host} & php -f {base_dir}\script.php >> {base_dir}\log.txt"

В этом примере задание будет запускаться каждую минуту и выполнять скрипт script.php, используя выбранный для проекта PHP-движок. Результат выполнения скрипта будет записываться в файл log.txt.

Работа с модулями

Основные принципы

  • Модули по умолчанию выключены: Перед началом работы включите необходимые модули.
  • Параллельная работа: Модули могут запускаться параллельно без конфликтов.
  • Изолированная среда: Каждый модуль работает в своей изолированной среде, что предотвращает конфликты с другим ПО.
  • Поддержка однотипных модулей: Можно одновременно запускать несколько версий одного модуля (например, MySQL 5.5 и MySQL 8.0).
  • Локальные IP-адреса: По умолчанию все модули настроены на использование только локальных IP-адресов (кроме Bind и Unbound).
  • Стандартные порты и учетные данные: Используются стандартные порты и логины. Пароли и ограничения по умолчанию отсутствуют. Эти настройки можно изменить.

Важно:

  • PostgreSQL и UAC: Запуск модулей PostgreSQL невозможен при отключенном контроле учетных записей (UAC) или запуске Open Server Panel с правами администратора.
  • Безопасность: Запуск Open Server Panel на публичных IP-адресах без дополнительной защиты крайне опасен. Это может привести к несанкционированному доступу к вашему компьютеру, вплоть до полного контроля над системой и потери данных.

Рекомендации по безопасности:

  • Надежные пароли: Задайте надежные пароли для всех пользователей, если это возможно.
  • Ограничение доступа: Настройте правила файрвола, разрешив доступ к модулям только с доверенных IP-адресов.

Дополнительные функции

  • Встроенный почтовый сервер: Для всех модулей PHP доступен встроенный почтовый сервер. Отправляемые из PHP письма сохраняются в каталог .\logs\mail.
  • Поддержка .user.ini: Модули PHP FCGI поддерживают файлы .user.ini на уровне каталога. PHP ищет .user.ini в каждой директории, начиная с директории запрашиваемого PHP-файла, и продолжает поиск до корневой директории проекта. В файлах .user.ini распознаются только INI-настройки с режимами INI_PERDIR и INI_USER.

Инициализация модулей

  • При запуске Open Server Panel происходит инициализация всех доступных модулей.
  • В процессе инициализации проверяется конфигурация модулей и создаются временные файлы.
  • Это позволяет использовать консольные утилиты и команды модуля, независимо от того, включен он или нет.
  • Важно: Некоторые утилиты и команды могут не работать, если модуль выключен.

Инициализация модулей без их включения может быть полезна для:

  • Восстановления баз данных
  • Обновления хранилища данных
  • Проверки временных файлов конфигурации

Схема запуска модулей

На диаграмме ниже показана схема запуска модулей Open Server Panel:

%%{init: {'theme':'forest'}}%%
graph TD;

      A(Запуск<br>Open Server Panel)-->B(Инициализация модуля);
      B-->|"Провал"| C(Статус<br>'Ошибка');
      B-->|"Успех"| D(Проверка состояния);
      D-->|"Если выключён"| F(Статус<br>'Выключен');
      D-->|"Если включён"| G(Запуск модуля);
      G-->|"Провал"| C;
      G-->|"Успех"| H(Статус<br>'Включён');
      H-->|"Если процесс<br>неожиданно завершился<br>во время испытательного срока"| C;
      H-->|"Если процесс<br>неожиданно завершился"| G;
Loading

Описание:

  1. Запуск Open Server Panel: При запуске Open Server Panel происходит инициализация всех доступных модулей.
  2. Инициализация модуля: Проверяется конфигурация модуля и создаются временные файлы.
  3. Статус «Ошибка»: Если инициализация завершается неудачей, модуль переходит в состояние «Ошибка».
  4. Проверка состояния: Если инициализация прошла успешно, проверяется состояние модуля (включен/выключен).
  5. Статус «Выключен»: Если модуль выключен, он остается в этом состоянии.
  6. Запуск модуля: Если модуль включен, он запускается.
  7. Статус «Включён»: Если запуск прошел успешно, модуль переходит в состояние «Включён».
  8. Завершение процесса во время испытательного срока: Если процесс модуля неожиданно завершается во время испытательного срока (см. параметр probation в настройках модуля), модуль переходит в состояние «Ошибка».
  9. Завершение процесса: Если процесс модуля неожиданно завершается после испытательного срока, происходит повторный запуск модуля.

Подключение к модулям

Для подключения к модулям из PHP-скриптов и сторонних приложений используйте следующие параметры:

  • Хост: Имя модуля (например, MySQL-5.7). Регистр не имеет значения (mysql-5.7 или MYSQL-5.7 тоже допустимы). Можно добавить .local для совместимости с приложениями, требующими доменного имени (например, mysql-5.7.local).
  • Порт: Стандартный порт модуля.
  • Пользователь: Стандартный пользователь модуля (если применимо).
  • Пароль: Без пароля (если применимо).

Примеры подключения

Модуль Хост Порт Пользователь Пароль
MySQL-5.7 MySQL-5.7, mysql-5.7, mysql-5.7.local 3306 root -
Memcached-1.6 Memcached-1.6 11211 - -
MongoDB-4.4 MongoDB-4.4 27017 - -
PostgreSQL-12 PostgreSQL-12 5432 postgres -
RabbitMQ-3.13 RabbitMQ-3.13 5672 - -
Redis-5.0 Redis-5.0 6379 - -
SMTP ospanel (см. опцию api_domain) 25 - -

SMTP-сервер:

  • Для успешной обработки письма SMTP-сервером в отправляемом письме должен быть указан заголовок FROM.
  • Если заголовок FROM отсутствует, активируйте и заполните переменную sendmail_from в шаблоне файла php.ini.

Важно:

  • Не используйте служебные IP-адреса модулей: Служебные IP-адреса используются только для внутренней работы модулей и могут меняться. Они не предназначены для подключения к модулям.

Рекомендация

В качестве универсального менеджера баз данных рекомендуется использовать DBeaver. DBeaver поддерживает различные типы баз данных (MySQL, MariaDB, PostgreSQL, SQLite), регулярно обновляется и стабильно работает.

Расширения PHP

Open Server Panel включает более 115 расширений PHP, которые по умолчанию отключены.

Чтобы активировать расширение:

  1. Раскомментируйте соответствующую строку в шаблоне файла конфигурации PHP (php.ini).
  2. Перезапустите PHP-модуль.

PHPINFO: PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | PHP 8.1 | PHP 8.2 | PHP 8.3

Примечание: Если расширение недоступно для определенной версии PHP, это означает, что разработчики расширения не предоставляют, не разрабатывают или не компилируют версию для Windows для этой версии PHP.

Совместимость расширений

Важно:

  • Не изменяйте порядок подключения расширений в шаблоне файла php.ini. Расширения подключаются в определенном порядке в зависимости друг от друга и могут не работать при изменении порядка активации.
  • Включайте только необходимые расширения. Активируйте расширение, только если оно действительно требуется вашим проектам.
Расширение Зависимость Несовместимость
blackfire Осторожно! Расширение может вызывать утечку памяти. ioncube, opcache, opencensus, pcov, xdebug, xhprof
crypto openssl
ev openssl, sockets
event openssl, sockets
exif mbstring
http curl, intl, propro, psr, raphf, sockets
http_message psr
ioncube Осторожно! Расширение может вызывать сбои в работе PHP. blackfire, opencensus, pcov, xhprof, xdebug
libevent sockets
mailparse mbstring
memcached igbinare
oauth curl
opcache blackfire
При активации xdebug или pcov отключается JIT-компиляция.
opencensus blackfire, ioncube, pcov, xdebug, xhprof
pcov blackfire, ioncube, opencensus, xdebug, xhprof
phalcon curl, fileinfo, gd2, gettext,
imagick, mbstring, openssl, pdo
rdkafka simple_kafka_client
redis igbinary
simple_kafka_client rdkafka
solr curl
ssh2 openssl
stomp openssl
xdebug blackfire, ioncube, opencensus, pcov, xhprof
xhprof blackfire, ioncube, opencensus, pcov, xdebug
yac Одновременная активация в нескольких модулях PHP недопустима!
yar curl

Модули Apache

Open Server Panel использует Apache версии 2.4.54 (VC15) для PHP 7.2-7.4 и Apache версии 2.4.59 (VS17) для PHP 8.0-8.3. В дистрибутив включены дополнительные модули Apache, перечисленные в таблице ниже.

Модуль Версия Ссылка
mod_antiloris 0.6.0 https://www.monshouwer.eu/download/mod_antiloris/
mod_apreq2 2.16 https://httpd.apache.org/apreq/docs/libapreq2/group__mod__apreq2.html
mod_authn_ntlm 1.0.8 https://github.com/YvesR/mod_authn_ntlm
mod_fcgid 2.3.10 https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
mod_jk 1.2.46 (PHP 7.2-7.4)
1.2.48 (PHP 8.0-8.3)
https://tomcat.apache.org/connectors-doc/reference/apache.html
mod_limitipconn 0.24 https://dominia.org/djao/limitipconn2.html
mod_log_dbd 1.0.6 https://sourceforge.net/p/dbd-modules/wiki/mod_log_dbd/
mod_log_rotate 1.00a (PHP 7.2-7.4)
1.0.2 (PHP 8.0-8.3)
https://github.com/JBlond/mod_log_rotate
mod_maxminddb 1.1.0 (PHP 7.3-7.4)
1.2.0 (PHP 8.0-8.3)
https://github.com/maxmind/mod_maxminddb
mod_perl 2.0.12 https://perl.apache.org
mod_vhost_dbd 1.0.6 https://sourceforge.net/p/dbd-modules/wiki/mod_vhost_dbd/
mod_view 2.2
mod_watch 4.3P https://github.com/pld-linux/apache-mod_watch
mod_xsendfile 1.0-P1 https://tn123.org/mod_xsendfile/

Модули Nginx

В дистрибутив Open Server Panel добавлены следующие модули Nginx, отсутствующие в оригинальном дистрибутиве Nginx:

  • brotli_module
  • fancyindex_module
  • http_geoip_module
  • http_geoip2_module
  • http_image_filter_module
  • poll_module
  • stream_geoip_module
  • stream_realip_module
  • stream_ssl_preread_module

Настройка программы

Настройки Open Server Panel и ее модулей хранятся в файле .\config\program.ini.

Важно: Для применения изменений необходимо перезапустить Open Server Panel.

Секция [main]

В этой секции содержатся основные настройки Open Server Panel:

Параметр Описание
api_domain Локальный домен API и веб-интерфейса.
VPN/прокси: Добавьте этот домен в исключения VPN/прокси, если они используются.
Значение по умолчанию: ospanel
api_ip IPv4-адрес API и веб-интерфейса.
VPN/прокси: Добавьте этот IP-адрес в исключения VPN/прокси, если они используются.
Значение по умолчанию: 127.127.127.127
api_port Порт API и веб-интерфейса. Open Server Panel не запустится, если этот порт уже используется.
Значение по умолчанию: 80
clear_dns_cache Очищать системный кэш DNS при изменении файла HOSTS (on/off).
Отключение: Отключайте эту опцию только в следующих случаях:
- Вы вручную изменили файл HOSTS, очистили кэш DNS и больше не планируете вносить изменения в настройки Open Server Panel и ее модулей.
- Вы используете только домен localhost.
Значение по умолчанию: on
lang Язык интерфейса Open Server Panel. Используйте имя любого языкового файла из каталога .\system\lang.
Значение auto (по умолчанию): Будет использован системный язык, если соответствующий языковой файл доступен.
log_max_filesize Максимальный размер файлов журнала (0 — без ограничений).
Файлы журналов: программа, API, почтовый сервер.
Пересоздание файла: Если размер файла журнала превысит указанный, файл будет пересоздан.
Единицы измерения: B (байты), K (килобайты), M (мегабайты), G (гигабайты), T (терабайты).
Очистка логов при запуске: Установите значение 1 (байт), чтобы очищать логи при каждом запуске.
projects_search_depth Максимальная глубина поиска проектов.
Производительность: Увеличение этого значения может снизить скорость запуска Open Server Panel, если каталоги, указанные в projects_search_path, содержат много подкаталогов.
Значение по умолчанию: 3
projects_search_path Каталоги для поиска проектов. Используйте точку с запятой (;) для разделения нескольких каталогов.
Исключения: Подкаталоги node_modules и vendor игнорируются.
Значение по умолчанию: {root_dir}\home
short_project_title Включить/выключить коротний заголовок окна консоли для проектов (on/off). Если опция включена, то при активации проекта в консоли вместо детального заголовка окна (названия вкладки) будет отображаться только имя проекта.
Значение по умолчанию: off
task_scheduler Включить/выключить встроенный планировщик задач (on/off).
Значение по умолчанию: on
terminal_ansi_fix Включить поддержку ANSI-кодов управления цветом в консоли (on/off/auto).
Значение auto (по умолчанию):
- Фикс применяется только для Windows 7, Windows 8, Windows 10 до версии 1903 (включительно). Более новые версии Windows уже поддерживают ANSI-коды.
- Фикс не применяется для некоторых продвинутых эмуляторов терминала (например, Windows Terminal).
update_check Включить проверку обновлений Open Server Panel (требуется подключение к Интернету) (on/off).
Значение по умолчанию: on
use_hosts_file Использовать файл HOSTS (on/off).
Организации с ограниченным доступом к HOSTS:
1. Настройте все необходимые модули и проекты.
2. Обратитесь к администратору, чтобы разблокировать файл HOSTS и зафиксировать его состояние после запуска Open Server Panel.
3. После фиксации изменений администратором можно отключить эту опцию.
Важно: Не отключайте use_hosts_file, если вы не уверены в своих действиях.
Значение по умолчанию: on
use_win_terminal Использовать Windows Terminal (on/off). Windows Terminal должен быть установлен в системе и доступен через системную переменную PATH.
Windows Terminal как cmd.exe: В новых версиях Windows Windows Terminal может заменять cmd.exe и прописываться в системную переменную %COMSPEC%. В этом случае оставьте эту опцию включенной, даже если Windows Terminal всегда запускается вместо cmd.exe.
Новые экземпляры Windows Terminal: Если Windows Terminal открывает новые окна вместо вкладок, измените настройки: Параметры -> Запуск -> Поведение нового экземпляра -> Присоединять к последнему использованному окну.
Значение по умолчанию: off

Секция [menu]

В этой секции содержатся настройки меню Open Server Panel.

  • Детальная настройка меню: Для детальной настройки пунктов меню используйте файл menu.ini. Подробнее о настройке меню читайте здесь.
Параметр Описание
do_not_group_single_item Не группировать списки, содержащие только один элемент (см. show_addons_in_groups, show_modules_in_groups и show_projects_in_groups).
Значение по умолчанию: on
show_icons Отображать значки в меню Open Server Panel (on/off).
Значение по умолчанию: on
show_addons Отображать меню дополнений (on/off).
Значение по умолчанию: on
show_addons_in_groups Группировать дополнения в меню (on/off).
Значение по умолчанию: on
show_addons_in_submenu Отображать меню дополнений в отдельном подменю (on/off).
Значение по умолчанию: on
show_modules Отображать меню управления модулями (on/off).
Значение по умолчанию: on
show_modules_in_groups Группировать модули в меню (on/off).
Значение по умолчанию: on
show_modules_in_submenu Отображать меню модулей в отдельном подменю (on/off).
Значение по умолчанию: on
show_projects Отображать меню управления проектами (on/off).
Значение по умолчанию: on
show_projects_in_groups Группировать проекты по доменной зоне в меню (on/off).
Значение по умолчанию: off
show_projects_in_submenu Отображать меню проектов в отдельном подменю (on/off).
Значение по умолчанию: off
show_tray_icon Отображать значок Open Server Panel в области уведомлений (on/off).
Отключение: Отключите эту опцию, если вы запускаете Open Server Panel в среде Windows Server Core или используете тип автозапуска, не требующий входа пользователя Windows (Планировщик заданий Windows -> Запуск при загрузке компьютера).
Значение по умолчанию: on
show_hr_after_addons Отображать разделительную линию после меню дополнений (on/off).
Значение по умолчанию: on
show_hr_after_modules Отображать разделительную линию после меню модулей (on/off).
Значение по умолчанию: on
show_hr_after_projects Отображать разделительную линию после меню проектов (on/off).
Значение по умолчанию: on

Секция [projects]

Эта секция содержит глобальные настройки проектов. Они применяются, если в настройках конкретного проекта не указаны другие значения. Значения из этой секции можно переопределить в файле настроек проекта (<проект>\.osp\project.ini).

Секция [modules]

Эта секция содержит глобальные настройки модулей. Они применяются, если в настройках модуля указано значение auto (по умолчанию). Значения из этой секции можно переопределить в файле настроек модуля (.\config\<имя_модуля>\<имя_профиля>\settings.ini).

Секция [smtp]

В этой секции содержатся настройки встроенного SMTP-сервера.

Параметр Описание
open_email_after_saving Открывать электронные письма после сохранения (on/off).
Важно: Используйте эту опцию с осторожностью при локальном тестировании почтовых рассылок.
Значение по умолчанию: off
saved_email_extension Расширение файлов сохраняемых электронных писем.
Значение по умолчанию: .eml
smtp_port Порт встроенного SMTP-сервера.
Значение по умолчанию: 25
smtp_server Включить/выключить встроенный SMTP-сервер (on/off).
Значение по умолчанию: on

Секция [environment]

Эта секция содержит глобальные переменные среды модулей.

  • Переопределение/удаление: Для каждого модуля эти переменные можно переопределить или удалить в его файле настроек (.\config\<имя_модуля>\<имя_профиля>\settings.ini).
  • Удаление переменной: Задайте пустое значение или используйте специальный фильтр (см. allowed_env_vars).

Шаблонные переменные

Переменная Описание
{root_dir} Корневой каталог Open Server Panel (полный путь)
{root_drive} Диск корневого каталога
{root_path} Путь к корневому каталогу Open Server Panel
{terminal_codepage} Кодировка консоли (см. terminal_codepage)
{time_zone} Часовой пояс в формате Etc/GMT (см. time_zone)

Помимо шаблонных переменных, можно использовать любые переменные среды Windows, например: %COMSPEC%, %SYSTEMDRIVE%, %USERNAME%, %PATH% и т.д.

Настройка проектов

Файл конфигурации

Настройки проекта хранятся в файле <проект>\.osp\project.ini.

  • Несколько доменов/поддоменов: Если проект содержит несколько доменов или поддоменов, добавьте для каждого из них отдельную секцию в файле project.ini.

Важно:

  • Применение изменений: Для применения изменений перезапустите Open Server Panel. При необходимости очистите кэш DNS в браузере.
  • Переключение версий PHP/Nginx/Node.js: Перезапуск Open Server Panel не требуется при смене версии PHP, Nginx или Node.js через меню программы. Все необходимые перезапуски и инициализации выполняются автоматически.
  • Браузеры Chromium и IPv6: Браузеры на движке Chromium (Chrome, Edge, Vivaldi, Яндекс.Браузер и т.д.) не видят локальные домены с IPv6-адресами при отсутствии доступа по протоколу IPv6 в Интернет. Для работы с такими доменами используйте браузер Firefox или отключите IPv6 для модулей PHP/Nginx и доменов.
  • VPN и прокси: Локальные домены могут быть недоступны при использовании VPN или прокси. Добавьте все локальные домены в исключения VPN/прокси.
  • Конфликты имен: Не создавайте домены с именами, совпадающими с именами модулей или дополнений.
  • localhost: Не используйте localhost в качестве имени домена. Если это всё же необходимо, то укажите 127.0.0.1 в качестве ip домена.

Секция [имя_домена]

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

  • Интернационализированные домены: Допустимы как обычное, так и Punycode представление.
  • IP-адреса как имена доменов: Запрещено использовать IP-адрес в качестве имени домена. Для прямого доступа к домену по IP используйте псевдонимы (aliases).
Параметр Описание
aliases Псевдонимы (алиасы) домена (через пробел).
Поддомены: Псевдонимы без точки (.) считаются поддоменами и дополняются именем домена (например, www -> www.test.local).
Другие домены: Можно использовать другие домены в качестве псевдонимов (например, при переезде сайта на новый домен).
Важно: Алиасы вида *.example.local не поддерживаются файлом HOSTS в Windows. Не используйте * в качестве знака подстановки без активации модуля DNS (Bind или Unbound) и правильной настройки зоны домена.
Наследование: Если параметр не задан, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: www
enabled Включить/выключить проект (on/off).
Наследование: Если параметр не задан, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: on
environment Список дополнений и модулей (через пробел), среды которых присоединяются к среде проекта при ее активации командой osp project <DOMAIN>.
System (по умолчанию): Позволяет использовать программы, установленные в системе (например, git.exe или ssh.exe). Отключайте System только при возникновении конфликтов с системным ПО.
Модули PHP/Nginx/Node.js: Среды этих модулей подключаются всегда (если заданы для домена) и не требуют указания в этом параметре.
Наследование: Если параметр не задан, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: System
http_port Порт для работы по протоколу HTTP.
Наследование: Если параметр не задан, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: 80
https_port Порт для работы по протоколу HTTPS.
Наследование: Если параметр не задан, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: 443
ip IP-адрес домена.
Несколько IP-адресов: Можно указать несколько IP-адресов (через пробел) и использовать IPv6. При обновлении файла HOSTS домену будет назначен первый указанный IP.
Важно: Не назначайте один и тот же IP-адрес доменам с разными значениями php_engine или nginx_engine.
Автоматическое назначение: Оставьте значение пустым для автоматического назначения IP-адреса.
Наследование: Если параметр не задан, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: (пусто)
nginx_engine Движок Nginx, используемый в качестве веб-сервера для этого домена.
FCGI: При использовании nginx_engine выберите FCGI-модуль PHP.
Прокси-сервер: Выберите обычный модуль PHP (не FCGI), если Nginx используется как прокси-сервер для Apache.
Несуществующий модуль: Если указанный модуль Nginx не установлен, домен будет проигнорирован.
Наследование: Если параметр не задан, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: (пусто)
node_engine Движок Node.js, используемый для запуска Node.js-приложений этого домена.
Установка Node.js: Предварительно установите нужную версию Node.js с помощью дополнения NVM.
Наследование: Если параметр не задан, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: (пусто)
php_engine Движок PHP, используемый для обработки PHP-файлов этого домена.
Несуществующий модуль: Если указанный модуль PHP не установлен, домен будет проигнорирован.
Наследование: Если параметр не задан, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: (пусто)
project_dir Корневой каталог проекта, используемый командой osp project <DOMAIN>.
Наследование: Если параметр не задан, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: {base_dir}
project_url URL-адрес, открываемый при выборе пункта Открыть проект в браузере в меню Open Server Panel.
Панель администрирования: Используйте этот параметр для указания URL-адреса панели администрирования CMS.
Значение по умолчанию: https://{host_decoded}
public_dir Публичный каталог проекта. Можно использовать шаблонные переменные.
Наследование: Если параметр не задан, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: {base_dir}
ssl Включить/выключить SSL (on/off). При отключенном SSL работа с доменом по HTTPS будет невозможна.
Наследование: Если параметр не задан, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: on
ssl_cert_file Файл сертификата. Можно использовать шаблонные переменные.
Значение по умолчанию: автоматически сгенерированный сертификат
ssl_key_file Файл ключа. Можно использовать шаблонные переменные.
Значение по умолчанию: автоматически сгенерированный ключ
start_command Команда запуска проекта (например, nodemon app.js).
Кодировка: По умолчанию используется кодировка 65001 (UTF-8). Изменить кодировку можно командой chcp <КОДИРОВКА>.
Наследование: Если параметр не задан, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: (пусто)
terminal_codepage Кодировка консоли при работе со средой проекта (например, 65001 или 1251). Если параметр не задан локально и глобально, будет использована кодировка, заданная для среды модуля PHP.
Наследование: Если параметр не задан локально, используется глобальное значение из основных настроек Open Server Panel.
Значение по умолчанию: (пусто)

Шаблонные переменные

Переменная Описание
{base_dir} Корневой каталог проекта (где находится каталог .osp)
{host} Имя домена (для интернационализированных доменов используется Punycode)
{host_decoded} Видимое имя домена (без Punycode)
{root_dir} Корневой каталог Open Server Panel (полный путь)
{root_drive} Диск корневого каталога
{root_path} Путь к корневому каталогу Open Server Panel

Ручная настройка конфигурации

Универсальная конфигурация

Open Server Panel использует универсальную конфигурацию домена.

  • Apache: Конфигурация задается с помощью макроса в шаблоне httpd.conf.
  • Nginx: Конфигурация задается в файлах virtual_*_host.conf, расположенных в каталоге conf модуля.

Способ 1. Дополнение конфигурации

Чтобы добавить собственную конфигурацию домена внутрь автоматически сконфигурированного блока <VirtualHost> (Apache) или Server{} (Nginx):

  1. Создайте каталог и файл: Создайте каталог <проект>\.osp\Apache или <проект>\.osp\Nginx и файл <имя_домена>.conf в этом каталоге.
    • Пример: <проект>\.osp\Apache\example.local.conf
    • Punycode: Используйте Punycode для интернационализированных доменов.
  2. Добавьте конфигурацию: Добавьте необходимые директивы в созданный файл.
  3. Перезапустите Open Server Panel.

Рекомендация: Этот способ позволяет использовать собственную конфигурацию без необходимости детальной настройки параметров хоста. Учитывайте, что вы уже находитесь внутри блока <VirtualHost> (Apache) или Server{} (Nginx), а основные параметры хоста уже заданы.

Способ 2. Замена конфигурации

Чтобы создать собственный блок <VirtualHost> (Apache) или Server{} (Nginx):

  1. Создайте каталог и файл: Создайте каталог <проект>\.osp\Apache или <проект>\.osp\Nginx и файл <имя_домена>.conf в этом каталоге.
    • Пример: <проект>\.osp\Apache\example.local.conf
    • Punycode: Используйте Punycode для интернационализированных доменов.
  2. Добавьте блок конфигурации: Добавьте блок <VirtualHost> (Apache) или Server{} (Nginx) с полной конфигурацией домена в созданный файл.
  3. Перезапустите Open Server Panel.

Важно: Этот способ требует продвинутых знаний Apache/Nginx и Open Server Panel.

Другие возможности

  • Каталог .\osp\bin: Создайте каталог .osp\bin в каталоге проекта для хранения служебных скриптов. Этот каталог будет добавлен в переменную PATH при активации среды проекта. Базовый и публичный каталоги проекта всегда добавляются в PATH.
  • Дополнительные пункты меню и языковые константы: Проект может добавлять пункты в меню Open Server Panel и определять собственные языковые константы. Пример можно найти в проекте full-example.local, доступном после установки Open Server Panel.

Настройка переменных среды

Для настройки переменных среды проекта создайте файл .osp\env.ini.

Пример:

[full-example.local]
ANY_VALUE = SOMETHING

Настройка меню

Меню Open Server Panel предоставляет доступ к базовым настройкам (выбор версии PHP, выбор профиля и т.д.) и командам (перезапуск модулей, запуск shell и т.д.).

Важно:

  • Автоматическая инициализация/перезапуск: При смене версии PHP проекта или профиля настроек модуля через меню, затронутые модули будут автоматически инициализированы или перезапущены. Учитывайте это при выполнении длительных операций на сервере.

Конфигурация меню хранится в файле .\config\menu.ini. В этом же файле можно создавать дополнительные пункты меню. Для применения изменений перезапустите Open Server Panel.

Чтобы создать новый пункт меню, добавьте новую секцию в файл menu.ini.

Секция [ID]

Эта секция содержит настройки пункта меню. Все параметры необязательны.

  • ID: Уникальный идентификатор секции.
  • Порядок сортировки: Пункты меню сортируются в том же порядке, в котором расположены соответствующие секции в файле menu.ini.

Важно: Не используйте одинаковые ID для разных секций.

Параметр Описание
caption Текст пункта меню. Можно использовать языковые константы (например, {lang_xxx}).
Значение по умолчанию: (пусто)
category Категория пункта меню. Можно использовать языковые константы (например, {lang_xxx}).
Подкатегории: Допустим один уровень вложенности (например, Мои Закладки\Работа).
Корень меню: Если категория не указана, пункт будет создан в корне меню.
Специальные значения:
- projects, modules, addons: Пункт будет добавлен в меню действий для проектов, модулей или дополнений.
- projects\<имя_домена>, modules\<имя_модуля>, addons\<имя_дополнения>: Пункт будет добавлен в меню действий для конкретного проекта, модуля или дополнения.
Значение по умолчанию: (пусто)
command Команда, выполняемая при выборе этого пункта меню. Если команда не указана, пункт меню будет проигнорирован.
Значение по умолчанию: (пусто)
enabled Отображать пункт меню (on/off).
Значение по умолчанию: on
hide Скрыть окно вызываемого приложения (on/off).
Примечание: Эта опция влияет только на вызываемую подпрограмму и не влияет на новые процессы, создаваемые этой подпрограммой.
Значение по умолчанию: off
hr_after Отображать разделительную линию под пунктом меню (on/off).
Значение по умолчанию: off
hr_before Отображать разделительную линию над пунктом меню (on/off).
Значение по умолчанию: off
icon Имя значка из набора Font Awesome Free (Solid/Regular/Brands).
Значение по умолчанию: (пусто)
need_category Отображать пункт меню только для модулей или дополнений, принадлежащих указанной категории (MySQL, PHP и т.д.). Не путать с категорией пункта меню.
Поддерживаемые категории: modules, addons, modules\<имя_модуля>, addons\<имя_дополнения>.
Значение по умолчанию: (пусто)
need_module_shell Отображать пункт меню только при наличии/отсутствии shell/cli оболочки у модуля, указанного в родительском пункте меню.
Поддерживаемые категории: modules, modules\<имя_модуля>.
Значение по умолчанию: (пусто)
Допустимые значения: on, off
need_state Отображать пункт меню только тогда, когда модуль, указанный в родительском пункте меню, находится в нужном состоянии (включен/выключен).
Поддерживаемые категории: modules, modules\<имя_модуля>.
Значение по умолчанию: (пусто)
Допустимые значения: on, off
need_start_command Отображать пункт меню только тогда, когда в настройках проекта указана команда запуска (см. start_command).
Поддерживаемые категории: projects, projects\<имя_домена>.
Значение по умолчанию: (пусто)
Допустимые значения: on, off
need_use_win_terminal Отображать пункт меню только при включенной/выключенной опции use_win_terminal в настройках Open Server Panel.
Значение по умолчанию: (пусто)
Допустимые значения: on, off
work_directory Рабочий каталог для выполнения команды (см. command).
Важно: Текущий каталог может меняться во время выполнения некоторых команд (например, osp project ...) и не совпадать с начальным рабочим каталогом.
Значение по умолчанию: {root_dir}

Шаблонные переменные

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

Переменная Описание
{root_dir} Корневой каталог Open Server Panel (полный путь)
{root_drive} Диск корневого каталога
{root_path} Путь к корневому каталогу Open Server Panel
{web_panel_url} URL-адрес веб-интерфейса
Особые переменные (только для projects и projects\<имя_домена>)
{base_dir} Базовый каталог проекта
{host} Имя домена (Punycode)
{host_decoded} Видимое имя домена (без Punycode)
{nginx_engine} Движок Nginx
{node_engine} Движок Node.js
{php_engine} Движок PHP
{project_dir} Корневой каталог проекта
{project_url} URL проекта
{public_dir} Публичный каталог проекта
{start_command} Команда запуска проекта (если настроена)
{terminal_codepage} Кодировка консоли (см. terminal_codepage)
Особые переменные (только для addons и addons\<имя_дополнения>)
{addon_name} Имя дополнения
{terminal_codepage} Кодировка консоли (см. terminal_codepage)
Особые переменные (только для modules и modules\<имя_модуля>)
{ip} IP-адрес модуля
{log_level} Уровень журналирования ошибок
{module_name} Имя модуля
{port} Порт модуля
{profile_name} Имя текущего профиля настроек модуля
{query_log_level} Уровень журналирования запросов
{shell_command} Команда запуска shell/cli оболочки модуля (если настроена)
{terminal_codepage} Кодировка консоли (см. terminal_codepage)
{time_zone} Часовой пояс

Помимо шаблонных переменных, можно использовать переменные среды Windows, например: %COMSPEC%, %SYSTEMDRIVE%, %USERNAME%, %PATH% и т.д.

Примеры использования

[21]
caption  = Открыть в PhpStorm
category = projects
command  = "%COMSPEC%" /c "osp project {host_decoded} & start "" "C:\Program Files\JetBrains\PhpStorm 2018.2\bin\phpstorm64.exe" "{project_dir}""
hide     = on
icon     = code

[22]
caption  = Google
category = Мои Закладки\Поисковые системы
command  = "%COMSPEC%" /c "start "" "https://google.com""
hide     = on
icon     = bookmark

Опции cmd.exe:

  • /c: Выполнить команду и закрыть терминал.
  • /k: Выполнить команду и оставить терминал открытым.

Настройка модулей

Настройки каждого модуля хранятся в файле .\config\<имя_модуля>\<имя_профиля>\settings.ini.

Шаблоны конфигурации каждого модуля хранятся в каталоге .\config\<имя_модуля>\<имя_профиля>\templates.

  • Профиль по умолчанию: default.
  • Смена профиля: Активный профиль можно сменить через меню Open Server Panel.
  • Резервные копии:
    • Оригинальные настройки и файлы конфигурации: .\modules\<имя_модуля>\ospanel_data\default.
    • Оригинальные файлы данных (если есть): .\modules\<имя_модуля>\ospanel_data\default_data.
    • Будущая функциональность: Эти данные будут использоваться для восстановления оригинальной конфигурации модуля в панели управления, поэтому никогда не используйте и не изменяйте содержимое каталога .\modules\<имя_модуля>\ospanel_data.

Важно:

  • Применение изменений настроек: Перезапустите Open Server Panel.
  • Применение изменений в шаблонах: Перезапустите или переинициализируйте модуль.
  • Не редактируйте файл .\config\<имя_модуля>\module.ini: Этот файл управляется автоматически.

Секция [main]

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

Параметр Описание
ip IP-адрес модуля.
Несколько IP-адресов: Можно указать несколько IP-адресов (через пробел) и использовать IPv6, если модуль это поддерживает. При обновлении файла HOSTS будет использован первый указанный IP-адрес.
DNS: Этот параметр игнорируется для модулей DNS.
port Порт модуля.
PHP/Nginx/DNS: Этот параметр игнорируется для модулей PHP, Nginx и DNS.
clean_directories Каталоги, очищаемые перед запуском модуля (через пробел). Например: кэш, временные файлы и т.д. Можно использовать шаблонные переменные.
log_directory Каталог для хранения логов модуля. Создается автоматически, если не существует. Можно использовать шаблонные переменные.
log_level_values Доступные уровни журналирования (поддерживается не всеми модулями).
log_level Уровень журналирования (значение из log_level_values).
query_log_values Доступные уровни журналирования запросов (поддерживается не всеми модулями).
query_log_level Уровень журналирования запросов (значение из query_log_values).
shell_command Команда запуска shell/cli оболочки модуля. Можно использовать шаблонные переменные.
ssl_auto_cert Автоматическая генерация и использование SSL-сертификата (on/off).
Отключение:
- Этот параметр всегда имеет значение off, если IP-адрес модуля не указан.
- При отключении этого параметра необходимо вручную настроить конфигурацию SSL модуля (отключить SSL или указать собственные ключи и сертификаты).
- Браузеры без хранилища сертификатов Windows (например, Firefox): Импортируйте корневой сертификат Open Server Panel (data\ssl\root\cert.crt) в браузер. Повторите импорт после каждого пересоздания корневого сертификата командой osp cacert init.
start_command Команда запуска модуля. Можно использовать шаблонные переменные.
start_directory Каталог запуска модуля (должен существовать). Можно использовать шаблонные переменные.
work_directories Каталоги, необходимые для работы модуля (через пробел). Создаются автоматически, если не существуют. Можно использовать шаблонные переменные.
used_addons_environment Список дополнений (через пробел), среды которых (если есть) присоединяются к среде модуля. Информационные индикаторы в консоли не отображают эти дополнительные среды.
Важно: Используйте эту опцию только при полном понимании ее назначения.
allowed_system_env_vars Список переменных среды Windows (через пробел), передаваемых в среду модуля.
Назначение: Фильтрация рабочей среды модуля от среды установленного в систему аналогичного ПО.
Важно: Изменяйте этот список только при полном понимании последствий.
Значение auto (по умолчанию): Используется глобальное значение из основных настроек Open Server Panel.
log_max_filesize Максимальный размер файла журнала (0 — без ограничений).
Пересоздание файла: При превышении указанного размера файл журнала будет пересоздан при следующем запуске модуля.
Значение auto (по умолчанию): Используется глобальное значение из основных настроек Open Server Panel.
Единицы измерения: B (байты), K (килобайты), M (мегабайты), G (гигабайты), T (терабайты).
Очистка логов при запуске: Установите значение 1 (байт), чтобы очищать логи при каждом запуске модуля.
log_write_title Добавлять заголовок в файл журнала при каждом запуске модуля (on/off). Полезно для разделения рабочих сессий, если автоматическая очистка журнала отключена.
Значение auto (по умолчанию): Используется глобальное значение из основных настроек Open Server Panel.
max_probation_fails Максимальное количество последовательных (подряд) неудачных запусков модуля (см. probation), после которых модуль перейдет в состояние «Ошибка».
Значение auto (по умолчанию): Используется глобальное значение из основных настроек Open Server Panel.
max_shutdown_time Максимальное время завершения работы модуля (0 — без ограничений).
Принудительная остановка: Если модуль не завершит работу за указанное время, он будет принудительно остановлен.
Минимальное значение: 30 секунд.
Важно: Не устанавливайте это ограничение без полного понимания последствий. Преждевременная остановка модуля может привести к проблемам (повреждение данных, неполная запись логов и т.д.).
Значение auto (по умолчанию): Используется глобальное значение из основных настроек Open Server Panel.
Единицы измерения: s (секунды), m (минуты), h (часы), d (дни).
probation Время проверки работоспособности модуля (испытательный срок).
Начало отсчета: С момента успешного запуска модуля.
Состояние «Ошибка»: Если модуль неожиданно завершит работу во время испытательного срока, он не будет перезапущен и перейдет в состояние «Ошибка». Это состояние также устанавливается, если модуль не может запуститься на уровне системы.
Отключение: Значение 0 отключает испытательный срок. Модуль всегда будет перезапускаться при сбое.
Рекомендации: Не рекомендуется устанавливать значение 0 или слишком короткий период проверки (менее 30 секунд).
Значение auto (по умолчанию): Используется глобальное значение из основных настроек Open Server Panel.
Единицы измерения: s (секунды), m (минуты), h (часы), d (дни).
silent_mode Тихий режим работы (on/off). В этом режиме отключаются всплывающие сообщения об ошибках от службы Windows Error Reporting и самого модуля.
Отключение: Отключайте этот режим только для диагностики проблем с модулем.
Значение auto (по умолчанию): Используется глобальное значение из основных настроек Open Server Panel.
terminal_codepage Кодировка консоли при работе со средой модуля.
Специальные значения:
- system: Системная кодировка.
- auto: Глобальное значение из основных настроек Open Server Panel.
Пустое значение: Кодировка консоли не будет изменяться при активации среды модуля или его shell/cli оболочки.
time_zone Часовой пояс (временная зона) в формате Etc/GMT (например, Etc/GMT-3).
Специальные значения:
- system: Системный часовой пояс.
- auto: Глобальное значение из основных настроек Open Server Panel.
Важно: Формат Etc/GMT отличается от UTC обратным порядком (например, Etc/GMT-3 = UTC/GMT+3 = UTC+03:00 = Europe/Moscow).

Шаблонные переменные

В параметрах clean_directories, log_directory, shell_command, start_command, start_directory и work_directories можно использовать следующие шаблонные переменные:

Переменная Описание
{module_name} Имя модуля
{profile_name} Имя текущего профиля настроек модуля
{root_dir} Корневой каталог Open Server Panel (полный путь)
{root_drive} Диск корневого каталога
{root_path} Путь к корневому каталогу Open Server Panel

В параметрах shell_command и start_command также доступны следующие переменные, если соответствующие параметры заданы в этой же секции:

Переменная Описание
{ip} IP-адрес(а) модуля
{port} Порт модуля
{log_level} Уровень журналирования
{query_log_level} Уровень журналирования запросов
{terminal_codepage} Кодировка консоли
{time_zone} Часовой пояс в формате Etc/GMT

Помимо шаблонных переменных, можно использовать переменные среды Windows, например: %COMSPEC%, %SYSTEMDRIVE%, %USERNAME%, %PATH% и т.д.

Секция [environment]

В этой секции можно задавать/переопределять переменные среды модуля (поддерживаемые переменные зависят от модуля).

  • Удаление переменной: Задайте пустое значение.

Шаблонные переменные

Переменная Описание
{module_name} Имя модуля
{profile_name} Имя текущего профиля настроек модуля
{root_dir} Корневой каталог Open Server Panel (полный путь)
{root_drive} Диск корневого каталога
{root_path} Путь к корневому каталогу Open Server Panel

Также доступны следующие переменные, если соответствующие параметры заданы в секции [main]:

Переменная Описание
{ip} IP-адрес(а) модуля
{port} Порт модуля
{log_level} Уровень журналирования
{query_log_level} Уровень журналирования запросов
{terminal_codepage} Кодировка консоли
{time_zone} Часовой пояс в формате Etc/GMT

Помимо шаблонных переменных, можно использовать переменные среды Windows, например: %COMSPEC%, %SYSTEMDRIVE%, %USERNAME%, %PATH% и т.д.

Секция [имя_файла]

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

  • Расположение шаблонов: .\config\<имя_модуля>\<имя_профиля>\templates.
  • Временные файлы: Во время инициализации модуля шаблоны преобразуются во временные рабочие файлы.
Параметр Обязательный Описание
comment Да Символ комментария, используемый в файле конфигурации.
destination Да Путь к временному файлу. Этот файл пересоздается при каждой инициализации модуля и не подлежит редактированию.
enabled Нет Включить/выключить использование этого файла конфигурации (on/off).
Значение off: Файл временно не используется.
Значение по умолчанию: on
encoding Нет Кодировка файла конфигурации.
Допустимые значения: UTF8, ANSI, ASCII.
Значение по умолчанию: UTF8
directory_separator Да Разделитель каталогов, используемый в путях к ресурсам.
source_dir Нет Каталог для поиска исходного файла-шаблона.
Значение по умолчанию: .\config\<имя_модуля>\<имя_профиля>\templates

Шаблонные переменные

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

Переменная Описание
{module_name} Имя модуля
{profile_name} Имя текущего профиля настроек модуля
{root_dir} Корневой каталог Open Server Panel (полный путь)
{root_drive} Диск корневого каталога
{root_path} Путь к корневому каталогу Open Server Panel

Шаблонные переменные в файлах-шаблонах

В файлах-шаблонах можно использовать следующие шаблонные переменные:

Переменная Описание
{module_name} Имя модуля
{profile_name} Имя текущего профиля настроек модуля
{root_dir} Корневой каталог Open Server Panel (полный путь)
{root_drive} Диск корневого каталога
{root_path} Путь к корневому каталогу Open Server Panel
Особые переменные (только если заданы в секции [main])
{ip} IP-адрес(а) модуля
{port} Порт модуля
{log_level} Уровень журналирования
{query_log_level} Уровень журналирования запросов
{shell_command} Команда запуска shell/cli оболочки модуля
{terminal_codepage} Кодировка консоли
{time_zone} Часовой пояс в формате Etc/GMT
Служебные переменные (только для разработчиков модулей)
{apache_hosts} Блок конфигурации хостов для Apache
{api_domain} Домен API
{cmd_api_url} URL API для интерфейса командной строки
{environment} Блок формирования среды модуля (формат Batch-скрипта)
{lang_N} Текстовая строка с номером N из языкового файла (текущий язык)
{nginx_hosts} Блок конфигурации хостов для Nginx
{osp_version} Версия Open Server Panel
{osp_version_datetime} Дата выпуска версии (дата компиляции)
{parent_module} Родительский модуль (задаётся в описательном файле)
{web_api_url} URL API для веб-интерфейса
{web_panel_url} URL веб-интерфейса
{windows_environment} Среда Windows (оригинальная, сформированная при запуске Open Server Panel)

Помимо шаблонных переменных, можно использовать переменные среды Windows, например: %COMSPEC%, %SYSTEMDRIVE%, %USERNAME%, %PATH% и т.д.

Секция [services]

В этой секции описывается требуемая модулю конфигурация системных служб.

  • Назначение: Проверка состояния служб Windows перед запуском модуля.
  • Управление службами: Эта секция не управляет состоянием служб.

Пример:

[services]
Dhcp     = on
EMDMgmt  = off
SysMain  = on

Создание дополнительных профилей

Чтобы создать новый профиль настроек модуля:

  1. Скопируйте существующий профиль: Скопируйте каталог существующего профиля (например, .\config\<имя_модуля>\Default) в новый каталог (например, .\config\<имя_модуля>\MyProfile).
  2. Скопируйте данные (если есть): Если модуль использует данные из каталога .\data, скопируйте каталог данных существующего профиля (например, .\data\<имя_модуля>\Default) в новый каталог (например, .\data\<имя_модуля>\MyProfile).
  3. Использование оригинальных настроек и данных: Вместо копирования существующего профиля можно использовать оригинальные настройки и данные модуля из каталогов .\modules\<имя_модуля>\ospanel_data\default и .\modules\<имя_модуля>\ospanel_data\default_data соответственно.
  4. Перезапустите Open Server Panel
  • Разрешенные символы в имени профиля: A-Za-z0-9-+_.
  • Преимущества дополнительных профилей:
    • Тестирование новых конфигураций
    • Эксперименты с настройками

Создание модулей

Структура модуля

Каждый модуль Open Server Panel имеет следующую минимальную файловую структуру:

.
├── data
│   └── <имя_модуля>                  # Каталог данных модуля (необязательный)
└── modules
    └── <имя_модуля>                  # Основной каталог модуля
        └── ospanel_data              # Служебные файлы (исходники настроек и конфигураций)
            ├── default               # Каталог исходного профиля
            │   ├── settings.ini      # Файл настроек модуля
            │   └── templates         # Каталог шаблонов
            ├── default_data          # Каталог данных исходного профиля (необязательный)
            ├── module.dat            # Описательный файл модуля
            ├── menu.ini              # Файл настроек меню модуля (дополнительные пункты)
            └── lang                  # Каталог языковых файлов (English.ini, Russian.ini и т.д.)

Создание модуля

  1. Создайте структуру каталогов: Создайте каталоги, как показано в примере выше.
  2. Языковые файлы (необязательно):
    • Расположение: .\modules\<имя_модуля>\ospanel_data\lang
    • Содержимое: Константы модуля в секции [main].
    • Уникальный префикс: Используйте уникальный префикс в именах констант (например, mymod_...).
  3. Дополнительное меню (необязательно):
    • Расположение: .\modules\<имя_модуля>\ospanel_data\menu.ini
    • Уникальные ID: Используйте уникальные ID для секций, не совпадающие с ID из файла .\config\menu.ini. Рекомендуется использовать префикс, равный имени модуля.
  4. Файл настроек:
    • Расположение: .\modules\<имя_модуля>\ospanel_data\default\settings.ini
  5. Шаблоны файлов конфигурации:
    • Расположение: .\modules\<имя_модуля>\ospanel_data\default\templates
  6. Исходные данные (необязательно):
    • Расположение: .\modules\<имя_модуля>\ospanel_data\default_data (например, базы данных)
  7. Описательный файл:
    • Расположение: .\modules\<имя_модуля>\ospanel_data\module.dat

    • Формат: INI-файл

    • Секция [main] с параметрами:

      Параметр Описание
      architecture Архитектура модуля: x64 или x86
      category Категория модуля (можно использовать существующие категории или создать новую)
      fast_start Быстрый запуск модуля (без ожидания инициализации консоли): yes или no
      fast_stop Быстрая остановка модуля (принудительное завершение процесса): yes или no
      ipv6_support Поддержка IPv6: yes или no
      ip_separator Разделитель IP-адресов в конфигурации модуля (если поддерживается несколько IP-адресов)
      kill_names Список процессов для принудительного завершения, если модуль не может остановить их самостоятельно (например, epmd.exe test.exe)
      license Ссылка на лицензию модуля
      license_type Тип лицензии модуля
      min_windows_ver Минимальная поддерживаемая версия Windows (см. таблицу ниже)
      timestamp Временная метка релиза модуля
      version Версия модуля
    • Минимальная версия Windows:

      Номер версии Версия Windows
      6.1.7601 Windows 7 SP1
      6.2.9200 Windows 8
      6.3.9600 Windows 8.1
      10.0.10240 Windows 10 1507
      10.0.10586 Windows 10 1511
      10.0.14393 Windows 10 1607
      10.0.15063 Windows 10 1703
      10.0.16299 Windows 10 1709
      10.0.17134 Windows 10 1803
      10.0.17763 Windows 10 1809
      10.0.18362 Windows 10 1903
      10.0.18363 Windows 10 1909
      10.0.19041 Windows 10 2004
      10.0.19042 Windows 10 20H2
      10.0.19043 Windows 10 21H1
      10.0.19044 Windows 10 21H2
      10.0.19045 Windows 10 22H2
      10.0.22000 Windows 11 21H2
      10.0.22621 Windows 11 22H2
  8. Копирование настроек и данных:
    • Настройки: Создайте каталог .\config\<имя_модуля>\default и скопируйте в него содержимое каталога .\modules\<имя_модуля>\ospanel_data\default.
    • Данные: Создайте каталог .\data\<имя_модуля>\default и скопируйте в него содержимое каталога .\modules\<имя_модуля>\ospanel_data\default_data (если есть).
  9. Перезапустите Open Server Panel.

Важно: Не используйте каталоги .\modules\<имя_модуля>\ospanel_data\default и .\modules\<имя_модуля>\ospanel_data\default_data для работы с модулем. Эти каталоги хранят исходный профиль и используются для восстановления настроек модуля.

Ответы на часто задаваемые вопросы

Как включить расширение XDebug?

Для включения расширения XDebug, например для PHP 8.1, выполните следующие шаги:

  1. Откройте конфигурационный файл PHP 8.1:

    Перейдите в каталог с шаблонами настроек PHP 8.1:

    .\config\PHP-8.1\default\templates\php.ini
    
  2. Редактирование php.ini:

    Откройте файл php.ini в текстовом редакторе (например, Notepad++ или VS Code).

  3. Раскомментируйте строку для загрузки XDebug:

    Найдите строку, содержащую zend_extension, и убедитесь, что она не закомментирована (без точки с запятой в начале строки):

    zend_extension = xdebug
  4. Настройте параметры XDebug (опционально):

    Это пример базовой конфигурации:

    [xdebug]
    xdebug.mode = debug
    xdebug.start_with_request = yes
    xdebug.client_host = "localhost"
    xdebug.client_port = 9003

    Вы можете настроить параметры в соответствии с вашими потребностями.

  5. Перезапуск Open Server Panel:

    После внесения изменений в php.ini перезапустите модуль PHP, чтобы применить новые настройки. Для этого:

    • Щёлкните правой кнопкой мыши на значок Open Server Panel в области уведомлений.
    • Выберите необходимый модуль и нажмите Перезапустить.
  6. Проверка работы XDebug:

    Чтобы убедиться, что XDebug включён и работает, создайте файл info.php в корневом каталоге вашего веб-проекта с содержимым:

    <?php phpinfo(); ?>

    Откройте этот файл в браузере (например, http://example.local/info.php) и найдите секцию XDebug в выведенной информации. Если XDebug включён и настроен правильно, вы увидите информацию о XDebug.

После этих шагов расширение XDebug должно быть успешно активировано для PHP 8.1 в Open Server Panel.

Почему в дистрибутиве нет PHPMyAdmin?

PHPMyAdmin не включён в состав Open Server Panel. Каждый пользователь самостоятельно решает, какой инструмент использовать для управления базами данных.

Вы можете установить любой подходящий инструмент, например:

  1. Adminer

    • Поддерживаемые базы данных: MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, Elasticsearch, MongoDB.
    • Особенности: Легкий и быстрый веб-интерфейс, поддержка множества баз данных, расширяемость через плагины.
    • Скачать с официального сайта
  2. Another Redis Desktop Manager

    • Поддерживаемые базы данных: Redis.
    • Особенности: Быстрый и стабильный десктопный клиент для Redis, кроссплатформенность (Linux, Windows, Mac).
    • Скачать с официального сайта
  3. Antares SQL

    • Поддерживаемые базы данных: MySQL, PostgreSQL, SQLite, и другие.
    • Особенности: Современный интерфейс, поддержка вкладок, автодополнение SQL, интеграция с другими инструментами.
    • Скачать с официального сайта
  4. DBeaver

    • Поддерживаемые базы данных: MySQL, MariaDB, PostgreSQL, SQLite, Oracle, SQL Server, DB2, Apache Family (Cassandra, Hive, и др.), MongoDB, Redis, и другие.
    • Особенности: Кроссплатформенность, поддержка ER-диаграмм, редактор данных и SQL, экспорт и импорт данных.
    • Скачать с официального сайта
  5. DbGate

    • Поддерживаемые базы данных: MySQL, PostgreSQL, SQL Server, MongoDB и другие.
    • Особенности: Веб-ориентированный интерфейс, поддержка вкладок, редактор SQL, поддержка MongoDB.
    • Скачать с официального сайта
  6. DbVisualizer

    • Поддерживаемые базы данных: MySQL, PostgreSQL, Oracle, SQL Server, SQLite, и другие через JDBC.
    • Особенности: Кроссплатформенность, удобный графический интерфейс, поддержка множества баз данных через JDBC, инструменты для анализа данных.
    • Скачать с официального сайта
  7. DB Browser for SQLite

    • Поддерживаемые базы данных: SQLite.
    • Особенности: Легкий интерфейс для работы с SQLite базами данных, создание и редактирование таблиц, выполнение SQL-запросов.
    • Скачать с официального сайта
  8. HeidiSQL

    • Поддерживаемые базы данных: MariaDB, MySQL, MSSQL, PostgreSQL, SQLite, Interbase/Firebird.
    • Особенности: Легкий и быстрый интерфейс, поддержка SSH-туннелей, экспорт и импорт данных.
    • Скачать с официального сайта
  9. MySQL Workbench

    • Поддерживаемые базы данных: MySQL, MariaDB.
    • Особенности: Инструменты для проектирования схем баз данных (ER-диаграммы), редактор SQL-запросов, визуальное моделирование данных, администрирование серверов MySQL, создание и управление пользователями, экспорт и импорт данных.
    • Скачать с официального сайта
  10. NoSQLBooster for MongoDB (бесплатная версия)

    • Поддерживаемые базы данных: MongoDB.
    • Особенности: Редактор и выполнение запросов для MongoDB, автодополнение, визуализация данных, поддержка JavaScript.
    • Скачать с официального сайта
  11. pgAdmin

    • Поддерживаемые базы данных: PostgreSQL.
    • Особенности: Полнофункциональное управление PostgreSQL, поддержка SQL-редактирования, управление пользователями и привилегиями, визуализация данных.
    • Скачать с официального сайта
  12. PHPMyAdmin

    • Поддерживаемые базы данных: MySQL, MariaDB.
    • Особенности: Веб-интерфейс, удобное управление базами данных через браузер, поддержка множества языков.
    • Скачать с официального сайта
  13. SQL Workbench/J

    • Поддерживаемые базы данных: MySQL, PostgreSQL, SQL Server, Oracle, и другие через JDBC.
    • Особенности: Кроссплатформенность, поддержка сценариев SQL, экспорт и импорт данных, редактор запросов.
    • Скачать с официального сайта
  14. SQuirreL SQL

    • Поддерживаемые базы данных: MySQL, PostgreSQL, Oracle, SQL Server, DB2, SQLite и другие через JDBC.
    • Особенности: Кроссплатформенность, графический интерфейс, поддержка множества баз данных через JDBC, расширяемость через плагины.
    • Скачать с официального сайта
  15. SQLyog Community Edition

    • Поддерживаемые базы данных: MySQL, MariaDB.
    • Особенности: Интуитивно понятный графический интерфейс, инструменты для управления данными и структурой базы данных, экспорт и импорт данных.
    • Скачать с официального сайта

Эти программы предоставляют широкий спектр возможностей для управления базами данных и подходят для различных задач — от простого редактирования данных до сложного анализа и визуализации. Мы рекомендуем выбирать инструмент, который наилучшим образом соответствует вашим требованиям и предпочтениям. Инструкции по установке и настройке можно найти на официальных сайтах этих инструментов.

Почему Apache использует так много оперативной памяти?

Количество памяти, используемой Apache, напрямую зависит от двух параметров: ThreadStackSize и ThreadsPerChild.

ThreadStackSize

ThreadStackSize — это директива настройки в веб-сервере Apache, определяющая размер стека памяти, выделяемого для каждого потока в многопоточном режиме.

ThreadsPerChild

ThreadsPerChild — это директива настройки в веб-сервере Apache, управляющая количеством потоков, которые каждый дочерний процесс может создать и обрабатывать одновременно.

Значения по умолчанию в Open Server Panel

В Open Server Panel по умолчанию используются следующие значения:

  • ThreadStackSize — 8 МБ
  • ThreadsPerChild — 32

Таким образом, минимальный объем памяти, используемый Apache, составляет 8 МБ * 32 = 256 МБ без учета подключённых расширений PHP. Чем больше расширений активировано, тем больший объем памяти будет занимать каждый поток Apache.

Рекомендации по настройке

  1. ThreadStackSize: Мы не рекомендуем значительно снижать значение ThreadStackSize, так как это может вызвать проблемы в работе PHP. Установка значения этого параметра выше 8 МБ в большинстве случаев не имеет практического смысла.
  2. ThreadsPerChild: Этот параметр можно настроить в соответствии с вашими потребностями, однако мы не рекомендуем устанавливать количество потоков ниже 32. Слишком большое значение для этого параметра может привести к исчерпанию оперативной памяти на вашем компьютере и сопутствующим проблемам.

Корректная настройка этих параметров поможет оптимизировать использование памяти сервером Apache, обеспечивая при этом стабильную и эффективную работу ваших приложений.

Как отредактировать шаблон конфигурации какого-либо модуля?

Давайте рассмотрим пример редактирования шаблона httpd.conf для модуля PHP 8.1:

Шаг 1: Найдите шаблон файла конфигурации

  1. Перейдите в папку установки Open Server Panel (например, C:\OSPanel).
  2. Перейдите в config\PHP-8.1\default\templates.
  3. Найдите файл httpd.conf.

Шаг 2: Измените файл конфигурации

  1. Откройте httpd.conf в текстовом редакторе (например, Notepad++).
  2. Внесите необходимые изменения.
  3. Сохраните файл.

Шаг 3: Перезапустите модуль

  1. Перезапустите модуль с помощью меню программы или консольной команды osp restart PHP-8.1
  2. Убедитесь, что модуль запускается без ошибок.

Теперь вы успешно отредактировали конфигурацию Apache в Open Server Panel 6.

Clone this wiki locally