udvnl

 
<<< Back

Вариант установки Majordomo на Windows 10 с использованием пакета XAMPP. Немного о переносе и создании тестовой копии системы с Raspberry PI на Windows

Заметка основана на решении Тараса (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. Ввиду этого, маркет и некоторые другие функции могут быть недоступны.
Действительно маркет да и некоторые функции - недоступны, ни загрузить ни удалить дополнения не получается.
Возможно это единичная ошибка проявилась только у меня, но ... попробуем исправить.

об устранении этой ошибки скоро будет дописано.

Продолжение: Мой вариант устранения ошибки связи с сервером Connect и немного про создание тестовой копии системы с RPI на Windows 10.

Обязательно закрываем 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, а просто создания тестовой версии, которая всегда под рукой и на которой можно попробовать разного рода изменения, чтоб не дёргать рабочую систему.

Discuss (10) (5)

See also:
2022-03-09 Небольшие заметки по подключению и использованию сервиса CONNECT
2022-02-27 Zigbee2mqtt, немного о стиках CC2531 и Sonoff USB Zigbee 3.0 Dongle Plus (сравнение, подключение, тестирование).
2021-09-23 Второй раз в первый класс. Часть 1: начало работы c базовым образом для RPi.
2020-12-31 Возможность создания канала управления через телефонные сети для системы домашней автоматизации.
2020-07-06 Чтение файлов из образа img Операционной системы. Возможность записи образа на меньшую по размеру SD карту памяти
2020-06-19 Raspberry Pi: немного о резервном копировании и актуальной копии системы
2020-05-07 Установка VoIP сервера FreeSWITCH с частичной интеграцией в систему MajorDoMo
2020-04-28 Установка базового образа MajorDoMo на Raspberry Pi. Начало первые шаги.
2019-10-07 Возможность создания видео звонков у MajorDoMo (RPI +WebCam)
2019-09-11 Создание голосового оповещения MajorDoMo
2019-08-21 Установка USB аудиокарты и настройка звука в Raspberry Pi
2019-04-04 Сертификация в Z-Wave
2019-03-11 RPI Monitor полезное ПО для Raspberry PI и Orange Pi
2019-02-04 Тестирование пропускной способности канала Ethernet (Wi-Fi) с помощью утилиты IPerf
2018-12-23 Пошаговая инструкция с картинками по установки MajorDoMo на Raspberry Pi 3 с помощью скрипта от Immortal
2018-10-20 Установка Freeswitch 1.8.2 на Debian 9 (Raspbian Stretch) на базовый образ системы «Умного дома» MajorDomo
2018-08-14 Создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo. Включение первого устройства Z-Wave и первые шаги по автоматизации
2018-07-08 Создание беспроводного «умного дома». На основе технологии Linux, Z-Wave и ПО MajorDoMo. Включение контроллера RaZberry и первые шаги по Z-Wave
2018-06-29 Пошаговая инструкция по установке образа Majordomo на Raspberry Pi
2018-06-21 Удаленное наблюдение за близкими, но к сожалению, больными людьми.

Минск, Беларусь

На форуме: udvnl