Итак, настал новый 2018 год и в этом году будут такие же интересные заметки, как и в прошлом. Сегодня я хочу показать, как развернуть систему умного дома MajorDoMo на систему Ubuntu в частности релиз Ubuntu Xenial Server amd64. В настоящее время я использую MajorDoMo на Ubuntu Trusty Server на HP MicroServer Gen8 и мне этого хватает с головой, как по мощности так и удобству управления.

Ладно ниже пошаговые шаги, как установить MajorDoMo на Ubuntu Xenial Server amd64:

Работает!

ekzorchik@srv-xenial:~$ sudo rm -Rf /var/lib/apt/lists

ekzorchik@srv-xenial:~$ sudo nano /etc/default/apport

enabled=0

ekzorchik@srv-xenial:~$ sudo nano /etc/update-manager/release-upgrades

Prompt=never

ekzorchik@srv-xenial:~$ sudo apt-get update && sudo apt-get upgrade -y

ekzorchik@srv-xenial:~$ sudo rm -f /etc/localtime

ekzorchik@srv-xenial:~$ sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

ekzorchik@srv-server:~$ sudo apt-get install ntpdate -y

ekzorchik@srv-server:~$ sudo ntpdate -s 0.pool.ntp.org

ошибок быть не должно

ekzorchik@srv-server:~$ sudo crontab -e

@reboot /usr/sbin/ntpdate -s 0.pool.ntp.org > /dev/null

ekzorchik@srv-server:~$ sudo nano /etc/profile

export LC_ALL="en_US.UTF-8"

ekzorchik@srv-server:~$ source /etc/profile

ekzorchik@srv-xenial:~$ sudo reboot

ekzorchik@srv-xenial:~$ sudo apt-get install apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php libapache2-mod-php7.0 php7.0-bz2 php7.0-cli php7.0-common php7.0-curl php7.0-gd php7.0-json php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-readline php7.0-xml dbconfig-mysql mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server mysql-server-5.7 mysql-server-core-5.7 php-mysql php7.0-mysql git -y

New password for the MySQL "root" user: 712mbddr@

Repeat password for the MySQL "root" user: 712mbddr@

ekzorchik@srv-xenial:~$ sudo nano /etc/apache2/apache2.conf

ServerName srv-xenial

Включаю модуль Apache 2:

ekzorchik@srv-xenial:~$ sudo a2enmod rewrite

Загружаю сервис MajorDoMo с GIT аккаунта автора:

ekzorchik@srv-xenial:~$ git clone https://github.com/sergejey/majordomo.git

ekzorchik@srv-xenial:~$ sudo mv majordomo/* /var/www/

ekzorchik@srv-xenial:~$ sudo cp majordomo/.htaccess /var/www/

Затем создаю базу пользователя и пароль под сервис MajorDoMo:

ekzorchik@srv-server:~$ mysql -u root -p712mbddr@ -e "create database db_terminal character set utf8"

mysql: [Warning] Using a password on the command line interface can be insecure.

ekzorchik@srv-server:~$ mysql -u root -p712mbddr@ db_terminal < /var/www/db_terminal.sql

ekzorchik@srv-server:~$ mysql -u root -p712mbddr@ -e "create user 'us_majordomo'@'localhost' identified by '612mbddr@'"

ekzorchik@srv-server:~$ mysql -u root -p712mbddr@ -e "grant all on db_terminal.* to 'us_majordomo'@'localhost';"

ekzorchik@srv-server:~$ mysql -u root -p712mbddr@ -e "flush privileges;"

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

ekzorchik@srv-xenial:~$ sudo cp /var/www/config.php.sample /var/www/config.php

ekzorchik@srv-xenial:~$ sudo nano /var/www/config.php

Define('DB_HOST', 'localhost');

Define('DB_NAME', 'db_terminal');

Define('DB_USER', 'us_majordomo');

Define('DB_PASSWORD', '612mbddr@');

Так же необходимо отключить режимStrict mode” для MySQL

ekzorchik@srv-xenial:~$ 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

ekzorchik@srv-xenial:~$ sudo nano /etc/apache2/apache2.conf

Search (to replace): AllowOverride None

Replace with: AllowOverride All

Replace this instance? A

ekzorchik@srv-xenial:~$ sudo nano /etc/apache2/sites-available/000-default.conf

#DocumentRoot /var/www/html

DocumentRoot /var/www

ekzorchik@srv-xenial:~$ sudo nano /etc/php/7.0/apache2/php.ini

short_open_tag = On

error_reporting = E_ALL & E_NOTICE & ~E_DEPRECATED & ~E_STRICT

max_execution_time = 300

max_input_time = 180

post_max_size = 200M

upload_max_filesize = 50M

max_file_uploads = 150

и в этом файле проделываем точно такие же настройки: ekzorchik@srv-xenial:~$ sudo nano /etc/php/7.0/cli/php.ini

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

ekzorchik@srv-xenial:~$ 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

ekzorchik@srv-xenial:~$ sudo chmod +x /etc/systemd/system/majordomo.service

Теперь перезапускаю:

ekzorchik@srv-xenial:~$ sudo systemctl daemon-reload

ekzorchik@srv-xenial:~$ sudo systemctl enable majordomo.service

ekzorchik@srv-xenial:~$ sudo systemctl start majordomo.service

ekzorchik@srv-xenial:~$ sudo systemctl status majordomo.service

majordomo.service - MajorDoMo

Loaded: loaded (/etc/systemd/system/majordomo.service; enabled; vendor preset: enable

Active: active (running) since Tue 2017-12-19 15:41:00 MSK; 2s ago

Main PID: 2249 (php)

Tasks: 1

Memory: 6.4M

CPU: 56ms

CGroup: /system.slice/majordomo.service

└─2249 /usr/bin/php /var/www/cycle.php

Dec 19 15:41:00 srv-xenial systemd[1]: Started MajorDoMo.

Dec 19 15:41:00 srv-xenial php[2249]: Connecting to database...

ekzorchik@srv-xenial:~$ sudo apache2ctl restart

ekzorchik@srv-xenial:~$ sudo find /var/www/ -type d -exec chmod 0777 {} \;

ekzorchik@srv-xenial:~$ sudo find /var/www/ -type f -exec chmod 0666 {} \;

ekzorchik@srv-xenial:~$ sudo chown -R www-data:www-data /var/www/

ekzorchik@srv-server:~$ sudo crontab -e

@reboot /usr/bin/php /var/www/cycle.php

ekzorchik@srv-xenial:~$ sudo reboot

Заработало.

Сервис MajorDoMo успешно установлен на Ubuntu Xenial Server

 

На этом у меня всё, с уважением Олло Александр aka ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru