После выхода 6-ой Open Server Panel версии я сразу же её установил, попробовал настроить, плюнул и остался на 5-ой.... А время шло, всё чаще стали встречаться проекты на PHP версии больше 8.2. С костылями установил модуль PHP 8.3 на 5-ую версию OSP, вроде бы даже и работало пока не поднял большой проект, а он стал грузить Apache на компе в 100% минут через 10 после запуска. И тут я понял, что пришло время разобраться с 6-ой версией OSP. Оказалось, что это не так сложно. А работать с ней в разы удобней, быстрей и приятней.
#Установить нельзя остаться
Почему оставаться на 5-й версии вредно и небезопасно:
- Нельзя одновременно использовать разные версии PHP для своих проектов
- Нет возможности настроить среду окружения модулей и поэтому нет нормальной работы с модулями в консоли
- Невозможно добавление новых нетипичных модулей (команды запуска вшиты в исходный код программы!)
- Модули могут не запускаться из-за некорректной кодировки конфигов при определённых настройках в Windows
- Есть вероятность повреждения баз данных при завершении работы Windows
- Отсутствие стабильности в работе модулей из-за устаревшего способа их запуска в системе
- Скудный набор расширений PHP модулей и плохо протестированная конфигурация Apache и PHP
- Отсутствуют важные проверки файловой системы и системных настроек
- Бывают сбои при длительной работе планировщика заданий
- Есть нерешаемые проблемы совместимости с новыми версиями Windows
- Множество других причин, свойственных устаревшему программному обеспечению...
Почему работать на 6-й версии удобно и просто:
- Полная кастомизация: Пользователи получают полный доступ к настройкам всех модулей.
- Гибкое управление: Управление осуществляется через консоль, трей-меню или веб-интерфейс (в разработке).
- Надежный контроль процессов: Мониторинг и автоматическое восстановление после сбоев.
- Параллельная работа модулей: Возможность одновременного запуска всех модулей, включая запуск нескольких версий одного и того же модуля (например, MySQL 5.5 и MySQL 8.0).
- Профили настроек: Создание профилей с индивидуальными настройками модулей, включая конфиги и данные.
- Персонализация доменов: Индивидуальная настройка для каждого домена, от IP-адреса до версии PHP.
- Встроенная поддержка SSL и IPv6: Работает "из коробки" и не требует дополнительной настройки.
- Оптимизированная среда: Преднастроенная среда для каждого модуля, включая быстрый доступ к shell/cli.
- Удобная смена среды: Мгновенное переключение между средами в консоли.
- Богатый набор расширений PHP: Более 115 доступных расширений.
- Встроенный функционал: Планировщик заданий и SMTP-сервер.
- Composer и Node.js: Управление версиями Node.js с помощью NVM. Composer доступен во всех модулях PHP.
- Повышенная стабильность: Отсутствие багов, зависаний и проблем с кодировками.
- Доступность: Все настройки, шаблоны, языковые файлы и документация доступны на GitHub.
#Установка
Начинается процесс со скачивания дистрибутива https://ospanel.io/download/ который всегда был и остаётся бесплатным. Но как отблагодарить и сэкономить время на скачивания можно понять сразу на странице :) Версии Windows 10 x64 v1607 и выше будут работать со всеми модулями OSP, вниз до Windows 7 x64 не со всеми модулями.
Процесс установки довольно долгий, в обязательном порядке устанавливается MSVC++ 2005-2022.
Я установил в папку F:\OSPanel6. Выкинул ярлыки для удобства на Рабочий Стол.
С запуском появляется иконка с меню в трее:
На диске оставил папку со старой версией 5.4.3, которую я домучивал последней. И даже осталась 5.3.7 про которую я уже и забыл (нужна была для php-модуль phalcon).
Вобщем, если есть предыдущая версия OSP, не удаляйте - там базы данных, которые переносить в новую версию можно только вручную, переключаясь между разными OSP. Плюс у меня в старой OSP остались некоторые настройки модулей, которые возможно могут понадобится в новой версии, там их можно подсмотреть в файлах конфигураций.
#Настройка
В начале запускаем модули, которые нужны для разработки. Это делается мышкой прямо в меню. Модули->MySQL->MySQL-8.0->Включить.
К примеру, запустил три версии PHP:
По-умолчанию папка где будут хранится проекты /home в папке установки OSP. Я добавил ещё свою папку, где ютяться все старые проекты.
Настройки->Каталоги для поиска проектов (через ";"):
Каждый локальный сайт нужно настроить индивидуально. Создаю папку проекта или открываю уже нужную. В ней нужно создать папку .osp и внутри неё текстовый файл project.ini Минимальное содержимое файла - это локальный домен сайта проекта и требование версии модуля PHP:
[example.local]
php_engine = PHP-8.2
Я устанавливал OSP в F:\OSPanel6, значит в F:\OSPanel6\home\example.local уже есть такой файл для примера.
Если модуль PHP 8.2 уже запущен, вбиваем в браузере http://example.local и сайт уже готов к работе!
Для Laravel проектов нужно настроить корневую папку сайта на /public это делается также в project.ini:
[example.local]
php_engine = PHP-8.2
public_dir = {base_dir}\public
#Настройки MySQL
Почему-то нигде не бросились мне в глаза настройки сервера MySQL, и я по старинке прописывал адрес localhost как адрес MySQL-сервера, и даже его настраивать пытался. Оказывается сервер MySQL в 6-ой версии OSP отзывается по имени модуля, то есть для MySQL v.8 это будет выглядеть так:
DB_CONNECTION=mysql=mysql
DB_HOST=MySQL-8.0=MySQL-8.0
DB_PORT=3306=3306
Я пользуюсь для работы с MySQL утилитой HeidiSQL, поэтому переносил из старой версии OSP в новую через экспорт/импорт в SQL.
Можно было бы делать это и просто в консоли с помощью mysqldump.
Ещё ощутимое удобство, что все сервера теперь работают одновременно и в той же HeidiSQL переключатся между разными базами разных проектов можно одним щелчком мышки.
#Настройки PHP
Настройки для каждого модуля PHP надо искать в соответствующей папке config\PHP-8.3\default\templates\php.ini. Сразу сделал две копии стандартной настройки default, скопировал эту папку в папки dev и prod. Для dev включаю xdebug в php.ini
zend_extension = xdebug
[xdebug]
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.connect_timeout_ms = 200
xdebug.discover_client_host = On
xdebug.log = "{root_dir}/logs/{module_name}/xdebug.log"
xdebug.output_dir = "{root_dir}/temp/{module_name}/{profile_name}/xdebug"
xdebug.start_with_request = yes
xdebug.idekey = PHPSTORM
Там же включаем нужные проектам php-модули. В теории можно наделать под каждый проект свою конфигурацию php, пока не заморочился настолько.
#Настройка PhpStorm
В отдельной статье: настройка PHPStorm
#Дзен
Не забыть перезапустить после манипуляций Open Server Panel через Меню->Перезапустить. Проекты запускаются сразу и по http// и по https://. Всё летает по сравнению с OSP версии 5.
#Дополнения
от 09-06-2025
Обязательно добавить все папки по которым OSP ищет рабочие проекты в исключения для антивируса. Особенно чувствительно замедление работы при запуске composer с большим количеством зависимостей. Генерация autoload может подвиснуть на несколько минут если этого не сделать.