Документация
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.
Скачайте дистрибутив и установите его в выбранный каталог (желательно в корень диска). Разрешённые символы в пути до корневого каталога с программой: A-Za-z0-9-+_.\:
. По окончанию установки запустите System Preparation Tool и выполните подготовку системы к работе с Open Server Panel.
Перед началом работы обязательно добавьте каталог с программой в исключения вашего файрвола/антивируса и снимите защиту с файла HOSTS (если ваш файрвол/антивирус имеет такую защитную функцию и она не учитывает каталоги и программы добавленные в исключения).
Если файрвол/антивирус не будет правильно настроен, то из-за непрерывного сканирования файлов, к которым обращаются работающие модули, Open Server Panel будет работать заметно медленнее. На устаревших и слабых компьютерах с HDD-дисками вместо SSD падение производительности в результате излишней активности антивирусной программы может полностью парализовать нормальную работу программного комплекса.
Запустите программу и убедитесь в том, что в области уведомлений Windows появилась иконка программы. Если программа не запускается, то изучите содержимое файла .\logs\general.log
. Чаще всего ошибки запуска программы связаны с невозможностью запустить встроенный веб-сервер:
Address already in use (#10048 in listen: Bind)
— адрес уже используется. Ошибка говорит о том, что пара ip:порт уже используется другой службой или программой в вашей системе. Измените настройки ip/порта в конфиге OSPanel, либо в настройках той службы или программы, которая их занимает.
Permission denied (#10013 in listen: Bind)
— в разрешении отказано. Программе было запрещено занять требуемую пару ip:порт. Выполните настройку системного файрвола, чтобы разрешить программе доступ к сети.
Если во время установки (распаковки) программы вы пропустили создание корневого CA-сертификата, то после запуска программы нажмите на её иконку в области уведомлений, запустите CLI-интерфейс и выполните там команду osp cacert init
.
Если во время установки (распаковки) программы вы пропустили запуск System Preparation Tool, то после запуска программы нажмите на её иконку в области уведомлений и запустите System Preparation Tool путём выбора пункта меню Инструмент подготовки системы
, также это можно сделать запустив CLI-интерфейс и выполнив там команду osp sysprep
. Выполните подготовку системы и обязательно перезагрузите компьютер. После перезагрузки компьютера программа готова к использованию, вы можете активировать необходимые модули.
ℹ️ Внимание! Без подготовки системы с помощью System Preparation Tool корректная работа Open Server Panel на вашем компьютере будет невозможна!
Запустите 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 (ключи, сертификаты и др.)
Использование: 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
.
ℹ️ Внимание! Для применения изменений необходимо перезапустить программу.
Секция содержит основные настройки программы.
Параметр | Описание |
---|---|
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.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
|
Секция содержит глобальные настройки модулей. Они используются в том случае, если в настройках модуля указано значение 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 . |
Секция содержит глобальные переменные среды модулей.
Для любого модуля эти переменные можно переопределить/удалить в файле его настроек .\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
. Процесс работы с ним полностью автоматизирован и не требует вмешательства пользователя.
Секция содержит основные настройки модуля, все параметры этой секции являются необязательными.
Параметр | Описание |
---|---|
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%
и т.д.
Секция служит для задания/переопределения переменных среды модуля (поддерживаемые переменные зависят от модуля). Для удаления переменной из среды задайте пустое значение.
Доступны следующие шаблонные переменные:
Переменная | Описание |
---|---|
{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) или с правами Администратора невозможен!
Обязательно задайте надёжные пароли для всех пользователей (если модуль имеет такую возможность) и выполните настройку прав удалённого доступа до того, как вы запустите какой-либо модуль на публичном 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-->|" Провал "| C(Статус<br>'Ошибка');
B-->|" Успех "| D(Определение типа модуля);
D-->|" Пассивный модуль "| E(Статус<br>'Инициализирован');
D-->|" Активный модуль "| F(Статус<br>'Выключен');
F-->|" Если включён "| G(Запуск);
G-->|" Провал "| C;
G-->|" Успех "| H(Статус<br>'Включён');
H-->|" Если процесс умер во <br> время испытательного срока "| C;
H-->|" Если процесс умер "| 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
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.
Расширение | Зависимость | Несовместимость |
---|---|---|
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 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 |