Установка и настройка умного дома Majordomo на Linux Ubuntu
Тематические термины: умный дом, Linux, Ubuntu
Подготовка
Настройка веб-сервера
Установка Apache
Apache + PHP
База данных
Установка и настройка MajorDoMo
MajorDoMo
Настройка PHP
Настройка Apache
Настройка MySQL
Веб установка
Автозапуск
Подготовка сервера
Обновляем список пакетов:
apt update
Устанавливаем обновления:
apt upgrade
Настройка веб-сервера
Управление умным домом от Majordomo осуществляется с помощью веб-интерфейса и для его работы необходим веб-сервер.
Установка Apache
Устанавливаем веб-сервер Apache и дополнительные компоненты:
apt install apache2 apache2-bin apache2-data apache2-utils
Разрешаем автозапуск apache и стартуем сервис:
systemctl enable apache2
systemctl start apache2
Открываем браузер и вводим IP-адрес сервера — мы должны увидеть страницу Apache по умолчанию:
Apache + PHP
Устанавливаем php и дополнительные компоненты:
libapache2-mod-php libapache2-mod-php php-bz2 php-cli php-common php-curl php-gd php-json php-mbstring php-mysql php7.2-opcache php-readline php-xml php-dev libmcrypt-dev gcc make autoconf libc-dev pkg-config
Устанавливаем компонент mcrypt:
pecl install mcrypt-1.0.1
Включаем компонент mcrypt в Apache:
vi /etc/php/7.2/apache2/conf.d/mcrypt.ini
extension=mcrypt.so
Разрешаем модуль rewrite для apache:
a2enmod rewrite
Перезапускаем apache:
systemctl restart apache2
Для проверки, удаляем index.html, создаем index.php:
rm /var/www/html/index.html
vi /var/www/html/index.php
<?php phpinfo(); ?>
Снова в браузере открываем страницу сервера — мы должны увидеть страницу информации о PHP:
СУБД
Устанавливаем сервер баз данных MySQL с необходимыми компонентами:
apt install 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 php-mysql
Перезапускаем apache:
systemctl restart apache2
Включаем автозапуск mysql и запускаем демона:
systemctl enable mysql
systemctl start mysql
Задаем пароль для root пользователя MySQL:
mysqladmin -u root password
Установка и настройка MajorDoMo
MajorDoMo
Устанавливаем git:
apt install git
Скачиваем установочный пакет:
git clone https://github.com/sergejey/majordomo.git
Переносим каталог majordomo в каталог веб-сервера:
mv majordomo /var/www/
Воспользуемся шаблоном конфигурационного файла:
cp /var/www/majordomo/config.php.sample /var/www/majordomo/config.php
Настроим подключение к базе данных:
vi /var/www/majordomo/config.php
Define('DB_HOST', 'localhost');
Define('DB_NAME', 'majordomo');
Define('DB_USER', 'majordomo');
Define('DB_PASSWORD', 'majordomo123');
* где DB_NAME majordomo — имя базы данных; DB_USER majordomo — учетная запись; DB_PASSWORD majordomo123 — пароль для учетной записи mysql.
Задаем права:
chown -R www-data:www-data /var/www/majordomo
Настройка PHP
Настраиваем php.ini для apache:
vi /etc/php/7.2/apache2/php.ini
short_open_tag = On
max_execution_time = 90
max_input_time = 180
post_max_size = 200M
upload_max_filesize = 50M
max_file_uploads = 150
Настраиваем php.ini для unix shell:
vi /etc/php/7.2/cli/php.ini
short_open_tag = On
Настройка Apache
Настраиваем виртуальный домен:
vi /etc/apache2/sites-enabled/majordomo.conf
<VirtualHost *:80>
Define root_domain majordomo.dmosk.local
Define root_path /var/www/majordomo
ServerName ${root_domain}
DocumentRoot ${root_path}
<Directory ${root_path}>
AllowOverride All
</Directory>
</VirtualHost>
Проверяем конфигурацию apache и перезапускаем сервис:
apachectl configtest
systemctl restart apache2
Настройка MySQL
Подключаемся к MySQL:
mysql -uroot -p
Создаем базу данных и пользователя:
> CREATE DATABASE majordomo DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
> GRANT ALL PRIVILEGES ON majordomo.* TO majordomo@localhost IDENTIFIED BY 'majordomo123' WITH GRANT OPTION;
> \q
Импортируем базу данных:
mysql -v -u root -p majordomo < /var/www/majordomo/db_terminal.sql
Веб установка
Запускаем скрипт в консоли:
php /var/www/majordomo/cycle.php
В браузере открываем сервер по настроенному виртуальному домену (в нашем случае, majordomo.dmosk.local) — в открывшемся окне выбираем русский язык и нажимаем Continue:
Готово.
Автозапуск
Чтобы система стартовала автоматически после перезагрузки компьютера, создаем новый юнит в systemd:
vi /etc/systemd/system/majordomo.service
[Unit]
Description=MajorDoMo
[Service]
Requires=mysql.service
Requires=apache2.service
Type=simple
WorkingDirectory=/var/www/majordomo
ExecStart=/usr/bin/php /var/www/majordomo/cycle.php
Restart=always
[Install]
WantedBy=multi-user.target
Перезапускаем systemd:
systemctl daemon-reload
Разрешаем автозапуск majordomo и стартуем его:
systemctl enable majordomo
systemctl start majordomo