Как установить MajorDoMo на Linux?

3. Как установить MajorDoMo? 18 комментариев

Как установить MajorDoMo на Linux

В первую очередь читайте readme.txt, который идёт вместе с дистрибутивом.

Перед началом работы необходимо убедиться что в системе установлен пакет sudo.

Для этого нужно выполнить команду:

В случае если в ответ будет отображено сообщение подобного плана:

Это будет обозначать, что пакет sudo по умолчанию не установлен в Вашей ОС. Потому его необходимо установить.

Для это необходимо выполнить следующие команды:

Будет запрошен пароль пользователя от которого выполняется команда. Внимание!!! При вводе пароля, символы не будут отображаться на экране!
После успешного ввода пароля, в случае если вид консоли изменился и принял подобный вид:

Производится установка sudo командой:

После успешной установки пакета, необходимо добавить пользователя, от которого будет производиться установка, в группу sudo. Это делается командой:

Где:
USERNAME - это имя пользователя. Для Raspberry PI это обычно пользователь: pi.
По завершении этих действий, необходимо выйти в окружение обычного пользователя. Это выполняется командой:

Приглашающее сообщение в консоли, должно принять подобный вид:

Обновление кеша пакетов и обновление установленных пакетов (в случае если для них есть обновления):

Установим ещё пару приложений которые будем использовать в процессе установки

Устанавливаем SSH

Устанавливаем MySQL:

Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните. Этот пароль понадобится в дальнейшем.

Важно!!! Если установщик не запросил пароль, то выполните в консоли команду:

И пройдите по всем шагам. И в этих шагах укажите пароль пользователя root.

Установка WEB сервера

В качестве web сервера можно поставить разные пакеты.

  • Установка на основе Apache.

    Правим конфиг Апача

    Если такого файла нет, он может называться по-другому. Например:

    В этом файле находим раздел:

    И заменяем во всех совпадениях

    на

    Сохраняемся и выходим: Ctrl-O Ctrl-X
    В более новых версиях Apache конфигурационный файл может не содержать директив "AllowOverride". В таком случае необходимо вручную привести файл к виду:

    Перезапускаем Апач

    Если при перезапуске выдаст примерно такой ответ:

    То необходимо поправить apache2.conf

    Вставив в него такую строку:

    Сохраняемся и выходим: Ctrl-O Ctrl-X

    Перезапускаем Апач

    Если ваша версия Apache отличается от рассматриваемой, то пути к файлам конфигурации могут быть такими:

Устанавливаем PHP:

curl и его библиотеки:

Для apache

Для последних версий Апача необходимо включить работу с коротким тегом <? /?> для этого в

Необходимо заменить или вставить строку:

Устанавливаем PHPMYADMIN:

Установщик изначально спросит о том, к какой версии web сервера необходимо произвести настройку. Необходимо выбрать версию apache2 путём нажатия пробела и Enter.

Установщик спросит необходимость конфигурирования баз данных при помощи "dbconfig-common". Отвечаем утвердительно путём нажатия Enter.

Далее установщик спрашивает пароль MySQL сервера. Этот пароль задавался в разделе "Устанавливаем MySQL" данного руководства. Вводим указанный пароль и подтверждаем его ещё раз.

Включаем mod_rewrite

Перезапускаем Апач

Настройка PHP:

В обоих конфигурационных файлах для web сервера:

И файл запуска php скриптов из командной строки:

Строку error_reporting привести к виду:

А так же строки:

Для применения изменений, необходимо перезапустить Apache:

Устанавливаем MajorDoMo

Скачиваем дистрибутив Majordomo, разархивируем и копируем содержимое majordomo-master в директорию /var/www:

Настройка прав на файлы и директории

Установка рекомендуемых прав выполняется следующими командами:
Для файлов:

Для директорий:

Проверяем права командой:

Права будут выглядеть подобно:
Для директорий:

Для файлов:

Установка собственника и группы на файлы и директории

Majordomo (а именно сервисы: apache и php) работает от пользователя www-data. Права доступа к каталогу /var/www, где лежат файлы Majordomo по умолчанию принадлежат root. Изменим владельца директории /var/www на www-data.

Проверяем:

Вывод должен быть подобный:

Теперь необходимо предоставить доступ пользователю www-data к медиа устройствам. Для этого его необходимо добавить в группу audio.

Это делается командой usermod:

Проверяем, что он появился в группе:

Если всё в порядке, то вывод будет подобный:

Дальнейшие команды нужно использовать только в случае если у Вас по какой-то причине система не работает совсем или не работает частично.
В большинстве случаев на моменте начального конфигурирования, проблемы с системой возникают из-за неправильно установленных прав.

Меняем права доступа к файлам по принципу: всем-всё.

И директориям

Проверяем права командой:

Права будут выглядеть подобно:
Для директорий:

Для файлов:

В случае если права по какой-то причине не установились, то можно сделать вариант в котором устанавливаются полные права для всех рекурсивно по директориям и файлам. Команда выглядит так:

Необходимо заметить, что данный способ, не самый безопасный, но самый простой.

Создание базы данных

Заходим по адресу:
http://localhost/phpmyadmin
Или:
http://localhost/phpmyadmin4

При входе будет запрошен логин, его необходимо указать как: root, и пароль который мы устанавливали ранее, при установке MySQL.

Создаем базу данных db_terminal и импортируем в нее db_terminal.sql из директории с дистрибутивом. Скачать можно по ссылке: db_termina.sql. Для скачивания нажмите правой кнопкой мыши на ссылку и выберите: "Сохранить ссылку как...".

Далее выполняем последовательность действий для создания и импорта sql файла.

  • В левой части окна нажать "Создать БД". В поле "Имя базы данных" ввести: db_terminal.
  • В левой части окна выбрать созданную БД, путём нажатия один раз на её название.
  • В верхней части окна найти кнопку "Импорт".
  • В загрузившейся странице, в разделе "Импортируемый файл" нажать "Выберите файл" или "Обзор".
  • В открывшемся окне, выбрать ранее сохраненный файл "db_terminal.sql".
  • В нижней части окна нажать "Вперёд".

После успешного импорта должна отобразится зелёная строка с подобным текстом:

Теперь необходимо создать пользователя и предоставить этому пользователю права на созданную базу данных.
Для этого в левой части окна phpMyAdmin нажимаем на название БД: db_terminal. Далее необходимо нажать "Привелегии" в правой части окна вверху. Будет отображена страница с уже существующими пользователями которые имеют доступ к этой БД. Для создания нового пользователя необходимо нажать "Добавить учетную запись пользователя" в разделе "Новый".
Вводим:

Проверяем чтобы была установлена галочка: "Предоставить все привилегии на базу данных "db_terminal".". Для завершения создания пользователя, в самом низу страницы нажимаем "Вперед". В случае успеха, будет отображено сообщение:

Правим основной конфиг.

Изначально копируем пример конфига в рабочий конфиг:

Установим собственника и группу для конфига:

И открываем конфиг для редактирования:

Прописываем имя пользователя и пароль пользователя БД. Для этого нужно исправить строки:

Где: DB_USER - пользователь которого мы создали выше.
DB_PASSWORD - пароль от этого пользователя.

Все, теперь можно зайти на веб интерфейс Majordomo.

Или:

Если установка выполняется не на локальную машину.
При первом входе должна быть отображена страница: "Hello, world! :)" на которой необходимо выбрать тайм зону, язык системы и цветовую тему. По завершении нажать кнопку "Continue".
В случае если такая страница не отобразилась, открыть её можно по ссылке:

Основной цикл Вариант 1. Systemd unit. Предпочтительный.

Код юнита:

Данный код необходимо скопировать в файл: /etc/systemd/system/majordomo.service Для этого открываем файл:

И вставляем в него код, который представлен выше.
Для автозапуска MajorDoMo при старте системы, необходимо выполнить команду:

И для запуска MajorDoMo необходимо выполнить:

Основной цикл Вариант 2. Если не сработал первый вариант.

Запуск основного цикла добавляем в Cron, для пользователя www-data, так как файлы МД принадлежат этому пользователю.

В открывшемся окне добавляем строку:

И обязательно! ставим Enter для того чтобы в конце открытого файла был перенос строки.
Сохраняем и перезапускаем компьютер:

После запуска циклов можно открыть MajorDoMo по адресу:

В случае если MajorDoMo устанавливалась на локальный компьютер.
Или:

Если MajorDoMo устанавливалась на удалённый сервер.

Arduino

Установка драйверов для Ардуины

Для настройки порта Ардуино Мега

Установка 1-wire

Установим owfs

Настройка:

Правим:

Разное:

Для его нормальной работы необходимо запустить конфигуратор:

и выбрать "запустить с включённым SUID битом - да", "интервал проверок - 0", "запускать как сервис - нет"

Установка Midnight Commander

МЕДИА.

Для проговаривания голосом:

Для проигрывания музыки

Автозапуск

Для доступа к vlc на порту 8080 с других машин необходимо в файле

раскоментировать нужную строчку. Без этого с других машин будет ошибка Forbidden 403.

Если есть необходимость проигрывать файлы с другой машины (например с NAS) необходимо примонтировать расшаренную директорию. Монтирование медиатеки: САМБА

Создаем точку монтирования

Автомонтирование

в конец

Установка в каталог, отличный от WWW

В /etc/apache2/ есть директории sites-available и sites-enabled.

default - отрабатывает /usr/var/www

если нужно просто установить в другую директорию и не использовать стандартный путь, можно изменить конфигурацию default

после изменения не забудьте

Если нужно использовать несколько сайтов - нужно создать дополнительные ссылки в /etc/apache2/sites-available

для этого

дальше нужно править его конфиг

Обратите внимание на ServerName, ServerAlias, DocumentRoot, Directory и 2шт AllowOverride

ServerName, ServerAlias - имя, при обращение с которым на данный сервер будет отрабатывать данный сайт (с www и без) DocumentRoot, Directory - путь к файлам

(так как подписано в sites-available)

Перегружаем конфиг apache2:

Принудительная синхронизация времени при загрузке.

Ни в малине, ни в кубике нет часов и при запуске там всегда 01.01.1970. Это приводит к пропаданию последних записей из базы при перезагрузке. Поэтому необходимо прописать в крон при загрузке принудительную синхронизацию времени.

Под рутом набрать в консоли:

Вставить такую строчку:

Для начала советую набрать в командной строке

Если ошибок не будет, тогда уже вносить изменения в крон. Если будут ошибки - устранить

Подключение USB веб-камеры

Используем mjpg-streamer так как он не грузит процессор. Но детектора движения нет.

Установим необходимые пакеты

Сборка

Добавим пользователя (например у меня это majordomo) от которого будем запускать демон в группу video

Настроем запуск демона при перезагрузке

добавим строчку в конец

где 1280x720 - разрешение нашей камеры 8181 - порт вебсервера

Итого: вебинтерфейс камеры http://ip-adres:8181; видео: http://ip-adres:8181/?action=stream; фото: http://ip-adres:8181/?action=snapshot

Если нет картинки то читаем пост тут: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=97983&start=25

Настройка HTTPS (Через nginx прокси)

Ставим nginx и openssl:

Создадим директорию где будем хранить сертификаты:

Перейдем в эту директорию и сгенерируем сертификат:

При генерации вас попросят указать некоторые данные, так как мы создаем сертификат для себя то заполнять их не обязательно. Но, если мы хотим использовать полученный сертификат для общения с другими сайтами, необходимо заполнить поле CN именем (или IP адресом) своего сервера, например так:

Настроим https прокси для MD с использованием нашего сертификата: (Тут предполагается, что MD крутится на этой-же машине, на 80 порту. Если нет, то пишем нужное в строке proxy_pass http://localhost:80/) Для этого приводим файл /etc/nginx/sites-enabled/default к следующему виду:

Перезапускаем nginx

Пробуем зайти к себе на сайт по https 🙂

Можно не генерировать самоподписанный сертификат, а взять бесплатный, например у StartSSL(как это сделать написано тут) или у WoSign(как это сделать написано тут)

Если не выполняются onNewMinute и onNewHour

Нужно проверить настройку BASE_URL в config.php. Если Вы используете домен, а не IP, тогда добавьте в файл /etc/hosts строку вида:

Где domain.com - это Ваш домен который Вы используете. Комментарий Сергея с форума: Дело в том, что эти методы вызываются через внутреннюю функцию raseEvent, которая обращается к серверу через HTTP-запрос используя BASE_URL. Если он неправильный, то метод не вызовется.

Полезные темы на форуме:

  1. Для быстрой установки необходимых атрибутов можно воспользоваться данным скриптом.
  2. Установка на Ubuntu
  3. Установка Системы Majordomo на Raspberry pi
  4. Установка на FreeBSD
  5. [РЕШЕНО] Проблема с установкой и настройкой на Ubuntu 13.04
  6. Установка на Debian подробная инструкция
  7. CubieBoard - попытка №1

 

Поделитесь в соц сетях

Теги:

 

 

18 thoughts on - Как установить MajorDoMo на Linux?

  • "Возможные проблемы."
    Проверил AllowOverride All, добавил в apache2.conf строку LoadModule rewrite_module modules/mod_rewrite.so, проконтролировал наличие этого файла, не запускается никак. localhost грузит страницу apache, localhost/popup/first_start.html грузит 404.

  • у меня при установке SQL пароль не спрашивал.
    при установке PHP установил. теперь при входе в phpmyadmin данный пароль не принимает. как изменить пароль?

      • Установил на зерошку. Под рутом и mysql не пускает в phpmyadmin. Пускает пользователя 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

Комментарий