Заметка основана на решении Тараса (tarasfrompir) установки MajorDoMo на Windows 10 с использованием пакета XAMPP (кроссплатформенная сборка веб-сервера, содержащая Apache, MySQL, интерпретатор скриптов PHP, язык программирования Perl и большое количество дополнительных библиотек, позволяющих запустить полноценный веб-сервер).Полноценное описание доступно на форуме в первом посте темы "Установка Мажордомо на XAMPP", однако у меня возникла небольшая проблемка, поэтому решил сделать своё описание.
Устанавливаю всё по инструкции от Тараса (спасибо ему за подробное описание) Установка Мажордомо на XAMPPУстановка Мажордомо на XAMPP
Шаг первый: скачиваем и устанавливаем пакет XAMPP на ПК с Windows, ссылка на скачивание пакета с пхп 7.3.1 Пакет XAMPP с PHP 7.3.1
Устанавливаем на любой диск (у меня D).
UAC у меня не включен, поэтому игнорирую предупреждение.
Отмечаем галочкой сервисы, которые планируете установить, у меня все отмечены, можно обойтись обязательными Apache, MySQL, PHP, phpMyAdmin.
Указываем путь для установки и выбираем из двух языков (больше нет) английский.
Нажимаем установить. После установки запускается панель управления XAMPP.
Закрываем её, нажатие на крестик не помогает, закрываем через диспетчер задач.
После этого переходим к файлу xampp-control.exe в папке с установленным xampp и запускаем его от администратора.
Переходим к config в панели правый верхний угол, и устанавливаем галочки на автостарте модулуй, как показано на скрине (Apache и MySQL). Без запуска от админа сохранения не применяются, отказ в доступе.
Что это значит – при запуске xampp, автоматически запускаются эти модули и не нужно в дальнейшем выполнять запуск в ручную.
Закрываем панель xampp, в том числе из систем трея.
Скачиваем файлы majordomo одним архивом, на примере из альфа ветки: https://github.com/sergejey/majordomo/tree/alpha
Удаляем все файлы из папки / htdocs. Распаковываем и копируем файлы Majordomo, в папку / htdocs, естественно не папкой majordomo-alpha а всем её содержимым.
И еще надо положить папку аппс из мажордомо в папку ХАМППа (корень) (папку miniRelay не смог загрузить, ругалась на вирусы)
Ссылка на папку apps
Кроме того не хватает архиваторов, распаковываем в директорию httpdoc
архиваторы
Запускаем екзешник с панелью XAMPP (xampp-control.exe), при этом сервисы апача и mySQL стартуют автоматически и из браузера перейдём в панель управления phpmyadmin набрав адрес: .
Импортируем базу данных MajorDoMo:
Нажимаем - создать БД
и в поле - имя базы - вписываем db_terminal
и в соседенем поле изменяем кодировку на utf8_general_ci
и нажимаем кнопку Создать.
Теперь жмем на созданный db_terminal и сверху жмем слово Импорт
Жмем Выберите файл и выбираем файл db_terminal.sql (он находится в папке диск:\путь к хамп\htdocs)
и жмем слово Вперед.
После импорта появится надпись об успешном окончании импортирования.
Заходим по адресу 127.0.0.1 - появляется стартовая страница, радоваться пока не спешим, нужно произвести некоторые настройки. Закрываем панель управления xamppa (в т.ч. и из систем трея).
Теперь мажордомо надо настроить.
Переименуем config.php.sample в config.php
И отредактируем пути в этом файле (config.php)
а именно - в этих строках
Define('SERVER_ROOT', '/var/www');
Define('PATH_TO_PHP', 'php');
Define('PATH_TO_MYSQLDUMP', "mysqldump");
на следующее:
Define('SERVER_ROOT', 'диск:/путь к хамп');
Define('PATH_TO_PHP', 'диск:/путь к хамп/php/php.exe');
Define('PATH_TO_MYSQLDUMP', "диск:/путь к хамп/mysql/bin/mysqldump.exe");
в моем случае (корень диска D) вышло так:
Define('SERVER_ROOT', 'd:/xampp');
Define('PATH_TO_PHP', 'd:\xampp\php\php.exe');
Define('PATH_TO_MYSQLDUMP', SERVER_ROOT.'/mysql/bin/mysqldump.exe');
Соответственно сохраняем этот файл после внесенных изменений.
Включаем в PHP сокеты в файле /php/php.ini
extension=sockets
Исправление простое - надо в пхп.ини вместо
;extension=sockets сделать extension=sockets (удалить символ ;)
Напишем простой bat файл для запуска цикла и MajorDoMo вместе с xampp. К примеру у меня mjdm start.bat , ресположен в папке /xampp
Содержимое:
start диск:\путь к хамп\xampp-control.exe >nul
диск:\путь к хамп\php\php.exe диск:\путь к хамп\htdocs\cycle.php
У меня:
start d:/xampp/xampp-control.exe >nul
rem Main system cycle start
:1
d:\xampp\php\php.exe d:\xampp\htdocs\cycle.php
goto 1
ТЕПЕРЬ ВСЕ
Запускаем Мажордомо этим батником
ПОСЛЕ ЭТОГО ОБЯЗАТЕЛЬНЫЙ РЕБУТ КОМПА
После перезагрузки Запускаем локальный сервер созданным bat-файлом (запуск рекомендую от администратора) заходим по адресу:
http://127.0.0.1/
Попадаем на начальную страницу настройки языка/времени:
Если страница не открылась, можем открыть набрав: http://127.0.0.1//popup/first_start.html.
После установки настроек переход на главную страницу majorDoMo.
Вроде бы всё нормально, но перейдя на панель управления видим такое безобразие:
Ваша копия MajorDoMo не может связаться с сервером Connect. Ввиду этого, маркет и некоторые другие функции могут быть недоступны.
Действительно маркет да и некоторые функции - недоступны, ни загрузить ни удалить дополнения не получается.
Возможно это единичная ошибка проявилась только у меня, но ... попробуем исправить.
об устранении этой ошибки скоро будет дописано.
Обязательно закрываем bat файл запуска циклов MajorDoMo.
Устанавливаем (скачиваем) программу isobuster, можно portable версии, запускаем её.
Устанавливаем (скачиваем) программу IsoBuster, можно portable версии, запускаем её.
Скачиваем базовый образ для Raspberry Pi, или же если есть свой образ или карта памяти рабочей системы открываем, с помощью IsoBuster (конечно можно для копирования файлоф если имеется в наличии своя система можно воспользоваться WinSCP).
Выбираем файл образа или же диск с картой памяти:
Сохраняем содержимое директории /var/www/html на диск ПК.
На всякий случай скачать папку html с базового образа версии 4_44 можно здесь: https://disk.yandex.by/d/4nptMkqNWZK08Q
И повторяем почти всё по новой, удаляем содержимое htpdoc, оставив лишь файл config.php. В случае решения редактирования этого файла не забывайте, что вероятнее всего у вас на лине прописан пароль от БД, на Винде он пустой изначально. Его либо установить либо удалить в конфиге.
Проверяем файл db_terminal.sql на наличие строчки /!40101 SET NAMES utf8mb4 /; (будет в самом начале) или удаляем её или приводим к виду /!40101 SET NAMES utf8 /; (в базовом образе такая строка, у меня на рабочем образе почему-то utf8mb4)
И снова заходим в phpMyAdmin по адресу: http://127.0.0.1/phpmyadmin/
Импортируем файл БД, как в предыдущем примере: удаляем полностью базу db_terminal (выделяем БД dbterminal, переходим в операции - удалить Базу Данных - вперёд , создаём новую с таким же наименованием и настройками кодировки utf8 и импортируем уже новую, сохраненную на ПК из вашего образа.
Запускаем bat файл запуска MajorDoMo, предварительно закрыв панель управления xampp.
Как видно – все скрипты запустились нормально, за исключением connect (это и понятно, в настройках нет данных пользователя).
Переходим в панель Управления MajorDoMo http://127.0.0.1/admin.php
Как видим ошибка связи с connect исчезла, можно обновить систему, установить необходимые дополнения, попробовать поработать с системой УД, ознакомиться с ней.
Внимание!!! Данная версия системы Умного Дома можно сказать так условно работоспособная или демонстрационная, сделана в ознакомительных целях. Для приведения её к рабочей системы придётся много чего изменить, и пути к файлам и установка программ и пакетов для взаимодействия УД MajorDoMo с используемым вами железом, многие вещи, которые работают на Linux могут не работать на Win и наоборот.
Начать изменения рекомендую с поста Руслана @Newz20 https://t.me/MajorDoMoRu/219984
Процедура создания тестовой копии системы, практически ничем не отличается от вышенаписанного, за исключением, файл Базы Данных, который импортируем из папки \xampp\htdocs\backup\xxxxxxxx\ (куда скопировали содержимое /var/www/html/ там хранятся бэкапы БД, можно взять самый последний по дате)
Из папки scripts удаляем (переименоваем ненужные для запуска скрипты, в моем случае: cycle_connect.php, cycle_mqtt.php cycle_yadevices.php cycle_zigbee2mqtt.php cycle_zigbeedev.php cycle_db_save.php
как видим у меня перенеслись устройства, так же с ними сценарии, методы, свойства и т.д.
Ну и немного напоследок.
Всю эту возню я затеял с целью нет не переноса системы на Windows, а просто создания тестовой версии, которая всегда под рукой и на которой можно попробовать разного рода изменения, чтоб не дёргать рабочую систему.
Минск, Беларусь
На форуме: udvnl