Установка MajorDoMo на Ubuntu Server 18.04 LTS

Начну с того, что меня заинтересовала тематика умного дома. Почитав и опробовав несколько реализаций пришел к выводу, что наиболее подходящей системой управления для меня является Majordomo. Сначала был приобретен девайс под названием raspberry pi 3. Под него уже существовал готовый образ и первые эксперименты были проведены именно на нем. Но с течением времени понадобилось установить систему уже на полноценный компьютер. В интернете по ссылке была найдена инструкция по которой всё и делалось, но с маленькими поправками и установкой на более свежую версию Ubuntu.
Итак, приступим.
1). Устанавливаем Ubuntu 18.04 LTS, желательно с официального сайта. Делаем update и upgrade sudo apt-get update -y
sudo apt-get upgrade -y
2). Установим требуемые пакеты sudo apt-get install apache2 libapache2-mod-php mysql-client-5.7 mysql-server php-mysql dbconfig-mysql phpmyadmin mplayer pulseaudio alsa alsa-tools mc -y используемый web-сервер выбираем apache2.

3). Создаем симлинк для PHPMyAdmin
sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin 4). Включаем мод rewrite для Apache sudo a2enmod rewrite 5). Скачиваем систему MajorDoMo с GitHab cd /usr/src
sudo git clone https://github.com/sergejey/majordomo.git
6). Переносим систему в директорию WEB-сервера sudo cp -rp /usr/src/majordomo/* /var/www
sudo cp -rp /usr/src/majordomo/.htaccess /var/www
7). Создаем конфигурационный файл для системы sudo cp /var/www/config.php.sample /var/www/config.php 8). Назначаем права и владельца для директории с системой sudo chown -R www-data:www-data /var/www
find /var/www/ -type f -exec sudo chmod 0666 {} \;
find /var/www/ -type d -exec sudo chmod 0777 {} \;
9). Добавляем пользователя www-data в группу audio sudo usermod -a -G audio www-data 10). Далее необходимо создать файл описание сервиса для запуска основного цикла системы
sudo nano /etc/systemd/system/majordomo.service
С содержанием:
[Unit]
Description=MajorDoMo

[Service]
Requires=mysql.service
Requires=apache2.service
Type=simple
WorkingDirectory=/var/www
ExecStart=/usr/bin/php /var/www/cycle.php
Restart=always

[Install]
WantedBy=multi-user.target
11). Так же необходимо отключить режим "Strict mode" для MySQL
Для этого создадим конфигурационный файл
sudo nano /etc/mysql/conf.d/disable_strict_mode.cnf
в который добавим следующие строки: [mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
12). Теперь перейдем к настройке Apache:
sudo nano /etc/apache2/apache2.conf
и меняем все строки
AllowOverride None
на
AllowOverride All
А так же в самом конце добавляем строку:
ServerName localhost

13). Далее отредактируем файл с описанием нашего сервера
sudo nano /etc/apache2/sites-available/000-default.conf
исправим корневую папку на с /var/www/html на /var/www

14). Перейдем к настройке PHP для Apache.
sudo nano /etc/php/7.0/apache2/php.ini
Меняем следующие параметры: short_open_tag = Off на On
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT на E_ALL & ~E_NOTICE
max_execution_time = 30 на 90
max_input_time = 60 на 180
post_max_size = 8M на 200M
upload_max_filesize = 2M на 50M
max_file_uploads = 20 на 150
15).Настроим PHP для коммандной строки:
Меняем следующие параметры: short_open_tag = Off на On 16). Обновляем и перезапускаем службы
sudo systemctl daemon-reload
sudo apache2ctl restart
sudo service mysql restart
17). Добавляем главный цикл системы в автозагрузку
sudo systemctl enable majordomo

18). Настраиваем подключение к БД для системы sudo sed -i "/DB_USER/s/'root'/'majordomo'/" /var/www/config.php
sudo sed -i "/DB_PASSWORD/s/''/'passwd'/" /var/www/config.php
19). Создаем БД db_terminal и импортируем содержимое из дистрибутива
sudo mysql CREATE USER 'majordomo'@'localhost' IDENTIFIED BY 'passwd';
GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
CREATE DATABASE db_terminal;
USE db_terminal;
mysql -u majordomo -ppasswd db_terminal < /var/www/db_terminal.sql
20). Запускаем основной цикл
sudo systemctl start majordomo

21). Изменяем настройки PulseAudio для устранения заиканий
sudo nano /etc/pulse/daemon.conf
high-priority = no
nice-level = -1
realtime-scheduling = yes
realtime-priority = 5
flat-volumes = no
resample-method = speex-float-1
default-sample-rate = 48000
default-fragments = 4
default-fragment-size-msec = 25
22). Устанавливаем RHVoice
sudo apt-get install gcc g++ git pkg-config scons libao4 libao-common libao-dev -y
cd /usr/src
sudo git clone https://github.com/Olga-Yakovleva/RHVoice
cd RHVoice
sudo scons
sudo scons install
sudo ldconfig
Система готова к работе, но желательно все же перезапустить железо коммандой
sudo shutdown -r now

Скрипт для автоматической установки

Для тех кто не хочет всё вышеописанное делать вручную, можно просто выполнить 3 строчки кода. wget http://avcor.ru/files/majordomo.sh
chmod +x majordomo.sh
./majordomo.sh