Как установить MajorDoMo на Linux
Инструкция была написана под операционную систему Ubuntu 18.10 и тестировалась только на ней!
В случае если у Вас установлена другая операционная система Linux то возможно, на каком-то из шагов, у Вас возникнут ошибки. В данном случае, рекомендуется сообщить об этих ошибках в чат в Telegram или же на форум.
Перед началом работы необходимо убедиться что в системе установлен пакет sudo.
Для этого нужно выполнить команду:
В случае если в ответ будет отображено сообщение подобного плана:
Это будет обозначать, что пакет sudo по умолчанию не установлен в Вашей ОС. Потому его необходимо установить.
Для это необходимо выполнить следующие команды:
Будет запрошен пароль пользователя от которого выполняется команда. Внимание!!! При вводе пароля, символы не будут отображаться на экране!
После успешного ввода пароля, в случае если вид консоли изменился и принял подобный вид:
Производится установка sudo командой:
После успешной установки пакета, необходимо добавить пользователя, от которого будет производиться установка, в группу sudo. Это делается командой:
Где:
USERNAME - это имя пользователя. Для Raspberry PI это обычно пользователь: pi.
По завершении этих действий, необходимо выйти в окружение обычного пользователя. Это выполняется командой:
Приглашающее сообщение в консоли, должно принять подобный вид:
Обновление кеша пакетов и обновление установленных пакетов (в случае если для них есть обновления)
Установим ещё пару приложений которые будем использовать в процессе установки
Устанавливаем SSH
Устанавливаем MySQL
Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните. Этот пароль понадобится в дальнейшем.
Важно!!! Если установщик не запросил пароль, то выполните в консоли команду:
И пройдите по всем шагам. И в этих шагах укажите пароль пользователя root.
Создание пользователя и БД MySQL:
Для начала создадим БД командой:
После выполнения этой команды, и далее по параграфу, MySQL будет просить ввести пароль пользователя root, который мы указывали выше. Вводим его где будет необходимо и нажимаем Enter.
Важно!!! При вводе пароля символы не будут отображены на экране.
Далее создаём пользователя для работы с этой БД:
password - необходимо заменить на ваш пароль, который тоже необходимо запомнить. Этот пароль будет использоваться для работы MajorDoMo с БД, а так же для входа в phpMyAdmin ниже по инструкции.
Важно!!! Рекомендуется использовать сложный пароль, так как в случае если будет открыт доступ к MajorDoMo и phpMyAdmin извне, то есть вероятность того, что простой пароль будет взломан и тот, кто это сделает, сможет получить доступ к важным данным в Вашей MajorDoMo.
Для предоставления только что созданному пользователю привилегий, необходимо выполнить команду:
И в завершение, необходимо обновить привилегии:
Установка WEB сервера
В качестве web сервера можно поставить разные пакеты.
- Установка на основе Apache.
Правим конфиг Апача
Если такого файла нет, он может называться по-другому. Например:
В этом файле находим раздел:
И заменяем во всех совпадениях
на
Сохраняемся и выходим: Ctrl-O Ctrl-X
В более новых версиях Apache конфигурационный файл может не содержать директив "AllowOverride". В таком случае необходимо вручную привести файл к виду:Удаляем стандартный index.html файл командой:
И перезапускаем Апач:
Если при перезапуске выдаст примерно такой ответ:
То необходимо поправить apache2.conf
Вставив в него такую строку:
Сохраняемся и выходим: Ctrl-O Ctrl-X
Перезапускаем Апач
Если ваша версия Apache отличается от рассматриваемой, то пути к файлам конфигурации могут быть такими:
Устанавливаем PHP
curl и его библиотеки:
Для apache
Для последних версий Апача необходимо включить работу с коротким тегом <? /?> для этого откройте файл php.ini командой:
Необходимо заменить или вставить строку:
Устанавливаем PHPMYADMIN
Установщик изначально спросит о том, к какой версии web сервера необходимо произвести настройку. Необходимо выбрать версию apache2 путём нажатия пробела и Enter.
Установщик спросит необходимость конфигурирования баз данных при помощи "dbconfig-common". Отвечаем утвердительно путём нажатия Enter.
Далее установщик спрашивает пароль MySQL сервера. Этот пароль задавался в разделе "Устанавливаем MySQL" данного руководства. Вводим указанный пароль и подтверждаем его ещё раз.
Включаем mod_rewrite
Перезапускаем Апач
Настройка PHP
В обоих конфигурационных файлах для web сервера:
И файл запуска php скриптов из командной строки:
Строку error_reporting привести к виду:
А так же строки:
Для применения изменений, необходимо перезапустить Apache:
Устанавливаем MajorDoMo
Скачиваем дистрибутив Majordomo, разархивируем и копируем содержимое majordomo-master в директорию /var/www/html:
Настройка прав на файлы и директории
Установка рекомендуемых прав выполняется следующими командами:
Для файлов:
Для директорий:
Проверяем права командой:
Права будут выглядеть подобно:
Для директорий:
Для файлов:
Установка собственника и группы на файлы и директории
Majordomo (а именно сервисы: apache и php) работает от пользователя www-data. Права доступа к каталогу /var/www/html, где лежат файлы Majordomo по умолчанию принадлежат root. Изменим владельца директории /var/www/html на www-data.
Проверяем:
Вывод должен быть подобный:
Теперь необходимо предоставить доступ пользователю www-data к медиа устройствам. Для этого его необходимо добавить в группу audio.
Это делается командой usermod:
Проверяем, что он появился в группе:
Если всё в порядке, то вывод будет подобный:
Дальнейшие команды нужно использовать только в случае если у Вас по какой-то причине система не работает совсем или не работает частично.
В большинстве случаев на моменте начального конфигурирования, проблемы с системой возникают из-за неправильно установленных прав.
Меняем права доступа к файлам по принципу: всем-всё.
И директориям
Проверяем права командой:
Права будут выглядеть подобно:
Для директорий:
Для файлов:
В случае если права по какой-то причине не установились, то можно сделать вариант в котором устанавливаются полные права для всех рекурсивно по директориям и файлам. Команда выглядит так:
Необходимо заметить, что данный способ, не самый безопасный, но самый простой.
Импорт базы данных
Заходим по адресу:
http://localhost/phpmyadmin
Или:
http://localhost/phpmyadmin4
При входе будет запрошен логин, его необходимо указать как: majordomo, и пароль который который был задан на шаге: "Создание пользователя и БД MySQL".
В созданную ранее БД необходимо импортировать файл db_terminal.sql из директории с дистрибутивом. Скачать его можно по ссылке: db_termina.sql. Для скачивания нажмите правой кнопкой мыши на ссылку и выберите: "Сохранить ссылку как...".
Далее выполняем последовательность действий в phpMyAdmin для импорта sql файла.
- В левой части окна выбрать БД db_terminal, путём нажатия один раз на её название.
- В верхней части окна найти кнопку "Импорт".
- В загрузившейся странице, в разделе "Импортируемый файл" нажать "Выберите файл" или "Обзор".
- В открывшемся окне, выбрать ранее сохраненный файл "db_terminal.sql".
- В нижней части окна нажать "Вперёд".
После успешного импорта должна отобразится зелёная строка с подобным текстом:
В случае если возникли проблемы с импортом БД используя phpMyAdmin, есть возможность импортировать дамп БД используя командную строку. Для этого скачайте дамп файл командой:
И импортируйте его:
Будет запрошен пароль пользователя majordomo, который был задан на шаге: "Создание пользователя и БД MySQL".
Правим основной конфиг
Изначально копируем пример конфига в рабочий конфиг:
Установим собственника и группу для конфига:
И открываем конфиг для редактирования:
Прописываем имя пользователя и пароль пользователя БД. Для этого нужно исправить строки:
Где: DB_USER - пользователь majordomo который был создан на шаге: "Создание пользователя и БД MySQL".
DB_PASSWORD - пароль от этого пользователя, который был задан на том же шаге.
Сохраняем файл, и выходим из редактора.
Все, теперь можно зайти на веб интерфейс Majordomo.
Или:
Если установка выполняется не на локальную машину.
При первом входе должна быть отображена страница: "Hello, world! :)" на которой необходимо выбрать тайм зону, язык системы и цветовую тему. По завершении нажать кнопку "Continue".
В случае если такая страница не отобразилась, открыть её можно по ссылке:
Основной цикл Вариант 1. Systemd unit. Предпочтительный
Код юнита:
Данный код необходимо скопировать в файл: /etc/systemd/system/majordomo.service Для этого открываем файл:
И вставляем в него код, который представлен выше.
Для автозапуска MajorDoMo при старте системы, необходимо выполнить команду:
И для запуска MajorDoMo необходимо выполнить:
Основной цикл Вариант 2. Если не сработал первый вариант
Запуск основного цикла добавляем в Cron, для пользователя www-data, так как файлы МД принадлежат этому пользователю.
В открывшемся окне добавляем строку:
И обязательно! ставим Enter для того чтобы в конце открытого файла был перенос строки.
Сохраняем и перезапускаем компьютер:
После запуска циклов можно открыть MajorDoMo по адресу:
В случае если MajorDoMo устанавливалась на локальный компьютер.
Или:
Если MajorDoMo устанавливалась на удалённый сервер.
Если не выполняются onNewMinute и onNewHour
Нужно проверить настройку BASE_URL в config.php. Если Вы используете домен, а не IP, тогда добавьте в файл /etc/hosts строку вида:
Где domain.com - это Ваш домен который Вы используете. Комментарий Сергея с форума: Дело в том, что эти методы вызываются через внутреннюю функцию raseEvent, которая обращается к серверу через HTTP-запрос используя BASE_URL. Если он неправильный, то метод не вызовется.
На этом статья об установке MajorDoMo на Linux Ubuntu закончена.
Полезные темы на форуме
- Для быстрой установки необходимых атрибутов можно воспользоваться данным скриптом.
- Установка на Ubuntu
- Установка Системы Majordomo на Raspberry pi
- Установка на FreeBSD
- [РЕШЕНО] Проблема с установкой и настройкой на Ubuntu 13.04
- Установка на Debian подробная инструкция
- CubieBoard - попытка №1
18 thoughts on - Как установить MajorDoMo на Linux?
Код "error_reporting = E_ALL & ~E_NOTICE"
Заменить на "error_reporting = E_ALL & ~E_NOTICE"
http://majordomo.smartliving.ru/forum/viewtopic.php?f=3&t=3490&start=10#p42341
а это уже не работает? ставится без проблем и тремя командами)
В пункте "Устанавливаем PHP5:"
Где его взять? Может какие репозиториии добавить нужно?!?!?
Денис, в марте-апреле перешли на php 7 - не скорректировали инструкцию
"Возможные проблемы."
Проверил AllowOverride All, добавил в apache2.conf строку LoadModule rewrite_module modules/mod_rewrite.so, проконтролировал наличие этого файла, не запускается никак. localhost грузит страницу apache, localhost/popup/first_start.html грузит 404.
у меня при установке SQL пароль не спрашивал.
при установке PHP установил. теперь при входе в phpmyadmin данный пароль не принимает. как изменить пароль?
в общем пароль то установился, а пользователь был mysql
Установил на зерошку. Под рутом и mysql не пускает в phpmyadmin. Пускает пользователя phpmyadmin с установленным ранее паролем, но нет привилегий на создание БД.
С бубном настроил БД. Но проблема все таже, не грузится МД, грузится апач.
serenya, как вы настроил БД?
Меня под рутом не пускает, пустил под phpmyadmin и без привелегий.
Такая же фигня.
serenya, как вы настроил БД?
Меня под рутом не пускает, пустил под phpmyadmin и без привелегий.
там авторизация из под рута через сокет, гуглите сброс пароля mysql, как зайдете в пхп админ и все сделаете, советую поменять обратно, что бы не пускало по http.
Отключен удаленный root.
в /etc/mysql/my.cnf
закоментировать строку : bind-address = 127.0.0.1
sudo /etc/init.d/mysql restart
mysql -u root -p;
use mysql
select host, user from user;
update user set host='%' where user='root' and host='localhost';
flush privileges;
Сегодня поставил на дебиан 9 (на оранж зеро), правда пришлось минимальную частоту поднимать до 648000, а то протупливал таймеры в мажоре. Так вроде все гуд, очень быстренько пашет. Зеро верхняя с 512 оперативки
Допишите "Основной цикл Вариант 2", на Oреnmediavault (на Debian), на арасhe не ставится, только на nginx, черя чать вашей статьи, когда-то смог установить, решил повторить на прошлой неделе, потратил 3 дня, и повторить не смог. Так же пробовал с помощью готового скрипта, тоже не видит. Расстроился плюнул и установил Domoticz. Который появился в Oреnmediavault 4.* в виде плагина. а также есть и в Docer-CE. Почему не сделать так с MajorDomo? Было бы еще проще, нажать пару кнопок и пользуйся. Или хоть вручную, но с рабочим описанием. Продвинутые пользователи говорят, не надо все просто, но это для них, и многие скажут Вам спасибо, я бы и в виде денег. Посмотрите на сайте 4PDA, и подумал, может потому пользователей Domoticz в 2 раза больше, что с установкой нет проблем?
Важно: В момент запуска системы не все службы могут стартануть и скрипт запуска цикла не отрабатывается (не запускается), решением может стать добавление ожидания в 1 минуту перед стартом данного скрипта:
@reboot sleep 60 && /usr/bin/php /var/www/majordomo/www/cycle.php