Skip to content

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

OSPanel edited this page Jan 4, 2024 · 1005 revisions

О программе

Open Server Panel является продвинутым аналогом таких WAMP сборок как Xampp, Denwer, Vertrigo, Wampserver и других, схожих с ними, программ. Если ранее вы уже работали с подобным программным обеспечением, то вам не составит труда быстро освоить и Open Server Panel.

Open Server Panel может работать без установки, потребуется лишь предварительная подготовка системы. Это означает, что вы можете спокойно переносить каталог с программой в любое место на диске или даже cкопировать его на другой компьютер. В комплект поставки уже включён инструмент для подготовки Windows к работе с Open Server Panel — System Preparation Tool.

Управление программным комплексом может осуществляться через веб-интерфейс (в разработке), интерфейс командной строки (CLI), а также с помощью трей-меню.

Особенности

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

Основные отличия OSPanel 6 от OSPanel 5:

  • Полный доступ пользователя ко всей конфигурации модулей
  • Управление программой в консольном режиме и через веб-интерфейс
  • Полный контроль над процессами (включая мониторинг и восстановление после сбоя)
  • Возможность параллельной работы любых модулей (можно включить хоть все одновременно)
  • Возможность создавать профили настроек модулей (включая файлы конфигурации)
  • Персонализация настроек для каждого домена (от IP до версии PHP)
  • Преднастроенная среда для каждого модуля (вплоть до входа в shell/cli одной командой)
  • 100% стабильность работы без багов/зависаний и проблем с кодировками
  • Публичный доступ ко всем настройкам/шаблонам/языкам/документации на GitHub

Веб-интерфейс находится в разработке, поэтому на данный момент управление программой доступно только в консольном режиме, а изменение настроек возможно только путём ручной правки файлов конфигурации.

Пожалуйста, сообщайте нам обо всех проблемах возникших при работе с программой, а также о своих идеях по доработке/изменению функционала и интерфейса. Присоединяйтесь к нашей группе Telegram и читайте о новых версиях первым!

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

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

Может потребоваться ограничение количества одновременно запускаемых модулей в случае, если в вашей системе доступно менее 3 ГБ свободной оперативной памяти. Владельцам малопроизводительных компьютеров рекомендуется запускать не более одного модуля каждого типа одновременно.

Запуск Open Server Panel возможен и на устаревших операционных системах с некоторыми оговорками (не все модули доступны, не поддерживаются пути длиннее 255 символов):

Операционная система (x64) Номер версии Поддержка
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 ограниченная

Начало использования

Рекомендуется использовать систему на базе Windows 10 или более новой версии Windows. Желательно выполнять установку на SSD-накопитель (при его наличии), что значительно повысит скорость работы всех модулей.

Не используйте Open Server Panel на USB-флеш-накопителях (быстрый износ и крайне медленная работа) и на внешних носителях информации со старым интерфейсом USB 2.0 (крайне медленная работа).

ℹ️ Внимание! Не запускайте программу с правами администратора, это потенциально небезопасно и не является необходимым условием для работы Open Server Panel. Права администратора будут запрошены только при запуске System Preparation Tool.

Шаг #1

Скачайте дистрибутив и установите его в выбранный каталог (желательно в корень диска). Разрешённые символы в пути до корневого каталога с программой: A-Za-z0-9-+_.\:. По окончанию установки запустите System Preparation Tool и выполните подготовку системы к работе с Open Server Panel.

Шаг #2

Перед началом работы обязательно добавьте каталог с программой в исключения вашего файрвола/антивируса и снимите защиту с файла HOSTS (если ваш файрвол/антивирус имеет такую защитную функцию и она не учитывает каталоги и программы добавленные в исключения).

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

Шаг #3

Запустите программу и убедитесь в том, что в области уведомлений Windows появилась иконка программы. Если программа не запускается, то изучите содержимое файла .\logs\general.log. Чаще всего ошибки запуска программы связаны с невозможностью запустить встроенный веб-сервер:

Address already in use (#10048 in listen: Bind) — адрес уже используется. Ошибка говорит о том, что пара ip:порт уже используется другой службой или программой в вашей системе. Измените настройки ip/порта в конфиге OSPanel, либо в настройках той службы или программы, которая их занимает.

Permission denied (#10013 in listen: Bind) — в разрешении отказано. Программе было запрещено занять требуемую пару ip:порт. Выполните настройку системного файрвола, чтобы разрешить программе доступ к сети.

Шаг #4

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

Если во время установки (распаковки) программы вы пропустили запуск System Preparation Tool, то после запуска программы нажмите на её иконку в области уведомлений и запустите System Preparation Tool путём выбора пункта меню Инструмент подготовки системы, также это можно сделать запустив CLI-интерфейс и выполнив там команду osp sysprep. Выполните подготовку системы и обязательно перезагрузите компьютер. После перезагрузки компьютера программа готова к использованию, вы можете активировать необходимые модули.

ℹ️ Внимание! Без подготовки системы с помощью System Preparation Tool корректная работа Open Server Panel на вашем компьютере будет невозможна!

Шаг #5

Запустите Open Server Panel и откройте интерфейс командной строки. Если после запуска CLI-интерфейса в консоль выводится сообщение The system cannot write to the specified device, то установите в настройках консоли шрифт совместимый с кодировкой UTF-8 (например: Consolas) и заново запустите CLI-интерфейс.

Готово!

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

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

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

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

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

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

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

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

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

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

cacert  <init|show|deinit>  Сгенерировать и установить | показать | удалить корневой сертификат (ЦС)
                            При установке нового все старые корневые сертификаты (ЦС) будут удалены
convert <DOMAIN>            Конвертировать имя домена из/в Punycode
domains                     Показать информацию о доменах
exit                        Завершить работу программы (текущая среда будет сброшена)
log     <MODULE|main>  [N]  Показать журнал модуля/программы (последние N строк, по умолчанию: 10)
modules                     Показать информацию о модулях
sysprep [silent|ssd]        Запустить инструмент подготовки операционной системы
                            Добавьте флаг "silent" для запуска подготовки системы в тихом режиме
                            Флаг "ssd" аналогичен "silent" (но с оптимизацией настроек под SSD)
                            Подготовка в тихом режиме происходит автоматически и без отслеживания
                            прогресса, после окончания процедуры будет выполнена перезагрузка!
                            Для запуска процесса тихой подготовки без запроса подтверждения со
                            стороны Windows консоль должна быть запущена с правами Администратора
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 log main 20             Вывод в консоль 20-ти последних строк из журнала программы
osp reset & osp add perl    Объединение системной среды со средой Perl

Служебные аргументы

Для команд osp add ..., osp project ..., osp reset, osp reset init и osp use ... можно использовать дополнительный аргумент silent, который подавляет вывод всех информационных сообщений кроме предупреждений и сообщений об ошибках.

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

Для команд osp init, osp off, osp on, osp restart, osp status и osp log вместо имени модуля можно использовать аргумент all. Используйте его только если вы точно уверены в том, что вы делаете.

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

Настройки программы и модулей (глобальные опции) задаются в файле .\config\program.ini.

ℹ️ Внимание! Для применения изменений необходимо перезапустить программу.

Секция [main]

Секция содержит основные настройки программы.

Параметр Описание
api_domain Локальный домен API и веб-интерфейса. Если включено использование файла HOSTS, то веб-интерфейс будет доступен в браузере на указанном домене.
Если в браузере используется VPN/прокси, то в настройках VPN/прокси необходимо задать исключение для этого домена.

Значение по умолчанию: ospanel
api_ip IPv4-адрес API и веб-интерфейса. Если в браузере используется VPN/прокси, то в настройках VPN/прокси необходимо задать исключение для этого IP.

Значение по умолчанию: 127.127.127.127
api_port Порт API и веб-интерфейса. Запуск программы будет невозможен если такой порт уже используется.

Значение по умолчанию: 80
clear_dns_cache Очищать системный кэш DNS при изменении файла HOSTS (on/off). Отключайте эту опцию только в том случае, если вы вручную внесли изменения в файл HOST, очистили кэш DNS и больше не планируете вносить изменения в настройки программы и модулей. Также эту опцию можно отключить если вы используете единственный домен — localhost.

Значение по умолчанию: on
hosts_file Использовать файл HOSTS (on/off). Если выключено, то следующие возможности станут недоступны: использование имён модулей в качестве доменов (подключение будет возможным только по IP), использование локальных доменов (только localhost), включая использование локального домена для доступа к панели управления (см. domain).

Значение по умолчанию: on
hosts_file_encoding Кодировка файла HOSTS. Допустимые значения кодировки: UTF8, ANSI, ASCII.

Значение по умолчанию: UTF8
lang Язык программы. В качестве значения используйте имя любого языкового файла из каталога .\system\lang.

Можно использовать значение auto (по умолчанию), в этом случае будет использован системный язык (при наличии такого языкового файла).
log_max_filesize Максимальный размер журнала (0 — отключает ограничение). Опция задаёт ограничения для следующих журналов: программа, api и почтовый сервер. Если размер какого-либо журнала превысит указанный, то файл такого журнала будет автоматически пересоздан.

Допустимо использование следующих обозначений: B — байты, K — килобайты, M — мегабайты, G — гигабайты, T — терабайты. Для принудительной очистки логов при каждом запуске установите значение равным 1 (к цифрам без обозначений применяются B — байты).
smtp_port Порт встроенного почтового сервера (0 — отключает почтовый сервер).

Значение по умолчанию: 25
terminal_ansi_fix Активация поддержки ANSI-кодов управления цветом в консоли (on/off/auto). По умолчанию используется значение auto:

- Фикс применяется только для систем на базе Windows 7, Windows 8, Windows 10 до версии 1903 (включительно) и не применяется для более новых версий Windows, т.к. они уже имеют поддержку ANSI-кодов.
- Фикс не применяется для некоторых продвинутых эмуляторов терминала: Windows Terminal, ConEmu и Cmder.

Секция [menu]

Раздел содержит настройки меню программы. Используйте файл menu.ini для детальной настройки пунктов меню.

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

Значение по умолчанию: off
show_projects Показывать меню управления проектами

Значение по умолчанию: on
show_modules Показывать меню управления модулями

Значение по умолчанию: on
show_modules_in_groups Группировать модули в меню

Значение по умолчанию: on
show_modules_in_submenu Показывать меню модулей в отдельном подменю.

Значение по умолчанию: on
show_projects_in_submenu Показывать меню проектов в отдельном подменю.

Значение по умолчанию: off
show_tray_icon Показывать иконку программы в области уведомлений. Отключите эту опцию в случае, если вы запускаете программу в среде Windows Server Core или планируете использовать тип автозапуска программы который не требует входа пользователя Windows (Планировщик заданий Windows -> Запуск при загрузке компьютера).

Значение по умолчанию: on

Секция [modules]

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

Параметр Описание
allowed_env_vars Список переменных среды Windows (через пробел) передаваемых в среду модуля. Белый список переменных необходим для фильтрации рабочей среды модулей от среды установленного в систему аналогичного ПО.

Вносите изменения в этот список только в том случае, если вы точно знаете что делаете, т.к. это может нарушить нормальную работу модулей.
log_max_filesize Максимальный размер журнала (0 — отключает ограничение). Если размер какого-либо журнала превысит указанный, то при очередном запуске модуля его файл журнала будет пересоздан.

Допустимо использование следующих обозначений: B — байты, K — килобайты, M — мегабайты, G — гигабайты, T — терабайты. Для принудительной очистки логов при каждом запуске установите значение равным 1 (к цифрам без обозначений применяются B — байты).
log_write_title Добавлять заголовок в лог модуля при каждом запуске (on/off). Полезно для визуального разграничения рабочих сессий если не используется автоматическая очистка журнала модуля.
max_probation_fails Максимальное кол-во последовательных (подряд) провалов испытательного срока, после которых модуль перейдёт в состояние "Ошибка" (см. probation).
max_shutdown_time Максимальное время выключения модуля (0 — отключает ограничение). Если рабочий процесс модуля не успел завершить свою работу за указанное время, то по завершению ожидания он будет принудительно остановлен (терминирован). Недопустимо устанавливать значение равным менее 30 сек. (меньшее значение, кроме ноля, не будет использовано программой).

Не следует устанавливать этот лимит если вы точно не знаете что делаете, т.к. преждевременная принудительная остановка рабочего процесса модуля может привести к различным проблемам (порча БД, неполная запись логов и др.).

Допустимо использование следующих обозначений: s — секунды, m — минуты, h — часы, d — дни (к цифрам без обозначений применяются s — секунды).
probation Время проверки работоспособности модуля (испытательный срок). Отсчёт начинается с момента успешного запуска рабочего процесса модуля.

Если в течение испытательного срока рабочий процесс модуля неожиданно завершил свою работу, то он не будет автоматически перезапущен и модуль перейдёт в состояние "Ошибка", ожидая дополнительных действий от пользователя (например исправления файлов конфигурации). Состояние "Ошибка" также будет установлено в том случае, если запускаемый процесс не смог стартовать на системном уровне.

Значение 0 полностью отключает испытательный срок, в случае неожиданного завершения работы процесс будет всегда автоматически перезапускаться, при циклическом сбое — бесконечно. Не рекомендуется устанавливать значение 0 или задавать слишком короткий период проверки (менее 30 сек.).

Допустимо использование следующих обозначений: s — секунды, m — минуты, h — часы, d — дни (к цифрам без обозначений применяются s — секунды).
silent_mode Тихий режим работы (on/off). В этом режиме не отображаются всплывающие (pop-up) сообщения об ошибках, которые генерирует служба Windows Error Reporting или сам модуль. Отключайте этот режим только тогда, когда вам требуется разобраться с проблемами в работе модуля, в остальное время он должен быть постоянно включён.
terminal_codepage Кодировка консоли при работе со средой модуля. Можно использовать значение system, в этом случае будет использоваться системная кодировка.

Если задать пустое значение или не задавать его вовсе, то кодировка в консоли при активации среды модуля или его SHELL оболочки изменяться не будет (используется текущая активная кодировка).
time_zone Часовой пояс (временная зона). В качестве значения этого параметра необходимо указать часовой пояс в формате Etc/GMT (например: Etc/GMT-3). Можно использовать значение system, в этом случае будет использоваться системный часовой пояс.

Внимание! Формат Etc/GMT отличается от UTC обратным порядком, например: Etc/GMT-3 = UTC/GMT+3 = UTC+03:00 = Europe/Moscow.

Секция [environment]

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

Для любого модуля эти переменные можно переопределить/удалить в файле его настроек .\config\<имя_модуля>\<имя_профиля>\settings.ini.

Для удаления переменной из среды задайте пустое значение или используйте специальный фильтр (см. allowed_env_vars).

Доступны следующие шаблонные переменные:

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

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

Значения секции заданные "по умолчанию":

[environment]

CURL_CA_BUNDLE = {root_dir}\data\ssl\cacert.pem
HOMEDRIVE      = {root_drive}
HOMEPATH       = {root_path}\user
PATH           = {root_dir}\bin;%SYSTEMROOT%\system32;%SYSTEMROOT%;%SYSTEMROOT%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0
TEMP           = {root_dir}\temp
TMP            = {root_dir}\temp

Настройка доменов

Домены и их настройки задаются в файле .\config\domains.ini. Для создания домена дополните этот файл новой секцией с именем домена и его настройками. Для применения изменений необходимо перезапустить программу или модуль PHP, который вы указали в настройках домена, а также, при необходимости, очистить кэш DNS в браузере.

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

Секция содержит основные настройки проекта, все параметры этой секции являются необязательными. Интернационализованные доменные имена необходимо указывать исключительно в Punycode формате. В качестве имени домена запрещено указывать IP-адрес, а если вам требуется прямой доступ к домену по IP, то IP-адрес можно указать в качестве псевдонима (см. aliases).

Параметр Описание
aliases Псевдонимы (алиасы) домена (через пробел). Если псевдоним не содержит точку ., то он считается поддоменом и будет дополнен именем домена, например: www->www.test.local. В качестве псевдонима можно указывать и другие домены, например когда требуется использовать старый домен после переезда сайта на новый.

Значение по умолчанию: www
auto_configure Включение/выключение автоматической конфигурации домена. Если выключено, то конфигурация этого домена для сервера Apache не будет создаваться автоматически, вам необходимо самостоятельно добавить виртуальный хост в шаблон конфигурации Apache. Необходимые записи в файл HOSTS вносятся всегда, независимо от значения этой опции.

Значение по умолчанию: on
enabled Включение/выключение использования домена

Значение по умолчанию: on
engine Модуль PHP. Указанный движок будет использоваться для обработки всех PHP-файлов этого домена. Если модуль PHP не указан или не существует (не установлен), то такой домен игнорируется.

Значение по умолчанию: (пусто)
ip IP-адрес домена. Можно задавать несколько IP (через пробел) и IP в формате IPv6. Если вы указываете несколько IP-адресов, то при обновлении файла HOSTS домену будет назначен первый указанный IP.

Можно использовать значение auto, в этом случае будет использован IP-адрес из основных настроек модуля PHP, который назначен для этого домена.

Значение по умолчанию: auto
log_format Формат журналирования

Значение по умолчанию: combined
cgi_dir Каталог для CGI и Perl скриптов. Можно использовать шаблонные переменные.

Значение по умолчанию: {root_dir}\home\{host}\cgi-bin
public_dir Публичный каталог домена. Можно использовать шаблонные переменные.

Значение по умолчанию: {root_dir}\home\{host}\public_html
ssl Включение/выключение использования SSL. Если SSL выключен, то работа с доменом по протоколу HTTPS будет невозможна.

Значение по умолчанию: auto
ssl_auto_cert Автоматическая генерация и использование файлов SSL-сертификата. Значение опции всегда off если она не включена в настройках модуля, который назначен домену в качестве движка (см. engine). В сертификат прописываются сам домен, всего его псевдонимы и IP-адреса. Если в процессе установки Open Server Panel вы пропустили импорт ROOT-сертификата или если ROOT-сертификат был утерян (удалён), то выполните в консоли Open Server Panel команду osp cacert init.

Если ваш браузер не использует хранилище сертификатов Windows (например браузер Firefox), то вам необходимо самостоятельно импортировать в браузер (для Firefox: Настройки->Сертификаты->Просмотр сертификатов…->Вкладка "Центры сертификации"->Импортировать…) корневой сертификат программы: data\ssl\root\cert.crt. Не забывайте делать аналогичный импорт после каждого пересоздания корневого сертификата командой osp cacert init.

Значение по умолчанию: on
ssl_cert_file Файл сертификата. Можно использовать шаблонные переменные.

Значение по умолчанию если опция ssl_auto_cert включена: {root_dir}\data\ssl\domains\{host}\cert.crt

Значение по умолчанию если опция ssl_auto_cert выключена: {root_dir}\user\ssl\default\cert.crt
ssl_key_file Файл ключа. Можно использовать шаблонные переменные.

Значение по умолчанию если опция ssl_auto_cert включена: {root_dir}\data\ssl\domains\{host}\cert.key

Значение по умолчанию если опция ssl_auto_cert выключена: {root_dir}\user\ssl\default\cert.key
project_add_commands Дополнительный набор команд, выполняемый при активации среды проекта. Обычно эта опция не задаётся (пусто) или равна cd .. (для уточнения рабочего каталога проекта). Кодировка "по умолчанию" во время выполнения команд = 65001 (UTF-8), её можно изменить командой chcp <КОДИРОВКА>.

Важно! Для вызова подпрограмм обязательно используйте call!

Пример НЕправильной команды: cd .. & {root_dir}\home\{host}\test.bat
Пример правильной команды: cd .. & call {root_dir}\home\{host}\test.bat

Значение по умолчанию: (пусто)
project_add_modules Перечисление дополнительных модулей, которые используются проектом (через пробел). Эти модули присоединяются к среде проекта при её активации по команде osp project <DOMAIN>.

Значение по умолчанию: (пусто)
project_home_dir Корневой каталог проекта. Если параметр не задан, то используется значение опции public_dir.

Значение по умолчанию: (пусто)
project_use_sys_env Включение/выключение использования среды Windows для проекта.

Значение по умолчанию: off
terminal_codepage Кодировка консоли при работе со средой проекта (например 65001 или 1251). Если параметр не задан, то будет использована кодировка заданная для среды модуля PHP или, если для проекта указаны дополнительные модули, последнего активированного модуля из списка project_modules. Если кодировка указана, то она активируется ПОСЛЕ выполнения всех служебных команд, включая project_command.

Значение по умолчанию: (пусто)

Доступны следующие шаблонные переменные:

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

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

C помощью меню программы можно выполнять часть базовых настроек (выбор версии PHP, выбор профиля и др.) и команд (перезапуск модулей, запуск shell и др.).

ℹ️ Внимание! Вместе с изменением текущей версии PHP у домена или текущего профиля настроек у модуля с помощью меню происходит автоматическая инициализация или перезапуск затронутых модулей! Учитывайте это, если в момент изменения настроек на сервере выполняется какая-либо длительная операция.

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

Секция [имя_пункта_меню]

Секция содержит основные настройки пункта меню, все параметры этой секции являются необязательными. В имени секции можно использовать языковые константы, например: {lang_xxx}, и указывать путь с уровнем вложенности не более двух, например: Мои Закладки\Работа\имя_пункта_меню. Если в имени секции не указан путь, то новый пункт будет создан в корне меню.

Также в имени секции вы можете использовать специальные значения: domains, modules, domains\имя_домена или modules\имя_модуля. В первом случае новый пункт будет добавлен в меню действий над доменами или модулями, а во втором туда же, но только для определённого домена или модуля.

Параметр Описание
command Комнда, которая будет выполнена при выборе этого пункта меню.

Если команда не задана, то пункт меню будет проигнорирован.

Значение по умолчанию: (пусто)
enabled Отображать пункт меню или нет.

Значение по умолчанию: on
hide Скрыть окно вызываемого приложения.

Опция влияет только на вызываемую подпрограмму и никак не влияет на новые процессы создаваемые вызванной подпрограммой.

Опция не работает когда значение для command не задано или является веб-ссылкой.

Значение по умолчанию: off
hr_after Горизонтальный разделитель под пунктом меню.

Значение по умолчанию: off
hr_before Горизонтальный разделитель перед пунктом меню.

Значение по умолчанию: off
need_active_state Показывать пункт меню только когда модуль, обозначенный в родительском пункте меню или используемый как движок домена, находится в активном состоянии, т.е. включен. Эта опция работает только когда имя секции начинается с domains, modules, domains\имя_домена или modules\имя_модуля.

Значение по умолчанию: off
need_active_type Показывать пункт меню для модулей только активного типа (с возможностью запуска).

Значение по умолчанию: off
need_inactive_state Показывать пункт меню только когда модуль, обозначенный в родительском пункте меню или используемый как движок домена, находится в неактивном состоянии, т.е. выключен. Эта опция работает только когда имя секции начинается с domains, modules, domains\имя_домена или modules\имя_модуля.

Значение по умолчанию: off
need_module_class Показывать пункт меню только для тех модулей, которые соответствуют указанному классу. Эта опция работает только когда имя секции начинается с modules или modules\имя_модуля.

Значение по умолчанию: (пусто)
need_module_category Показывать пункт меню только для тех модулей, которые соответствуют указанной категории. Эта опция работает только когда имя секции начинается с modules или modules\имя_модуля.

Значение по умолчанию: (пусто)
need_module_shell Показывать пункт меню только когда модуль, обозначенный в родительском пункте меню или используемый как движок домена, имеет возможность запуска своей shell/cli оболочки. Эта опция работает только когда имя секции начинается с modules или modules\имя_модуля.

Значение по умолчанию: off
work_directory Рабочий каталог, в котором будет выполняться команда (см. command).

Внимание! Во время выполнения некоторых команд (например osp project ...) текущий каталог может меняться и не совпадать со стартовым рабочим каталогом, который указан в work_directory.

Значение по умолчанию: {root_dir}

Для параметров command и work_directory доступны следующие шаблонные переменные:

Переменная Описание
{root_dir} Корневой каталог программы (полный путь)
{root_drive} Диск корневого каталога
{root_path} Путь к корневому каталогу программы
{web_panel_url} URL-адрес веб-интерфейса
{default_browser} Путь к исполняемому файлу "браузера по умолчанию" (если он задан в настройках системы)
Особые переменные Доступны только когда имя секции начинается с domains или domains\имя_домена
{cgi_dir} Каталог домена для CGI и Perl скриптов
{engine} PHP модуль домена
{host} Имя домена (для интернационализованных доменов формат Punycode используется)
{host_decoded} Видимое имя домена (для интернационализованных доменов формат Punycode не используется)
{project_home_dir} Корневой каталог проекта
{public_dir} Публичный каталог домена
Особые переменные Доступны только когда имя секции начинается с modules или modules\имя_модуля
{module_name} Имя модуля
{profile_name} Имя текущего профиля настроек модуля

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

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

[domains\Открыть в PHPStrom]

command              = "%COMSPEC%" /c "osp project {host} & start "" "C:\Program Files\JetBrains\PhpStorm 2018.2\bin\phpstorm64.exe" "{project_home_dir}""
hide                 = on

[Мои Закладки\Поисковые системы\Google]

command              = "{default_browser}" https://google.com

Опции: /c — выполнение команды с завершением работы терминала, /k — выполнение команды с продолжением работы терминала.

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

Настройки любого из модулей в Open Server Panel задаются в файле .\config\<имя_модуля>\<имя_профиля>\settings.ini. По умолчанию используется профиль Default. Имя рабочего профиля задаётся через панель управления программой.

Резервная копия оригинальных настроек и оригинальных файлов конфигурации модуля хранится в каталоге .\modules\<имя_модуля>\ospanel_data\default и в будущем будет использоваться в панели управления для функции восстановления оригинальной конфигурации.

Вы можете самостоятельно создавать дополнительные профили настроек модулей. Для создания нового профиля, например MyProfile, достаточно создать копию любого существующего профиля у выбранного модуля, например скопировав каталог оригинального профиля .\config\<имя_модуля>\Default в .\config\<имя_модуля>\MyProfile. Если модуль работает с данными в каталоге .\data, то вам понадобится создать каталог с данными для нового профиля, например скопировав каталог оригинального профиля .\data\<имя_модуля>\Default в .\data\<имя_модуля>\MyProfile. Вместо копирования существующего профиля вы также можете использовать оригинальное хранилище настроек и данных модуля (.\modules\<имя_модуля>\ospanel_data\default и .\modules\<имя_модуля>\ospanel_data\default_data соответственно).

Допустимые символы в имени профиля: A-Za-z0-9-+_.. Использование дополнительных профилей может быть полезно в ряде случаев, например, когда вам необходимо протестировать новую конфигурацию модуля или вы просто хотите поэкспериментировать.

ℹ️ Внимание! Для применения изменений модуль необходимо перезапустить/переинициализировать.

⚠️ Предупреждение! Не редактируйте файл базовых настроек модуля .\config\<имя_модуля>\module.ini. Процесс работы с ним полностью автоматизирован и не требует вмешательства пользователя.

Секция [main]

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

Параметр Описание
ip IP-адрес модуля. Можно задавать несколько IP (через пробел) и IP в формате IPv6 в случаях когда модуль это поддерживает. Если вы указываете несколько IP-адресов, то при обновлении файла HOSTS в качестве IP для имени модуля будет использован первый указанный IP. Настройка IP игнорируется для модулей DNS.
port Порт модуля. Настройка порта игнорируется для модулей классов Web Server и 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-сертификата. Значение опции всегда off если для модуля не задан IP-адрес. В сертификат прописываются домен и IP-адрес(а) модуля.

Если ваш браузер не использует хранилище сертификатов Windows (например браузер Firefox), то вам необходимо самостоятельно импортировать в браузер (для Firefox: Настройки->Сертификаты->Просмотр сертификатов…->Вкладка "Центры сертификации"->Импортировать…) корневой сертификат программы: data\ssl\root\cert.crt. Не забывайте делать аналогичный импорт после каждого пересоздания корневого сертификата командой osp cacert init.

Важно! В случае отключения этой опции вам понадобится самостоятельно перенастроить конфиги модуля (отключить SSL или указать свои ключи и сертификаты), иначе модуль может перестать запускаться или корректно работать.
start_command Команда запуска модуля. Можно использовать шаблонные переменные.
start_directory Каталог запуска модуля (каталог должен существовать). Можно использовать шаблонные переменные.
work_directories Каталоги необходимые для работы модуля (через пробел). Если каталог не существует, то он будет создан в процессе запуска модуля. Можно использовать шаблонные переменные.
allowed_env_vars Список переменных среды Windows (через пробел) передаваемых в среду модуля. Белый список переменных необходим для фильтрации рабочей среды модулей от среды установленного в систему аналогичного ПО.

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

Можно использовать значение auto, в этом случае будет использовано глобальное значение из основных настроек программы.
log_max_filesize Максимальный размер журнала (0 — отключает ограничение). Если размер какого-либо журнала превысит указанный, то при очередном запуске модуля его файл журнала будет пересоздан.

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

Допустимо использование следующих обозначений: B — байты, K — килобайты, M — мегабайты, G — гигабайты, T — терабайты. Для принудительной очистки логов при каждом запуске установите значение равным 1 (к цифрам без обозначений применяются B — байты).
log_write_title Добавлять заголовок в лог модуля при каждом запуске (on/off). Полезно для визуального разграничения рабочих сессий если не используется автоматическая очистка журнала модуля.

Можно использовать значение auto, в этом случае будет использовано глобальное значение из основных настроек программы.
max_probation_fails Максимальное кол-во последовательных (подряд) провалов испытательного срока, после которых модуль перейдёт в состояние "Ошибка" (см. probation).

Можно использовать значение auto, в этом случае будет использовано глобальное значение из основных настроек программы.
max_shutdown_time Максимальное время выключения модуля (0 — отключает ограничение). Если рабочий процесс модуля не успел завершить свою работу за указанное время, то по завершению ожидания он будет принудительно остановлен (терминирован). Недопустимо устанавливать значение равным менее 30 сек. (меньшее значение, кроме ноля, не будет использовано программой).

Не следует устанавливать этот лимит если вы точно не знаете что делаете, т.к. преждевременная принудительная остановка рабочего процесса модуля может привести к различным проблемам (порча БД, неполная запись логов и др.).

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

Допустимо использование следующих обозначений: s — секунды, m — минуты, h — часы, d — дни (к цифрам без обозначений применяются s — секунды).
probation Время проверки работоспособности модуля (испытательный срок). Отсчёт начинается с момента успешного запуска рабочего процесса модуля.

Если в течение испытательного срока рабочий процесс модуля неожиданно завершил свою работу, то он не будет автоматически перезапущен и модуль перейдёт в состояние "Ошибка", ожидая дополнительных действий от пользователя (например исправления файлов конфигурации). Состояние "Ошибка" также будет установлено в том случае, если запускаемый процесс не смог стартовать на системном уровне.

Значение 0 полностью отключает испытательный срок, в случае неожиданного завершения работы процесс будет всегда автоматически перезапускаться, при циклическом сбое — бесконечно. Не рекомендуется устанавливать значение 0 или задавать слишком короткий период проверки (менее 30 сек.).

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

Допустимо использование следующих обозначений: s — секунды, m — минуты, h — часы, d — дни (к цифрам без обозначений применяются s — секунды).
silent_mode Тихий режим работы (on/off). В этом режиме не отображаются всплывающие (pop-up) сообщения об ошибках, которые генерирует служба Windows Error Reporting или сам модуль. Отключайте этот режим только тогда, когда вам требуется разобраться с проблемами в работе модуля, в остальное время он должен быть постоянно включён.

Можно использовать значение auto, в этом случае будет использовано глобальное значение из основных настроек программы.
terminal_codepage Кодировка консоли при работе со средой модуля. Можно использовать специальные значения system (системная кодировка) или auto (глобальное значение из основных настроек программы).

Если задать пустое значение или не задавать его вовсе, то кодировка в консоли при активации среды модуля или его SHELL оболочки изменяться не будет (используется текущая активная кодировка).
time_zone Часовой пояс (временная зона). В качестве значения этого параметра необходимо указать часовой пояс в формате Etc/GMT (например: Etc/GMT-3). Можно использовать специальные значения system (системный часовой пояс) или auto (глобальное значение из основных настроек программы).

Внимание! Формат Etc/GMT отличается от UTC обратным порядком, например: Etc/GMT-3 = UTC/GMT+3 = UTC+03:00 = Europe/Moscow.

Доступны следующие шаблонные переменные:

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

Для параметров cmd и shell секции [main] доступны также следующие шаблонные переменные (если одноимённые параметры заданы в этой же секции):

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

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

Секция [environment]

Секция служит для задания/переопределения переменных среды модуля (поддерживаемые переменные зависят от модуля). Для удаления переменной из среды задайте пустое значение.

Доступны следующие шаблонные переменные:

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

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

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

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

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

Секции этого типа описывают работу с шаблонами файлов конфигурации и с шаблонами других служебных файлов модуля (кол-во секций не ограничено). Шаблоны находятся в каталоге .\config\<имя_модуля>\<имя_профиля>\templates. В процессе инициализации модуля шаблоны, описанные в таких секциях, преобразуются во временные рабочие файлы, которые необходимы для работы модуля.

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

Доступны следующие шаблонные переменные:

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

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

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

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

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

По умолчанию никакие модули не включены. Перед началом работы с Open Server Panel убедитесь в том, что вы включили нужные вам модули.

Все модули настроены на использование только локальных IP-адресов (кроме Bind и Unbound), стандартных для них портов и стандартных логинов, пароли или какие-либо ограничения по умолчанию не используются. Вы всегда можете самостоятельно изменить эти настройки по своему усмотрению.

ℹ️ Внимание! Запуск модулей PostgreSQL при отключённом контроле учётных записей (UAC) или с правами Администратора невозможен!

⚠️ Предупреждение! Не запускайте Open Server Panel на публичных IP без дополнительной защиты и предварительной тщательной настройки, это крайне опасно и может привести к несанкционированному доступу к вашему компьютеру, вплоть до полного контроля над системой и потери всех файлов.

Обязательно задайте надёжные пароли для всех пользователей (если модуль имеет такую возможность) и выполните настройку прав удалённого доступа до того, как вы запустите какой-либо модуль на публичном IP (если планируете).

Типы модулей

В составе Open Server Panel имеются активные (запускаемые) и пассивные (не подлежащие запуску) модули. Пассивные модули (Perl) используются в качестве дополнений для активных модулей или для рабочей среды в консоли.

Любые модули могут включаться параллельно и никак не мешают работе друг друга. Каждый модуль имеет собственную, изолированную от Windows, среду и не конфликтует с другим подобным ПО в вашей системе. Параллельно могут быть включены даже однотипные модули, например: MySQL-5.5 и MySQL-8.0.

Инициализация

При запуске программы выполняется инициализация всех доступных модулей, в процессе которой происходит чтение и проверка их конфигурации, создание временных файлов и запись данных в файл HOSTS. Таким образом, вы всегда можете использовать консольные утилиты и команды модуля независимо от того, включён он сейчас или нет, но не стоит забывать о том, что часть утилит и команд может не работать когда модуль выключен. Это может пригодиться при необходимости починить базы данных, обновить хранилище данных до запуска модуля, проверить временный файл конфигурации на корректность, а также во многих других ситуациях.

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

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

Подключение

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

Подключение к MySQL-5.7

Хост: MySQL-5.7 (имя хоста можно использовать в любом регистре, например: mysql-5.7 или mysql-5.7.local)
Порт: 3306
Пользователь: root
Пароль: (пустой)

Подключение к PostgreSQL-12

Хост: PostgreSQL-12
Порт: 5432
Пользователь: postgres
Пароль: (пустой)

Подключение к MongoDB-4.4

Хост: MongoDB-4.4
Порт: 27017
Пользователь: (пусто)
Пароль: (пусто)

Подключение к Redis-5.0

Хост: Redis-5.0
Порт: 6379

и так далее...

Для тех скриптов и ПО, которые проверяют корректность доменного имени, в качестве адреса подключения можно использовать доменную зону .local, например: MySQL-5.7.local.

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

Для всех модулей в составе Open Server Panel выполнена предварительная настройка переменных среды, а также реализована возможность быстрого запуска shell/cli оболочки, если таковая имеется. Чтобы запустить shell/cli оболочку какого-либо модуля (при наличии) не обязательно активировать или присоединять его среду, достаточно использовать команду osp shell ....

Для переключения между веб-проектами в консоли достаточно использовать команду osp project ..., которая сразу активирует среду проекта (PHP-модуль домена + модули указанные в переменной project_add_modules) и выполняет переход в его корневой каталог.

Модули PHP являются комбинированными, они объединяют в себе Apache и PHP, а также используют среду модуля Perl, поэтому при активации среды любого модуля PHP вам также будут доступны утилиты Apache и Perl.

В процессе работы с консолью текущая среда всегда отображается в заголовке окна (или в названии вкладки), например: PHP-8.0 + MySQL-5.7 | Open Server Panel. Модули разного типа можно легко объединять в одну общую среду командой osp add .... При объединении сред модулей и совпадении имён переменных в такой объединённой среде финальным становится значение переменной того модуля, который подключён последним (кроме переменной PATH, значения которой объединяются).

Пример включения нескольких модулей:

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

Пример комбинации сред этих модулей без изоляции от Windows (нерекомендуемый способ):

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

Пример комбинации сред этих модулей с полной изоляцией от Windows (рекомендуемый способ):

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

Вы получите примерно такой вывод в консоль:

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

Текущая среда позволит вам одновременно работать с PHP-7.4, Apache-2.4 и Perl (поскольку PHP — это комбинированный модуль), а также с MySQL-5.7 и Redis-7.0, например:

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

Работа c Composer

Composer установлен и доступен "из коробки", какая-либо настройка не требуется. Для работы с Composer в консоли достаточно активировать среду любого модуля PHP. Стоит учитывать, что каждый модуль PHP имеет свою собственную версию Composer и отдельный домашний каталог для Composer.

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

В шаблоне php.ini PHP 7.4 .\config\PHP-7.4\default\templates\php.ini раскомментируем расширение zephir_parser и сохраняем изменения. Далее все действия выполняются в консоли (Меню->Интерфейс командной строки).

osp restart php-7.4
osp use php-7.4
cd %COMPOSER_HOME%
composer require phalcon/zephir
zephir help

Как создавать модули

Перед тем, как создать свой первый модуль, давайте разберёмся с его предполагаемой структурой. Минимальная файловая структура любого модуля выглядит так:

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

Теперь вы можете создать свой собственный модуль используя приведённый выше пример структуры каталогов.

Языковые файлы могут размещаться в каталоге .\modules\<имя_нового_модуля>\ospanel_data\lang и должны содержать только константы модуля в секции [main]. Если ваш модуль будет включать в себя языковые файлы, то обязательно используйте уникальный префикс в имени всех констант внутри таких файлов, например: mymod_....

Файл настроек settings.ini необходимо создать в каталоге .\modules\<имя_нового_модуля>\ospanel_data\default, а шаблоны файлов конфигурации необходимо разместить в каталоге .\modules\<имя_нового_модуля>\ospanel_data\default\templates. Начальные данные, если таковые имеются (например базы данных), разместите в каталоге .\modules\<имя_нового_модуля>\ospanel_data\default_data.

⚠️ Предупреждение! Никогда не используйте каталоги .\modules\<имя_нового_модуля>\ospanel_data\default и .\modules\<имя_нового_модуля>\ospanel_data\default_data для повседневной работы, т.к. это не будет иметь никакого эффекта. Данные каталоги являются хранилищем оригинального профиля и больше никак программой не используются. В будущем они будут использоваться для восстановления оригинального профиля при сбросе настроек модуля.

Также вам необходимо создать и заполнить описательный файл модуля .\modules\<имя_нового_модуля>\ospanel_data\module.dat. Формат файла аналогичен формату .ini-файлов, в нём вам необходимо создать секцию [main] со следующими параметрами:

Переменная Описание
architecture Архитектура модуля: x64 или x86
category Категория модуля (можно использовать категории других модулей или придумать свою)
class Класс модуля (можно использовать классы других модулей или придумать свой)
ipv6_support Поддержка IPv6: yes или no
ip_separator Знак разделителя IP-адресов в конфигах модуля (если поддерживается указание нескольких IP)
license Ссылка на лицензию модуля
license_type Обозначение лицензии модуля
min_windows_ver Минимальная версия Windows поддерживаемая модулем (см. список версий ниже)
timestamp Временная метка даты/времени релиза этой версии модуля
version Версия модуля

При заполнении значения переменной min_windows_ver руководствуйтесь следующей таблицей:

Номер версии Привычное обозначение
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

Когда всё будет готово, создайте каталог .\config\<имя_нового_модуля>\default и скопируйте туда содержимое каталога .\modules\<имя_нового_модуля>\ospanel_data\default. Если у вашего модуля имеются начальные данные, то создайте каталог .\data\<имя_нового_модуля>\default и скопируйте туда содержимое каталога .\modules\<имя_нового_модуля>\ospanel_data\default_data. Теперь вы можете перезапустить программу для того, чтобы она увидела созданный вами модуль.

Сторонние расширения

Мы добавили в дистрибутив 117 расширений PHP и 14 расширений Apache от сторонних разработчиков. Все эти расширения по умолчанию выключены, чтобы активировать расширение достаточно его раскомментировать в шаблоне конфигурации PHP и перезапустить PHP-модуль.

PHPINFO: PHP 7.1 | 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

⚠️ Предупреждение! Не изменяйте порядок подключения расширений в шаблоне конфигурации PHP. Расширения подключаются в порядке зависимости друг от друга и могут не работать в случае изменения очерёдности их активации.

Расширение Зависимость Несовместимость
blackfire 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
libevent sockets
mailparse mbstring
memcached igbinare
oauth curl
opcache blackfire
При активации xdebug или pcov отключается Jit компиляция
opencensus blackfire, pcov, xdebug, xhprof
pcov blackfire, 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, opencensus, pcov, xhprof
xhprof blackfire, opencensus, pcov, xdebug
yac Одновременная активация в нескольких модулях PHP недопустима!
yar curl

Расширения Apache

Расширение Apache
2.4.41/VC14
(PHP 7.1.33)
Apache
2.4.54/VC15
(PHP 7.2.34)
Apache
2.4.54/VC15
(PHP 7.3.33)
Apache
2.4.54/VC15
(PHP 7.4.33)
Apache
2.4.58/VS17
(PHP 8.0.30)
Apache
2.4.58/VS17
(PHP 8.1.27)
Apache
2.4.58/VS17
(PHP 8.2.14)
Apache
2.4.58/VS17
(PHP 8.3.1)
mod_antiloris 0.6.0 0.6.0 0.6.0 0.6.0 0.6.0 0.6.0 0.6.0 0.6.0
mod_apreq2 2.15 2.16 2.16 2.16 2.16 2.16 2.16 2.16
mod_authn_ntlm 1.0.8 1.0.8 1.0.8 1.0.8 1.0.8 1.0.8 1.0.8 1.0.8
mod_fcgid 2.3.9 2.3.10 2.3.10 2.3.10 2.3.10 2.3.10 2.3.10 2.3.10
mod_jk 1.2.42 1.2.46 1.2.46 1.2.46 1.2.48 1.2.48 1.2.48 1.2.48
mod_limitipconn 0.24 0.24 0.24 0.24 0.24 0.24 0.24 0.24
mod_log_dbd 1.0.6 1.0.6 1.0.6 1.0.6 1.0.6 1.0.6 1.0.6 1.0.6
mod_log_rotate 1.00a 1.00a 1.00a 1.00a 1.0.2 1.0.2 1.0.2 1.0.2
mod_maxminddb 1.1.0 1.1.0 1.1.0 1.2.0 1.2.0 1.2.0 1.2.0
mod_perl 2.0.11 2.0.12 2.0.12 2.0.12 2.0.12 2.0.12 2.0.12 2.0.12
mod_vhost_dbd 1.0.6 1.0.6 1.0.6 1.0.6 1.0.6 1.0.6 1.0.6 1.0.6
mod_view 2.2 2.2 2.2 2.2 2.2 2.2 2.2 2.2
mod_watch 4.3P 4.3P 4.3P 4.3P 4.3P 4.3P 4.3P 4.3P
mod_xsendfile 1.0-P1 1.0-P1 1.0-P1 1.0-P1 1.0-P1 1.0-P1 1.0-P1 1.0-P1
Clone this wiki locally