Поскольку сегодня вечером выложу ядро для тестов, то сейчас заранее публикую пояснения по настройкам.
Кому интересно можете сейчас заранее изучить, спрашивайте если что-то не понято или предлагайте, всем отвечу.
Настройки программы
; Пояснения к файлу настроек
; Секция основных настроек программы
[main]
; Язык программы (пока есть только русский)
lang=Russian
; Очищать логи при каждом запуске программы или модулей (1 включено, 0 выключено)
log_clear_on_start=0
; Использовать формат ISO8601 для записи даты/времени (1 включено, 0 выключено)
log_use_iso8601_datetime=0
; Записывать основной лог программы в реальном времени (1 включено, 0 выключено).
; Если выключено (рекомендуется), то данные пакетно сбрасываются в лог ежесекундно (при наличии данных).
log_write_in_real_time=0
; Максимальный размер любого лог-файла (в мегабайтах, 0 - отключает проверку).
log_max_filesize=5
; Вставлять заголовок (время запуска и название модуля) в консольный лог модуля при запуске (1 включено, 0 выключено).
; Полезно для наглядного разделения разных сеансов запуска (рабочих сессий) одно и того же модуля.
log_write_session_title=1
; Показывать доп. информацию в логах, пока показывает только время затраченное на запуск/остановку модулей (1 включено, 0 выключено)
log_show_ext_info=0
; Использовать HOSTS файл (1 включено, 0 выключено)
use_hosts_file=1
; Кодировка HOSTS файла (UTF8, ANSI, ASCII)
hosts_file_encoding=UTF8
; Исправлять системные записи "по умолчанию" для localhost (1 включено, 0 выключено).
; Добавляет в HOSTS файл записи "127.0.0.1 localhost" и "::1 localhost".
hosts_fix_localhost_record=1
; Очищать системный кеш DNS при изменении HOSTS файла (1 включено, 0 выключено)
clear_dns_cache_on_hosts_update=1
; Минимальное время рабочей сессии для возможности автоматического перезапуска модуля в случае падения (в секундах, 0 - отключает проверку).
; Не рекомендуется отключать эту проверку, т.к. её отсутствие может спровоцировать бесконтрольный циклический перезапуск модуля (если пользователь не следит за сервером).
min_age_for_autorestart=30
; Максимальное время на процедуру запуска/остановки модуля (в секундах).
; Если процедура запуска/остановки модуля длится дольше этого времени, то процесс модуля и его потомки будут принудительно остановлены (убиты).
max_start_stop_time=30
; Выдавать предупреждение, если кол-во свободной оперативной памяти меньше указанного значения (в мегабайтах, 0 - отключает проверку).
; Пока эта проверка выполняется только при запуске программы.
free_memory_alert=512
; Выдавать предупреждение, если кол-во свободного места на диске меньше указанного значения (в мегабайтах, 0 - отключает проверку).
; Пока эта проверка выполняется только при запуске программы.
free_diskspace_alert=2048
; Проверять доступность порта перед запуском модуля (1 включено, 0 выключено)
use_port_checking=1
; Использовать виртуальный диск (1 включено, 0 выключено)
use_virtual_drive=1
; Буква виртуального диска (A-Z)
virtual_drive_letter=Z
; Список разрешённых переменных окружения Windows (через запятую).
; Запускаемым процессам передаются только те переменные, что указаны в списке.
; Полезно для фильтрации переменных от установленного в систему ПО (PHP и проч.).
; Любую из разрешённых переменных можно переопределить ниже в секции [environment]
allowed_env_vars=allusersprofile appdata commonprogramfiles commonprogramfiles(x86) commonprogramw6432 computername comspec driverdata homedrive homepath localappdata logonserver number_of_processors os path pathext processor_architecture processor_identifier processor_level processor_revision programdata programfiles programfiles(x86) programw6432 psmodulepath public sessionname systemdrive systemroot temp tmp userdomain userdomain_roamingprofile username userprofile windir
; Секция для указания кастомных переменных окружения (для самой программы и для всех запускаемых процессов).
; Эти переменные могут быть отдельно переопределны в файле настроек любого модуля.
;
; Доступны следующие значения для автозамены:
;
; {root_dir} - домашний каталог (корневой каталог программы, например: C:\OpenServer)
; {root_drive} - диск, на котором расположен домашний каталог (например: C:)
; {root_path} - путь к домашнему каталогу (например: \OpenServer)
;
; Если вы используете виртуальный диск (например: Z), то значения после автозамены изменятся:
;
; {root_dir} - Z:
; {root_drive} - Z:
; {root_path} - (пусто)
[environment]
Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
TMP={root_dir}\temp
TEMP={root_dir}\temp
HOMEDRIVE={root_drive}
HOMEPATH={root_path}
Настройки модуля (для примера взял PostgreSQL-12.2)
; Пояснения к файлу настроек модуля
; Доступны следующие значения для автозамены:
;
; {root_dir} - домашний каталог (корневой каталог программы, например: C:\OpenServer)
; {root_drive} - диск, на котором расположен домашний каталог (например: C:)
; {root_path} - путь к домашнему каталогу (например: \OpenServer)
; {ip} - IP адрес, указанный выше в настройках модуля
; {port} - номер порта, указанный выше в настройках модуля
; {module_name} - название модуля (например: PostgreSQL-12.2)
;
; Если вы используете виртуальный диск (например Z), то значения после автозамены изменятся:
;
; {root_dir} - Z:\
; {root_drive} - Z:
; {root_path} - \
; Секция основных настроек модуля
[main]
; 1 - модуль включён, 0 - выключен
enabled=1
; Рабочий порт модуля
port=5432
; Рабочий IP адрес модуля
ip=127.0.0.1
; Тип проверки доступности порта перед запуском модуля (tcp, udp, all)
; Проверка выполняется только если в настройках программы включён параметр use_port_checking
ip_check_type=tcp
; Хост (адрес) для подключения к модулю (записывается в файл HOSTS)
hostname=postgresql122
; Служебная опция (не изменять)
use_pid_file=1
; Служебная опция (не изменять)
min_windows_ver=6.1.7601
; Командная строка для запуска
cmd="{root_dir}\modules\{module_name}\bin\pg_ctl.exe" start -w -s -D "{root_dir}\data\{module_name}"
; Корневой каталог для запускаемого процесса
cmd_dir={root_dir}\modules\{module_name}\bin
; Служебная секция (не изменять)
; Перечисление обязательных каталогов модуля (для проверки наличия на диске)
[directories]
pgdata_dir={root_dir}\data\{module_name}
; Секция для указания кастомных переменных окружения модуля.
[environment]
Path={root_dir}\modules\{module_name}\bin\bin;%Path%
; Секция конфигов
[config_1]
; Кодировка конфига (UTF8, ANSI, ASCII)
encoding=ASCII
; Разделитель путей
path_separator=/
; Исходник (шаблон) конфига
source={root_dir}\templates\{module_name}_pg_hba.conf
; Готовый (рабочий) файл конфига
; Пересоздаётся при запуске программы (даже если модуль выключен)
; Пересоздаётся при каждом перезапуске модуля
destination={root_dir}\data\{module_name}\pg_hba.conf
[config_2]
; Кодировка конфига (UTF8, ANSI, ASCII)
encoding=ASCII
; Разделитель путей
path_separator=/
; Исходник (шаблон) конфига
source={root_dir}\templates\{module_name}_postgresql.conf
; Готовый (рабочий) файл конфига
; Пересоздаётся при запуске программы (даже если модуль выключен)
; Пересоздаётся при каждом перезапуске модуля
destination={root_dir}\data\{module_name}\postgresql.conf
Настройки программы (тот же файл без комментов, кому так проще для восприятия)
[main]
lang=Russian
log_clear_on_start=0
log_use_iso8601_date=0
log_write_in_real_time=1
log_max_filesize=5
log_write_session_title=1
log_show_ext_info=0
use_hosts_file=1
hosts_file_encoding=UTF8
hosts_fix_localhost_record=1
clear_dns_cache_on_hosts_update=1
min_age_for_autorestart=30
max_start_stop_time=30
free_memory_alert=512
free_diskspace_alert=2048
use_port_checking=1
use_virtual_drive=1
virtual_drive_letter=Z
allowed_env_vars=allusersprofile appdata commonprogramfiles commonprogramfiles(x86) commonprogramw6432 computername comspec driverdata homedrive homepath localappdata logonserver number_of_processors os path pathext processor_architecture processor_identifier processor_level processor_revision programdata programfiles programfiles(x86) programw6432 psmodulepath public sessionname systemdrive systemroot temp tmp userdomain userdomain_roamingprofile username userprofile windir
[environment]
Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
TMP={root_dir}\temp
TEMP={root_dir}\temp
HOMEDRIVE={root_drive}
HOMEPATH={root_path}
Настройки модуля (тот же файл без комментов, кому так проще для восприятия)
[main]
enabled=1
port=5432
ip=127.0.0.1
ip_check_type=tcp
hostname=postgresql122
use_pid_file=1
min_windows_ver=6.1.7601
cmd="{root_dir}\modules\{module_name}\bin\pg_ctl.exe" start -w -s -D "{root_dir}\data\{module_name}"
cmd_dir={root_dir}\modules\{module_name}\bin
[directories]
pgdata_dir={root_dir}\data\{module_name}
[environment]
Path={root_dir}\modules\{module_name}\bin\bin;%Path%
[config_1]
encoding=ASCII
path_separator=/
source={root_dir}\templates\{module_name}_pg_hba.conf
destination={root_dir}\data\{module_name}\pg_hba.conf
[config_2]
encoding=ASCII
path_separator=/
source={root_dir}\templates\{module_name}_postgresql.conf
destination={root_dir}\data\{module_name}\postgresql.conf
UPD
Итак. Т.к. ядро пока без какой-либо панели управления (интерфейса нет вообще), то пока сделал однооконную форму с выводом основного лога, чтобы видеть что происходит. А так же накидал несколько кнопок для управления парочкой модулей (Memcached-1.2 и MongoDB-4.4)для примера. Просьба позапускать программу на разных машинах и системах, где в будущем вы планируете работать с Open Server Panel. Вплоть до запуска в нестандартных окружениях, с перезагрузками Windows и т.д. (Open Server выдаст предупреждение и корректно выключится сам)
В набор добавлено только несколько самых простых модулей, они все включены и запускаются одновременно. Все конфиги открыты. В программу добавлен отладочный модуль, в случае возникновения любой ошибки программа попросит отправить отчёт на сервер разработчика, поэтому убедитесь пожалуйста в том, чтобы по возможности у программы был доступ в интернет.
Если нужно изменить настройки чего-либо, закрываете программу, редактируете нужный конфиг, запускаете её снова. Всё ручками, как я и предупреждал нетерпеливых, кто хочет более удобное управление - панель управления появится через пару недель.
В архиве 17 простых модулей, все они включены и запускаются одновременно, нужно около 1ГБ свободной памяти, поэтому на слабых машинах с забитой ОЗУ могут быть проблемы с запуском.
Крайне не рекомендуется использовать HDD из-за медленной работы. Распаковывайте файлы на SSD если он у вас имеется.
Как использовать
1. Распаковать
2. Запустить /install/Microsoft-XP-Runtime-Pack.exe
3. Запустить /install/Microsoft-Runtime-Pack.exe
4. Запустить /install/settings.bat (с правами администратора обязательно)
5. Перезагрузиться
6. Запустить Open Server Panel.exe (напоминаю, это просто окошко с кнопками для тестов, это не интерфейс)
Если после запуска что-то случится, программа автоматически отправит багрепорт на сервер.
Если кто-то захочет прям поработать, то в скриптах при для подключения прописывайте адрес сервера, который указан в конфиге модуля, например mongodb42 для MongoDB-4.2 (порт стандартный 27017).
Несколько особенностей, чтобы потом не было непонятно что происходит:
- "проверка портов перед запуском модуля" работает только в Windows 8 и выше, поэтом на Windows 7 не включайте.
- если модуль по какой-либо причине не запустился, он выключается и уже автоматом при старте программы не запустится. Нужно включить в текстовом конфиге модуля параметр enabled вручную (я предупреждал без панели управления будет тяжко)) ).
- если программа запущена и вы выключаете windows, не пугайтесь надписи про возможную потерю данных, программа выводит его чтобы предотвратить преждевременное выключение системы, но модули быстро останавливаются и программа закрывается, поэтому винда продолжает выключение и эта надпись пропадает.
- модули запускаются параллельно, hosts файл так же редактируется параллельно, поэтому в логе сообщения о запуске или изменении чего-либо появляются не последовательно, а по мере наступления события.
- ну и права администратора больше не нужны, вообще. Если у вас программа пишет что не может редактировать файл HOSTS, то просто воспользуйтесь этим фиксом:
viewtopic.php?f=4&t=1813
☛ Ссылка на загрузку