<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://mdminfo.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Newz20</id>
	<title>MajorDoMo инфо - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://mdminfo.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Newz20"/>
	<link rel="alternate" type="text/html" href="https://mdminfo.ru/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Newz20"/>
	<updated>2026-06-02T10:00:41Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_Linux&amp;diff=1891</id>
		<title>Установка на Linux</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_Linux&amp;diff=1891"/>
		<updated>2023-05-23T08:52:31Z</updated>

		<summary type="html">&lt;p&gt;Newz20: /* Альтернативные варианты */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Установка]]&lt;br /&gt;
&lt;br /&gt;
==Альтернативные варианты==&lt;br /&gt;
[[installmd|Скрипт installmd, установка почти на все виды плат и полноценный Linux]]&lt;br /&gt;
&lt;br /&gt;
[https://mjdm.ru/forum/viewtopic.php?f=3&amp;amp;p=92843#p92843 Скрипт установки на Ubuntu Server 18, 20, 22 и Mint 19, 20, 21]&lt;br /&gt;
&lt;br /&gt;
== Внимание!!! ==&lt;br /&gt;
&lt;br /&gt;
''Инструкция была написана под операционную систему Ubuntu 18.10 и тестировалась только на ней!&lt;br /&gt;
В случае если у Вас установлена другая операционная система Linux то возможно, на каком-то из шагов, у Вас возникнут ошибки. В данном случае, рекомендуется сообщить об этих ошибках в чат в [https://t.me/MajorDoMoRu Telegram] или же на [https://majordomo.smartliving.ru/forum/ форум].''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Перед началом работы необходимо убедиться что в системе установлен пакет sudo.&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Для этого нужно выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если в ответ будет отображено сообщение подобного плана:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;bash: sudo: command not found&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это будет обозначать, что пакет sudo по умолчанию не установлен в Вашей ОС. Потому его необходимо установить.&lt;br /&gt;
&lt;br /&gt;
Для это необходимо выполнить следующие команды:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет запрошен пароль пользователя от которого выполняется команда. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; При вводе пароля символы не будут отображены на экране!&lt;br /&gt;
&lt;br /&gt;
После успешного ввода пароля, в случае если вид консоли изменился и принял подобный вид:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;root@localhost:~#&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Производится установка sudo командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;apt install sudo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После успешной установки пакета, необходимо добавить пользователя, от которого будет производиться установка, в группу sudo. Это делается командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;usermod -aG sudo USERNAME&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
USERNAME - это имя пользователя. Для Raspberry PI это обычно пользователь: pi.&lt;br /&gt;
По завершении этих действий, необходимо выйти в окружение обычного пользователя. Это выполняется командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем необходимо перелогиниться, для этого введем&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo service systemd-logind restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Приглашающее сообщение в консоли, должно принять подобный вид:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;pi@localhost:~$&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы разворачиваете сервер  на ноутбуке вам пригодится отключение режима засыпания при закрытии крышки.&lt;br /&gt;
для этого набираем&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/systemd/logind.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Находим строчку ''#HandleLidSwitch=suspend'' и меняем её на&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;HandleLidSwitch=ignore&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И опять же  перелогиниться&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo service systemd-logind restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Обновление кеша пакетов и обновление установленных пакетов (в случае если для них есть обновления)==&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
Установим ещё пару приложений которые будем использовать в процессе установки&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install nano wget unzip -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем SSH==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install openssh-server openssh-client -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем MySQL==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install mysql-server mysql-client -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните. Этот пароль понадобится в дальнейшем.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; Если установщик не запросил пароль, то выполните в консоли команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И пройдите по всем шагам. И в этих шагах укажите пароль пользователя root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt; в качестве альтернативы MySQL по умолчанию используется форк проекта, MariaDB, который поддерживается сообществом.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install mariadb-server -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Создание пользователя и БД MySQL:==&lt;br /&gt;
&lt;br /&gt;
Для начала создадим БД командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;CREATE DATABASE db_terminal;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После выполнения этой команды, и далее по параграфу, MySQL будет просить ввести пароль пользователя root, который мы указывали выше. Вводим его где будет необходимо и нажимаем Enter.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; При вводе пароля символы не будут отображены на экране.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее создаём пользователя для работы с этой БД:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
password - необходимо заменить на ваш пароль, который тоже необходимо запомнить. Этот пароль будет использоваться для работы MajorDoMo с БД, а так же для входа в phpMyAdmin ниже по инструкции.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; Рекомендуется использовать сложный пароль, так как в случае если будет открыт доступ к MajorDoMo и phpMyAdmin извне, то есть вероятность того, что простой пароль будет взломан и тот, кто это сделает, сможет получить доступ к важным данным в Вашей MajorDoMo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для предоставления только что созданному пользователю привилегий, необходимо выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И в завершение, необходимо обновить привилегии:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Установка WEB сервера==&lt;br /&gt;
&lt;br /&gt;
В качестве web сервера можно установить разные пакеты. В данном случае рассматривается вариант установки Apache.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install apache2 apache2-utils -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правим конфиг Апача&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/apache2/sites-available/default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если такого файла нет, он может называться по-другому. Например:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом файле находим раздел:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;lt;Directory /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И заменяем во всех совпадениях&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;AllowOverride None&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
на&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;AllowOverride All&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняемся и выходим: Ctrl-O Ctrl-X&lt;br /&gt;
&lt;br /&gt;
В более новых версиях Apache конфигурационный файл может не содержать директив &amp;quot;AllowOverride&amp;quot;. В таком случае необходимо вручную привести файл к виду:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  &amp;lt;Directory /&amp;gt;&lt;br /&gt;
    Options FollowSymLinks&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
  &amp;lt;Directory /var/www/html&amp;gt;&lt;br /&gt;
    Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    allow from all&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/usr/lib/cgi-bin&amp;quot;&amp;gt;&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    Allow from all&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удаляем стандартный index.html файл командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo rm -f /var/www/html/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И перезапускаем Апач:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если при перезапуске выдаст примерно такой ответ:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То необходимо поправить apache2.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/apache2/apache2.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вставив в него такую строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ServerName localhost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняемся и выходим: Ctrl-O Ctrl-X&lt;br /&gt;
&lt;br /&gt;
Перезапускаем Апач&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если ваша версия Apache отличается от рассматриваемой, то пути к файлам конфигурации могут быть такими:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/apache2/sites-available/default.conf&lt;br /&gt;
sudo nano /etc/apache2/httpd.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем PHP==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install php7.3 php7.3-cgi php7.3-cli php7.3-pear php7.3-mysql php7.3-mbstring php7.3-xml -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
curl и его библиотеки:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install curl libcurl3 libcurl3-dev php7.3-curl -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install curl libcurl4 libcurl3-dev php7.3-curl -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для apache&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install libapache2-mod-php7.3 -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для последних версий Апача необходимо включить работу с коротким тегом &amp;lt;? /?&amp;gt; для этого откройте файл php.ini командой: (внимательно смотрите какая версия PHP установилась у вас, и поменяйте 7.3 на свои версии. здесь и далее по инструкции)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/apache2/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо заменить или вставить строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;short_open_tag = On&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем PHPMYADMIN==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install phpmyadmin -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Установщик изначально спросит о том, к какой версии web сервера необходимо произвести настройку. Необходимо выбрать версию apache2 путём нажатия пробела и Enter.&lt;br /&gt;
&lt;br /&gt;
Установщик спросит необходимость конфигурирования баз данных при помощи &amp;quot;dbconfig-common&amp;quot;. Отвечаем утвердительно путём нажатия Enter.&lt;br /&gt;
&lt;br /&gt;
Далее установщик спрашивает пароль MySQL сервера. Этот пароль задавался в разделе &amp;quot;Устанавливаем MySQL&amp;quot; данного руководства. Вводим указанный пароль и подтверждаем его ещё раз.&lt;br /&gt;
&lt;br /&gt;
==Включаем mod_rewrite==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo a2enmod rewrite&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перезапускаем Апач&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin не включен в репозиторий программного обеспечения Debian 10, поэтому мы должны загрузить его с phpmyadmin.net&lt;br /&gt;
&lt;br /&gt;
Установим необходимые компоненты:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt install php7.3-mbstring php7.3-zip php7.3-gd wget -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;cd /tmp&lt;br /&gt;
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
или вставляем ссылку на последнюю версию с сайта https://www.phpmyadmin.net/downloads/&lt;br /&gt;
&lt;br /&gt;
Распаковываем, копируем в /usr/share/phpmyadmin и назначаем права:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unzip phpMyAdmin-5.1.1-all-languages.zip&lt;br /&gt;
sudo mv phpMyAdmin-5.1.1-all-languages/ /usr/share/phpmyadmin&lt;br /&gt;
sudo chown -R www-data:www-data /usr/share/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь нам нужно войти в консоль MariaDB и создать базу данных и пользователя для phpMyAdmin.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mysql -u root&lt;br /&gt;
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'your_preferred_password';&lt;br /&gt;
grant all privileges on *.* to admin@localhost with grant option;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Где '''your_preferred_password''' будет пароль для входа в phpMyAdmin&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl restart apache2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создайте файл phpmyadmin.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/apache2/conf-available/phpmyadmin.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вставьте следующий текст в файл phpmyadmin.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# phpMyAdmin default Apache configuration&lt;br /&gt;
&lt;br /&gt;
Alias /phpmyadmin /usr/share/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin&amp;gt;&lt;br /&gt;
    Options SymLinksIfOwnerMatch&lt;br /&gt;
    DirectoryIndex index.php&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;IfModule mod_php5.c&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_mime.c&amp;gt;&lt;br /&gt;
            AddType application/x-httpd-php .php&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.+\.php$&amp;quot;&amp;gt;&lt;br /&gt;
            SetHandler application/x-httpd-php&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        php_value include_path .&lt;br /&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp&lt;br /&gt;
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/&lt;br /&gt;
        php_admin_value mbstring.func_overload 0&lt;br /&gt;
    &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
    &amp;lt;IfModule mod_php.c&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_mime.c&amp;gt;&lt;br /&gt;
            AddType application/x-httpd-php .php&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.+\.php$&amp;quot;&amp;gt;&lt;br /&gt;
            SetHandler application/x-httpd-php&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        php_value include_path .&lt;br /&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp&lt;br /&gt;
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/&lt;br /&gt;
        php_admin_value mbstring.func_overload 0&lt;br /&gt;
    &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Disallow web access to directories that don't need it&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/templates&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/libraries&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/setup/lib&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для сохранения нажмите CTRL+O ENTER для выхода CTRL+X&lt;br /&gt;
&lt;br /&gt;
Включим этот фрагмент конфигурации:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enconf phpmyadmin.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаем временную папку:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir -p /var/lib/phpmyadmin/tmp&lt;br /&gt;
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перезагрузите Apache, чтобы изменения вступили в силу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаём файл config.inc.php из примера:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо задать парольную фразу, открываем файл config.inc.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /usr/share/phpmyadmin/config.inc.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ищем строчку '''$cfg['blowfish_secret']''' и задаём между кавычками какую-нибудь парольную фразу  длиннее 32-х символов, например,&lt;br /&gt;
&amp;lt;pre&amp;gt;$cfg['blowfish_secret'] = '12345678901234567890123456789012'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так-же сохраняем CTRL+O ENTER и выходим CTRL+X&lt;br /&gt;
Теперь вы можете получить доступ к веб-интерфейсу phpMyAdmin по адресу, введя имя 'admin' и пароль 'your_preferred_password', которые задали на шаге при создании базы данных и пользователя для phpMyAdmin:&lt;br /&gt;
&amp;lt;pre&amp;gt;http://ip_адрес/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в панели управления phpMyAdmin вы можете увидеть предупреждающее сообщение.&lt;br /&gt;
&lt;br /&gt;
[[Файл:PhpMyAdmin не полностью настроено.png|центр]]&lt;br /&gt;
&lt;br /&gt;
Переходим по ссылке &amp;quot;Узнайте причину&amp;quot;.&lt;br /&gt;
Видим сообщение:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Создать базу данных с именем.png|центр]]&lt;br /&gt;
&lt;br /&gt;
Переходим по ссылке &amp;quot;Создать&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройка PHP==&lt;br /&gt;
&lt;br /&gt;
В обоих конфигурационных файлах для web сервера:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/apache2/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И файл запуска php скриптов из командной строки:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/cli/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Строку error_reporting привести к виду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;error_reporting  =  E_ALL &amp;amp; ~E_NOTICE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А так же строки:&lt;br /&gt;
&amp;lt;pre&amp;gt;max_execution_time - С 30 меняем на 90&lt;br /&gt;
max_input_time - С 60 на 180&lt;br /&gt;
post_max_size - С 8M на 200M&lt;br /&gt;
upload_max_filesize - С 2M на 50M&lt;br /&gt;
max_file_uploads - С 20 на 150&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для применения изменений, необходимо перезапустить Apache:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем MajorDoMo==&lt;br /&gt;
&lt;br /&gt;
Скачиваем дистрибутив Majordomo, разархивируем и копируем содержимое majordomo-master в директорию /var/www/html:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/majordomo&lt;br /&gt;
cd ~/majordomo&lt;br /&gt;
wget https://github.com/sergejey/majordomo/archive/master.zip&lt;br /&gt;
unzip master.zip&lt;br /&gt;
sudo cp -rp ~/majordomo/majordomo-master/* /var/www/html&lt;br /&gt;
sudo cp -rp ~/majordomo/majordomo-master/.htaccess /var/www/html&lt;br /&gt;
rm -rf ~/majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройка прав на файлы и директории&lt;br /&gt;
&lt;br /&gt;
Установка рекомендуемых прав выполняется следующими командами:&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type f -exec chmod 0644 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type d -exec chmod 0755 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем права командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Права будут выглядеть подобно:&lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;drwxr-xr-x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-r--r--&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Установка собственника и группы на файлы и директории&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Majordomo (а именно сервисы: apache и php) работает от пользователя www-data. Права доступа к каталогу /var/www/html, где лежат файлы Majordomo по умолчанию принадлежат root. Изменим владельца директории /var/www/html на www-data.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo chown -R www-data:www-data /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вывод должен быть подобный:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-r--r--  1 www-data www-data  12K May 26 22:19 cycle.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо предоставить доступ пользователю www-data к медиа устройствам. Для этого его необходимо добавить в группу audio.&lt;br /&gt;
&lt;br /&gt;
Это делается командой usermod:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo usermod -a -G audio www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем, что он появился в группе:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;cat /etc/group | grep audio&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, то вывод будет подобный:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;audio:x:29:www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;''Дальнейшие команды в этом разделе нужно использовать только в случае если у Вас по какой-то причине система не работает совсем или не работает частично.''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;В большинстве случаев на моменте начального конфигурирования, проблемы с системой возникают из-за неправильно установленных прав.&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Меняем права доступа к файлам по принципу: всем-всё.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type f -exec chmod 0666 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И директориям&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type d -exec chmod 0777 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем права командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Права будут выглядеть подобно: &lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;drwxrwxrwx&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-rw-rw-&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если права по какой-то причине не установились, то можно сделать вариант в котором устанавливаются полные права для всех рекурсивно по директориям и файлам. &lt;br /&gt;
&lt;br /&gt;
Команда выглядит так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo chmod -R 777 /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо заметить, что данный способ, не самый безопасный, но самый простой.&lt;br /&gt;
&lt;br /&gt;
==Импорт базы данных==&lt;br /&gt;
&lt;br /&gt;
Заходим по адресу:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/phpmyadmin4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При входе будет запрошен логин, его необходимо указать как: majordomo, и пароль который который был задан на шаге: &amp;quot;Создание пользователя и БД MySQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В созданную ранее БД необходимо импортировать файл db_terminal.sql из директории с дистрибутивом. Скачать его можно по ссылке: [https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql db_termina.sql]. Для скачивания нажмите правой кнопкой мыши на ссылку и выберите: &amp;quot;Сохранить ссылку как...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Далее выполняем последовательность действий в phpMyAdmin для импорта sql файла.&lt;br /&gt;
&lt;br /&gt;
* В левой части окна выбрать БД db_terminal, путём нажатия один раз на её название.&lt;br /&gt;
* В верхней части окна найти кнопку &amp;quot;Импорт&amp;quot;.&lt;br /&gt;
* В загрузившейся странице, в разделе &amp;quot;Импортируемый файл&amp;quot; нажать &amp;quot;Выберите файл&amp;quot; или &amp;quot;Обзор&amp;quot;.&lt;br /&gt;
* В открывшемся окне, выбрать ранее сохраненный файл &amp;quot;db_terminal.sql&amp;quot;.&lt;br /&gt;
* В нижней части окна нажать &amp;quot;Вперёд&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Импорт db terminal успешно завершён.png|мини|слева]]&lt;br /&gt;
После успешного импорта должна отобразится зелёная строка с подобным текстом:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;Импорт успешно завершён, выполнено 192 запроса. (db_terminal.sql)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если возникли проблемы с импортом БД используя phpMyAdmin, есть возможность импортировать дамп БД используя командную строку. Для этого скачайте дамп файл командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo wget -O /tmp/db_terminal.sql https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И импортируйте его:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -umajordomo -p db_terminal &amp;lt; /tmp/db_terminal.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет запрошен пароль пользователя majordomo, который был задан на шаге: &amp;quot;[[Установка_на_Linux#Создание пользователя и БД MySQL:|Создание пользователя и БД MySQL]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Правим основной конфиг==&lt;br /&gt;
&lt;br /&gt;
Изначально копируем пример конфига в рабочий конфиг:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp /var/www/html/config.php.sample /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Установим собственника и группу для конфига:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown www-data: /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И открываем конфиг для редактирования:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописываем имя пользователя и пароль пользователя БД. Для этого нужно исправить строки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Define('DB_USER', 'majordomo');&lt;br /&gt;
Define('DB_PASSWORD', '');&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
* '''DB_USER''' - пользователь majordomo который был создан на шаге: &amp;quot;Создание пользователя и БД MySQL&amp;quot;.&lt;br /&gt;
* '''DB_PASSWORD''' - пароль от этого пользователя, который был задан на том же шаге.&lt;br /&gt;
&lt;br /&gt;
Сохраняем файл, и выходим из редактора.&lt;br /&gt;
&lt;br /&gt;
Все, теперь можно зайти на веб интерфейс Majordomo.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 http://sever_ip/&lt;br /&gt;
&lt;br /&gt;
Если установка выполняется не на локальную машину.&lt;br /&gt;
&lt;br /&gt;
При первом входе должна быть отображена страница: &amp;quot;Hello, world! :)&amp;quot; на которой необходимо выбрать тайм зону, язык системы и цветовую тему. По завершении нажать кнопку &amp;quot;Continue&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В случае если такая страница не отобразилась, открыть её можно по ссылке:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/popup/first_start.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Основной цикл Вариант 1. Systemd unit. Предпочтительный==&lt;br /&gt;
&lt;br /&gt;
Код юнита:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Majordomo cycles service&lt;br /&gt;
Requires=network.target mysql.service apache2.service&lt;br /&gt;
After=mysql.service apache2.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=www-data&lt;br /&gt;
Group=www-data&lt;br /&gt;
ExecStart=/usr/bin/php /var/www/html/cycle.php&lt;br /&gt;
ExecStop=/usr/bin/pkill -f cycle_*&lt;br /&gt;
&lt;br /&gt;
KillSignal=SIGKILL&lt;br /&gt;
KillMode=control-group&lt;br /&gt;
RestartSec=1min&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данный код необходимо скопировать в файл: /etc/systemd/system/majordomo.service Для этого открываем файл:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/majordomo.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И вставляем в него код, который представлен выше.&lt;br /&gt;
&lt;br /&gt;
Для автозапуска MajorDoMo при старте системы, необходимо выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo systemctl enable majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И для запуска MajorDoMo необходимо выполнить:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo systemctl start majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Основной цикл Вариант 2. Если не сработал первый вариант==&lt;br /&gt;
&lt;br /&gt;
Запуск основного цикла добавляем в Cron, для пользователя www-data, так как файлы МД принадлежат этому пользователю.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo crontab -e -u www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В открывшемся окне добавляем строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;@reboot /usr/bin/php /var/www/html/cycle.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''И обязательно!''' ставим Enter для того чтобы в конце открытого файла был перенос строки.&lt;br /&gt;
&lt;br /&gt;
Сохраняем и перезапускаем компьютер:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После запуска циклов можно открыть MajorDoMo по адресу:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если MajorDoMo устанавливалась на локальный компьютер.&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://IP_ADDRESS/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если MajorDoMo устанавливалась на удалённый сервер.&lt;br /&gt;
&lt;br /&gt;
Если не выполняются onNewMinute и onNewHour&lt;br /&gt;
&lt;br /&gt;
Нужно проверить настройку BASE_URL в config.php. Если Вы используете домен, а не IP, тогда добавьте в файл /etc/hosts строку вида:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;127.0.0.1 domain.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где domain.com - это Ваш домен который Вы используете. Комментарий Сергея с форума: Дело в том, что эти методы вызываются через внутреннюю функцию raseEvent, которая обращается к серверу через HTTP-запрос используя BASE_URL. Если он неправильный, то метод не вызовется.&lt;br /&gt;
&lt;br /&gt;
На этом статья об установке MajorDoMo на Linux Ubuntu закончена.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Полезные темы на форуме==&lt;br /&gt;
&lt;br /&gt;
Для быстрой установки необходимых атрибутов можно воспользоваться [http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=2&amp;amp;start=10#p84 данным скриптом].&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=298 Установка на Ubuntu]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=573 Установка Системы Majordomo на Raspberry pi]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=371 Установка на FreeBSD]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=630 (РЕШЕНО) Проблема с установкой и настройкой на Ubuntu 13.04]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=424 Установка на Debian подробная инструкция]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=740 CubieBoard - попытка №1]&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_Linux&amp;diff=1890</id>
		<title>Установка на Linux</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_Linux&amp;diff=1890"/>
		<updated>2023-03-02T09:27:12Z</updated>

		<summary type="html">&lt;p&gt;Newz20: /* Устанавливаем PHP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Установка]]&lt;br /&gt;
&lt;br /&gt;
==Альтернативные варианты==&lt;br /&gt;
[[installmd|Скрипт installmd, установка почти на все виды плат и полноценный Linux]]&lt;br /&gt;
&lt;br /&gt;
[https://mjdm.ru/forum/viewtopic.php?f=3&amp;amp;p=92843#p92843 Скрипт установки на Ubuntu 16, 18 или 20]&lt;br /&gt;
&lt;br /&gt;
== Внимание!!! ==&lt;br /&gt;
&lt;br /&gt;
''Инструкция была написана под операционную систему Ubuntu 18.10 и тестировалась только на ней!&lt;br /&gt;
В случае если у Вас установлена другая операционная система Linux то возможно, на каком-то из шагов, у Вас возникнут ошибки. В данном случае, рекомендуется сообщить об этих ошибках в чат в [https://t.me/MajorDoMoRu Telegram] или же на [https://majordomo.smartliving.ru/forum/ форум].''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Перед началом работы необходимо убедиться что в системе установлен пакет sudo.&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Для этого нужно выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если в ответ будет отображено сообщение подобного плана:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;bash: sudo: command not found&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это будет обозначать, что пакет sudo по умолчанию не установлен в Вашей ОС. Потому его необходимо установить.&lt;br /&gt;
&lt;br /&gt;
Для это необходимо выполнить следующие команды:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет запрошен пароль пользователя от которого выполняется команда. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; При вводе пароля символы не будут отображены на экране!&lt;br /&gt;
&lt;br /&gt;
После успешного ввода пароля, в случае если вид консоли изменился и принял подобный вид:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;root@localhost:~#&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Производится установка sudo командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;apt install sudo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После успешной установки пакета, необходимо добавить пользователя, от которого будет производиться установка, в группу sudo. Это делается командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;usermod -aG sudo USERNAME&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
USERNAME - это имя пользователя. Для Raspberry PI это обычно пользователь: pi.&lt;br /&gt;
По завершении этих действий, необходимо выйти в окружение обычного пользователя. Это выполняется командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем необходимо перелогиниться, для этого введем&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo service systemd-logind restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Приглашающее сообщение в консоли, должно принять подобный вид:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;pi@localhost:~$&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы разворачиваете сервер  на ноутбуке вам пригодится отключение режима засыпания при закрытии крышки.&lt;br /&gt;
для этого набираем&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/systemd/logind.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Находим строчку ''#HandleLidSwitch=suspend'' и меняем её на&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;HandleLidSwitch=ignore&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И опять же  перелогиниться&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo service systemd-logind restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Обновление кеша пакетов и обновление установленных пакетов (в случае если для них есть обновления)==&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
Установим ещё пару приложений которые будем использовать в процессе установки&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install nano wget unzip -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем SSH==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install openssh-server openssh-client -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем MySQL==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install mysql-server mysql-client -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните. Этот пароль понадобится в дальнейшем.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; Если установщик не запросил пароль, то выполните в консоли команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И пройдите по всем шагам. И в этих шагах укажите пароль пользователя root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt; в качестве альтернативы MySQL по умолчанию используется форк проекта, MariaDB, который поддерживается сообществом.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install mariadb-server -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Создание пользователя и БД MySQL:==&lt;br /&gt;
&lt;br /&gt;
Для начала создадим БД командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;CREATE DATABASE db_terminal;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После выполнения этой команды, и далее по параграфу, MySQL будет просить ввести пароль пользователя root, который мы указывали выше. Вводим его где будет необходимо и нажимаем Enter.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; При вводе пароля символы не будут отображены на экране.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее создаём пользователя для работы с этой БД:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
password - необходимо заменить на ваш пароль, который тоже необходимо запомнить. Этот пароль будет использоваться для работы MajorDoMo с БД, а так же для входа в phpMyAdmin ниже по инструкции.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; Рекомендуется использовать сложный пароль, так как в случае если будет открыт доступ к MajorDoMo и phpMyAdmin извне, то есть вероятность того, что простой пароль будет взломан и тот, кто это сделает, сможет получить доступ к важным данным в Вашей MajorDoMo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для предоставления только что созданному пользователю привилегий, необходимо выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И в завершение, необходимо обновить привилегии:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Установка WEB сервера==&lt;br /&gt;
&lt;br /&gt;
В качестве web сервера можно установить разные пакеты. В данном случае рассматривается вариант установки Apache.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install apache2 apache2-utils -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правим конфиг Апача&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/apache2/sites-available/default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если такого файла нет, он может называться по-другому. Например:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом файле находим раздел:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;lt;Directory /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И заменяем во всех совпадениях&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;AllowOverride None&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
на&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;AllowOverride All&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняемся и выходим: Ctrl-O Ctrl-X&lt;br /&gt;
&lt;br /&gt;
В более новых версиях Apache конфигурационный файл может не содержать директив &amp;quot;AllowOverride&amp;quot;. В таком случае необходимо вручную привести файл к виду:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  &amp;lt;Directory /&amp;gt;&lt;br /&gt;
    Options FollowSymLinks&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
  &amp;lt;Directory /var/www/html&amp;gt;&lt;br /&gt;
    Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    allow from all&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/usr/lib/cgi-bin&amp;quot;&amp;gt;&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    Allow from all&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удаляем стандартный index.html файл командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo rm -f /var/www/html/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И перезапускаем Апач:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если при перезапуске выдаст примерно такой ответ:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То необходимо поправить apache2.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/apache2/apache2.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вставив в него такую строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ServerName localhost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняемся и выходим: Ctrl-O Ctrl-X&lt;br /&gt;
&lt;br /&gt;
Перезапускаем Апач&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если ваша версия Apache отличается от рассматриваемой, то пути к файлам конфигурации могут быть такими:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/apache2/sites-available/default.conf&lt;br /&gt;
sudo nano /etc/apache2/httpd.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем PHP==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install php7.3 php7.3-cgi php7.3-cli php7.3-pear php7.3-mysql php7.3-mbstring php7.3-xml -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
curl и его библиотеки:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install curl libcurl3 libcurl3-dev php7.3-curl -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install curl libcurl4 libcurl3-dev php7.3-curl -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для apache&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install libapache2-mod-php7.3 -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для последних версий Апача необходимо включить работу с коротким тегом &amp;lt;? /?&amp;gt; для этого откройте файл php.ini командой: (внимательно смотрите какая версия PHP установилась у вас, и поменяйте 7.3 на свои версии. здесь и далее по инструкции)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/apache2/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо заменить или вставить строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;short_open_tag = On&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем PHPMYADMIN==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install phpmyadmin -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Установщик изначально спросит о том, к какой версии web сервера необходимо произвести настройку. Необходимо выбрать версию apache2 путём нажатия пробела и Enter.&lt;br /&gt;
&lt;br /&gt;
Установщик спросит необходимость конфигурирования баз данных при помощи &amp;quot;dbconfig-common&amp;quot;. Отвечаем утвердительно путём нажатия Enter.&lt;br /&gt;
&lt;br /&gt;
Далее установщик спрашивает пароль MySQL сервера. Этот пароль задавался в разделе &amp;quot;Устанавливаем MySQL&amp;quot; данного руководства. Вводим указанный пароль и подтверждаем его ещё раз.&lt;br /&gt;
&lt;br /&gt;
==Включаем mod_rewrite==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo a2enmod rewrite&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перезапускаем Апач&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin не включен в репозиторий программного обеспечения Debian 10, поэтому мы должны загрузить его с phpmyadmin.net&lt;br /&gt;
&lt;br /&gt;
Установим необходимые компоненты:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt install php7.3-mbstring php7.3-zip php7.3-gd wget -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;cd /tmp&lt;br /&gt;
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
или вставляем ссылку на последнюю версию с сайта https://www.phpmyadmin.net/downloads/&lt;br /&gt;
&lt;br /&gt;
Распаковываем, копируем в /usr/share/phpmyadmin и назначаем права:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unzip phpMyAdmin-5.1.1-all-languages.zip&lt;br /&gt;
sudo mv phpMyAdmin-5.1.1-all-languages/ /usr/share/phpmyadmin&lt;br /&gt;
sudo chown -R www-data:www-data /usr/share/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь нам нужно войти в консоль MariaDB и создать базу данных и пользователя для phpMyAdmin.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mysql -u root&lt;br /&gt;
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'your_preferred_password';&lt;br /&gt;
grant all privileges on *.* to admin@localhost with grant option;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Где '''your_preferred_password''' будет пароль для входа в phpMyAdmin&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl restart apache2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создайте файл phpmyadmin.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/apache2/conf-available/phpmyadmin.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вставьте следующий текст в файл phpmyadmin.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# phpMyAdmin default Apache configuration&lt;br /&gt;
&lt;br /&gt;
Alias /phpmyadmin /usr/share/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin&amp;gt;&lt;br /&gt;
    Options SymLinksIfOwnerMatch&lt;br /&gt;
    DirectoryIndex index.php&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;IfModule mod_php5.c&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_mime.c&amp;gt;&lt;br /&gt;
            AddType application/x-httpd-php .php&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.+\.php$&amp;quot;&amp;gt;&lt;br /&gt;
            SetHandler application/x-httpd-php&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        php_value include_path .&lt;br /&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp&lt;br /&gt;
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/&lt;br /&gt;
        php_admin_value mbstring.func_overload 0&lt;br /&gt;
    &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
    &amp;lt;IfModule mod_php.c&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_mime.c&amp;gt;&lt;br /&gt;
            AddType application/x-httpd-php .php&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.+\.php$&amp;quot;&amp;gt;&lt;br /&gt;
            SetHandler application/x-httpd-php&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        php_value include_path .&lt;br /&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp&lt;br /&gt;
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/&lt;br /&gt;
        php_admin_value mbstring.func_overload 0&lt;br /&gt;
    &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Disallow web access to directories that don't need it&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/templates&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/libraries&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/setup/lib&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для сохранения нажмите CTRL+O ENTER для выхода CTRL+X&lt;br /&gt;
&lt;br /&gt;
Включим этот фрагмент конфигурации:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enconf phpmyadmin.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаем временную папку:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir -p /var/lib/phpmyadmin/tmp&lt;br /&gt;
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перезагрузите Apache, чтобы изменения вступили в силу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаём файл config.inc.php из примера:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо задать парольную фразу, открываем файл config.inc.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /usr/share/phpmyadmin/config.inc.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ищем строчку '''$cfg['blowfish_secret']''' и задаём между кавычками какую-нибудь парольную фразу  длиннее 32-х символов, например,&lt;br /&gt;
&amp;lt;pre&amp;gt;$cfg['blowfish_secret'] = '12345678901234567890123456789012'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так-же сохраняем CTRL+O ENTER и выходим CTRL+X&lt;br /&gt;
Теперь вы можете получить доступ к веб-интерфейсу phpMyAdmin по адресу, введя имя 'admin' и пароль 'your_preferred_password', которые задали на шаге при создании базы данных и пользователя для phpMyAdmin:&lt;br /&gt;
&amp;lt;pre&amp;gt;http://ip_адрес/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в панели управления phpMyAdmin вы можете увидеть предупреждающее сообщение.&lt;br /&gt;
&lt;br /&gt;
[[Файл:PhpMyAdmin не полностью настроено.png|центр]]&lt;br /&gt;
&lt;br /&gt;
Переходим по ссылке &amp;quot;Узнайте причину&amp;quot;.&lt;br /&gt;
Видим сообщение:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Создать базу данных с именем.png|центр]]&lt;br /&gt;
&lt;br /&gt;
Переходим по ссылке &amp;quot;Создать&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройка PHP==&lt;br /&gt;
&lt;br /&gt;
В обоих конфигурационных файлах для web сервера:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/apache2/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И файл запуска php скриптов из командной строки:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/cli/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Строку error_reporting привести к виду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;error_reporting  =  E_ALL &amp;amp; ~E_NOTICE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А так же строки:&lt;br /&gt;
&amp;lt;pre&amp;gt;max_execution_time - С 30 меняем на 90&lt;br /&gt;
max_input_time - С 60 на 180&lt;br /&gt;
post_max_size - С 8M на 200M&lt;br /&gt;
upload_max_filesize - С 2M на 50M&lt;br /&gt;
max_file_uploads - С 20 на 150&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для применения изменений, необходимо перезапустить Apache:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем MajorDoMo==&lt;br /&gt;
&lt;br /&gt;
Скачиваем дистрибутив Majordomo, разархивируем и копируем содержимое majordomo-master в директорию /var/www/html:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/majordomo&lt;br /&gt;
cd ~/majordomo&lt;br /&gt;
wget https://github.com/sergejey/majordomo/archive/master.zip&lt;br /&gt;
unzip master.zip&lt;br /&gt;
sudo cp -rp ~/majordomo/majordomo-master/* /var/www/html&lt;br /&gt;
sudo cp -rp ~/majordomo/majordomo-master/.htaccess /var/www/html&lt;br /&gt;
rm -rf ~/majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройка прав на файлы и директории&lt;br /&gt;
&lt;br /&gt;
Установка рекомендуемых прав выполняется следующими командами:&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type f -exec chmod 0644 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type d -exec chmod 0755 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем права командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Права будут выглядеть подобно:&lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;drwxr-xr-x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-r--r--&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Установка собственника и группы на файлы и директории&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Majordomo (а именно сервисы: apache и php) работает от пользователя www-data. Права доступа к каталогу /var/www/html, где лежат файлы Majordomo по умолчанию принадлежат root. Изменим владельца директории /var/www/html на www-data.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo chown -R www-data:www-data /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вывод должен быть подобный:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-r--r--  1 www-data www-data  12K May 26 22:19 cycle.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо предоставить доступ пользователю www-data к медиа устройствам. Для этого его необходимо добавить в группу audio.&lt;br /&gt;
&lt;br /&gt;
Это делается командой usermod:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo usermod -a -G audio www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем, что он появился в группе:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;cat /etc/group | grep audio&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, то вывод будет подобный:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;audio:x:29:www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;''Дальнейшие команды в этом разделе нужно использовать только в случае если у Вас по какой-то причине система не работает совсем или не работает частично.''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;В большинстве случаев на моменте начального конфигурирования, проблемы с системой возникают из-за неправильно установленных прав.&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Меняем права доступа к файлам по принципу: всем-всё.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type f -exec chmod 0666 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И директориям&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type d -exec chmod 0777 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем права командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Права будут выглядеть подобно: &lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;drwxrwxrwx&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-rw-rw-&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если права по какой-то причине не установились, то можно сделать вариант в котором устанавливаются полные права для всех рекурсивно по директориям и файлам. &lt;br /&gt;
&lt;br /&gt;
Команда выглядит так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo chmod -R 777 /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо заметить, что данный способ, не самый безопасный, но самый простой.&lt;br /&gt;
&lt;br /&gt;
==Импорт базы данных==&lt;br /&gt;
&lt;br /&gt;
Заходим по адресу:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/phpmyadmin4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При входе будет запрошен логин, его необходимо указать как: majordomo, и пароль который который был задан на шаге: &amp;quot;Создание пользователя и БД MySQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В созданную ранее БД необходимо импортировать файл db_terminal.sql из директории с дистрибутивом. Скачать его можно по ссылке: [https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql db_termina.sql]. Для скачивания нажмите правой кнопкой мыши на ссылку и выберите: &amp;quot;Сохранить ссылку как...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Далее выполняем последовательность действий в phpMyAdmin для импорта sql файла.&lt;br /&gt;
&lt;br /&gt;
* В левой части окна выбрать БД db_terminal, путём нажатия один раз на её название.&lt;br /&gt;
* В верхней части окна найти кнопку &amp;quot;Импорт&amp;quot;.&lt;br /&gt;
* В загрузившейся странице, в разделе &amp;quot;Импортируемый файл&amp;quot; нажать &amp;quot;Выберите файл&amp;quot; или &amp;quot;Обзор&amp;quot;.&lt;br /&gt;
* В открывшемся окне, выбрать ранее сохраненный файл &amp;quot;db_terminal.sql&amp;quot;.&lt;br /&gt;
* В нижней части окна нажать &amp;quot;Вперёд&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Импорт db terminal успешно завершён.png|мини|слева]]&lt;br /&gt;
После успешного импорта должна отобразится зелёная строка с подобным текстом:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;Импорт успешно завершён, выполнено 192 запроса. (db_terminal.sql)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если возникли проблемы с импортом БД используя phpMyAdmin, есть возможность импортировать дамп БД используя командную строку. Для этого скачайте дамп файл командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo wget -O /tmp/db_terminal.sql https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И импортируйте его:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -umajordomo -p db_terminal &amp;lt; /tmp/db_terminal.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет запрошен пароль пользователя majordomo, который был задан на шаге: &amp;quot;[[Установка_на_Linux#Создание пользователя и БД MySQL:|Создание пользователя и БД MySQL]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Правим основной конфиг==&lt;br /&gt;
&lt;br /&gt;
Изначально копируем пример конфига в рабочий конфиг:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp /var/www/html/config.php.sample /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Установим собственника и группу для конфига:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown www-data: /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И открываем конфиг для редактирования:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописываем имя пользователя и пароль пользователя БД. Для этого нужно исправить строки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Define('DB_USER', 'majordomo');&lt;br /&gt;
Define('DB_PASSWORD', '');&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
* '''DB_USER''' - пользователь majordomo который был создан на шаге: &amp;quot;Создание пользователя и БД MySQL&amp;quot;.&lt;br /&gt;
* '''DB_PASSWORD''' - пароль от этого пользователя, который был задан на том же шаге.&lt;br /&gt;
&lt;br /&gt;
Сохраняем файл, и выходим из редактора.&lt;br /&gt;
&lt;br /&gt;
Все, теперь можно зайти на веб интерфейс Majordomo.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 http://sever_ip/&lt;br /&gt;
&lt;br /&gt;
Если установка выполняется не на локальную машину.&lt;br /&gt;
&lt;br /&gt;
При первом входе должна быть отображена страница: &amp;quot;Hello, world! :)&amp;quot; на которой необходимо выбрать тайм зону, язык системы и цветовую тему. По завершении нажать кнопку &amp;quot;Continue&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В случае если такая страница не отобразилась, открыть её можно по ссылке:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/popup/first_start.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Основной цикл Вариант 1. Systemd unit. Предпочтительный==&lt;br /&gt;
&lt;br /&gt;
Код юнита:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Majordomo cycles service&lt;br /&gt;
Requires=network.target mysql.service apache2.service&lt;br /&gt;
After=mysql.service apache2.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=www-data&lt;br /&gt;
Group=www-data&lt;br /&gt;
ExecStart=/usr/bin/php /var/www/html/cycle.php&lt;br /&gt;
ExecStop=/usr/bin/pkill -f cycle_*&lt;br /&gt;
&lt;br /&gt;
KillSignal=SIGKILL&lt;br /&gt;
KillMode=control-group&lt;br /&gt;
RestartSec=1min&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данный код необходимо скопировать в файл: /etc/systemd/system/majordomo.service Для этого открываем файл:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/majordomo.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И вставляем в него код, который представлен выше.&lt;br /&gt;
&lt;br /&gt;
Для автозапуска MajorDoMo при старте системы, необходимо выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo systemctl enable majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И для запуска MajorDoMo необходимо выполнить:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo systemctl start majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Основной цикл Вариант 2. Если не сработал первый вариант==&lt;br /&gt;
&lt;br /&gt;
Запуск основного цикла добавляем в Cron, для пользователя www-data, так как файлы МД принадлежат этому пользователю.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo crontab -e -u www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В открывшемся окне добавляем строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;@reboot /usr/bin/php /var/www/html/cycle.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''И обязательно!''' ставим Enter для того чтобы в конце открытого файла был перенос строки.&lt;br /&gt;
&lt;br /&gt;
Сохраняем и перезапускаем компьютер:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После запуска циклов можно открыть MajorDoMo по адресу:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если MajorDoMo устанавливалась на локальный компьютер.&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://IP_ADDRESS/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если MajorDoMo устанавливалась на удалённый сервер.&lt;br /&gt;
&lt;br /&gt;
Если не выполняются onNewMinute и onNewHour&lt;br /&gt;
&lt;br /&gt;
Нужно проверить настройку BASE_URL в config.php. Если Вы используете домен, а не IP, тогда добавьте в файл /etc/hosts строку вида:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;127.0.0.1 domain.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где domain.com - это Ваш домен который Вы используете. Комментарий Сергея с форума: Дело в том, что эти методы вызываются через внутреннюю функцию raseEvent, которая обращается к серверу через HTTP-запрос используя BASE_URL. Если он неправильный, то метод не вызовется.&lt;br /&gt;
&lt;br /&gt;
На этом статья об установке MajorDoMo на Linux Ubuntu закончена.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Полезные темы на форуме==&lt;br /&gt;
&lt;br /&gt;
Для быстрой установки необходимых атрибутов можно воспользоваться [http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=2&amp;amp;start=10#p84 данным скриптом].&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=298 Установка на Ubuntu]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=573 Установка Системы Majordomo на Raspberry pi]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=371 Установка на FreeBSD]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=630 (РЕШЕНО) Проблема с установкой и настройкой на Ubuntu 13.04]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=424 Установка на Debian подробная инструкция]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=740 CubieBoard - попытка №1]&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A2%D0%B5%D0%BB%D0%B5%D0%B3%D1%80%D0%B0%D0%BC_%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D1%81_IP_%D0%BA%D0%B0%D0%BC%D0%B5%D1%80%D1%8B_.&amp;diff=1889</id>
		<title>Телеграм Отправка изображения с IP камеры .</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A2%D0%B5%D0%BB%D0%B5%D0%B3%D1%80%D0%B0%D0%BC_%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D1%81_IP_%D0%BA%D0%B0%D0%BC%D0%B5%D1%80%D1%8B_.&amp;diff=1889"/>
		<updated>2023-03-02T08:41:17Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Новая страница: «Category:Юзеркейсы ==Описание== Телеграмм. Отправка изображения с IP камеры. ==Код== &amp;lt;pre&amp;gt;exec('sudo ffmpeg -i rtsp://IP:port/user=admin_password=imfzZCJe_channel=0_stream=0.sdp?real_stream -y -f mjpeg -t 0.110 -s 1280x720 mnt/Backup/Video/out.jpg'); $jpg=&amp;quot;/mnt/Backup/Video/out.jpg&amp;quot;; $this-&amp;gt;sendImageToUser($chat_id,$jpg);&amp;lt;/pre&amp;gt;   '''rtsp://IP:port''' - адрес и порт камеры.   '''mnt/Ba...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Юзеркейсы]]&lt;br /&gt;
==Описание==&lt;br /&gt;
Телеграмм. Отправка изображения с IP камеры.&lt;br /&gt;
==Код==&lt;br /&gt;
&amp;lt;pre&amp;gt;exec('sudo ffmpeg -i rtsp://IP:port/user=admin_password=imfzZCJe_channel=0_stream=0.sdp?real_stream -y -f mjpeg -t 0.110 -s 1280x720 mnt/Backup/Video/out.jpg');&lt;br /&gt;
$jpg=&amp;quot;/mnt/Backup/Video/out.jpg&amp;quot;;&lt;br /&gt;
$this-&amp;gt;sendImageToUser($chat_id,$jpg);&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
'''rtsp://IP:port''' - адрес и порт камеры.&lt;br /&gt;
 &lt;br /&gt;
'''mnt/Backup/Video/out.jpg''' - путь куда сохранять снимок, у вас он может быть другой.&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_Linux&amp;diff=1888</id>
		<title>Установка на Linux</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_Linux&amp;diff=1888"/>
		<updated>2023-03-02T08:34:44Z</updated>

		<summary type="html">&lt;p&gt;Newz20: /* Устанавливаем PHP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Установка]]&lt;br /&gt;
&lt;br /&gt;
==Альтернативные варианты==&lt;br /&gt;
[[installmd|Скрипт installmd, установка почти на все виды плат и полноценный Linux]]&lt;br /&gt;
&lt;br /&gt;
[https://mjdm.ru/forum/viewtopic.php?f=3&amp;amp;p=92843#p92843 Скрипт установки на Ubuntu 16, 18 или 20]&lt;br /&gt;
&lt;br /&gt;
== Внимание!!! ==&lt;br /&gt;
&lt;br /&gt;
''Инструкция была написана под операционную систему Ubuntu 18.10 и тестировалась только на ней!&lt;br /&gt;
В случае если у Вас установлена другая операционная система Linux то возможно, на каком-то из шагов, у Вас возникнут ошибки. В данном случае, рекомендуется сообщить об этих ошибках в чат в [https://t.me/MajorDoMoRu Telegram] или же на [https://majordomo.smartliving.ru/forum/ форум].''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Перед началом работы необходимо убедиться что в системе установлен пакет sudo.&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Для этого нужно выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если в ответ будет отображено сообщение подобного плана:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;bash: sudo: command not found&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это будет обозначать, что пакет sudo по умолчанию не установлен в Вашей ОС. Потому его необходимо установить.&lt;br /&gt;
&lt;br /&gt;
Для это необходимо выполнить следующие команды:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет запрошен пароль пользователя от которого выполняется команда. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; При вводе пароля символы не будут отображены на экране!&lt;br /&gt;
&lt;br /&gt;
После успешного ввода пароля, в случае если вид консоли изменился и принял подобный вид:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;root@localhost:~#&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Производится установка sudo командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;apt install sudo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После успешной установки пакета, необходимо добавить пользователя, от которого будет производиться установка, в группу sudo. Это делается командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;usermod -aG sudo USERNAME&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
USERNAME - это имя пользователя. Для Raspberry PI это обычно пользователь: pi.&lt;br /&gt;
По завершении этих действий, необходимо выйти в окружение обычного пользователя. Это выполняется командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем необходимо перелогиниться, для этого введем&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo service systemd-logind restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Приглашающее сообщение в консоли, должно принять подобный вид:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;pi@localhost:~$&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы разворачиваете сервер  на ноутбуке вам пригодится отключение режима засыпания при закрытии крышки.&lt;br /&gt;
для этого набираем&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/systemd/logind.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Находим строчку ''#HandleLidSwitch=suspend'' и меняем её на&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;HandleLidSwitch=ignore&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И опять же  перелогиниться&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo service systemd-logind restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Обновление кеша пакетов и обновление установленных пакетов (в случае если для них есть обновления)==&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
Установим ещё пару приложений которые будем использовать в процессе установки&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install nano wget unzip -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем SSH==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install openssh-server openssh-client -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем MySQL==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install mysql-server mysql-client -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните. Этот пароль понадобится в дальнейшем.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; Если установщик не запросил пароль, то выполните в консоли команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И пройдите по всем шагам. И в этих шагах укажите пароль пользователя root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt; в качестве альтернативы MySQL по умолчанию используется форк проекта, MariaDB, который поддерживается сообществом.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install mariadb-server -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Создание пользователя и БД MySQL:==&lt;br /&gt;
&lt;br /&gt;
Для начала создадим БД командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;CREATE DATABASE db_terminal;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После выполнения этой команды, и далее по параграфу, MySQL будет просить ввести пароль пользователя root, который мы указывали выше. Вводим его где будет необходимо и нажимаем Enter.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; При вводе пароля символы не будут отображены на экране.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее создаём пользователя для работы с этой БД:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
password - необходимо заменить на ваш пароль, который тоже необходимо запомнить. Этот пароль будет использоваться для работы MajorDoMo с БД, а так же для входа в phpMyAdmin ниже по инструкции.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; Рекомендуется использовать сложный пароль, так как в случае если будет открыт доступ к MajorDoMo и phpMyAdmin извне, то есть вероятность того, что простой пароль будет взломан и тот, кто это сделает, сможет получить доступ к важным данным в Вашей MajorDoMo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для предоставления только что созданному пользователю привилегий, необходимо выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И в завершение, необходимо обновить привилегии:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Установка WEB сервера==&lt;br /&gt;
&lt;br /&gt;
В качестве web сервера можно установить разные пакеты. В данном случае рассматривается вариант установки Apache.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install apache2 apache2-utils -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правим конфиг Апача&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/apache2/sites-available/default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если такого файла нет, он может называться по-другому. Например:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом файле находим раздел:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;lt;Directory /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И заменяем во всех совпадениях&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;AllowOverride None&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
на&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;AllowOverride All&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняемся и выходим: Ctrl-O Ctrl-X&lt;br /&gt;
&lt;br /&gt;
В более новых версиях Apache конфигурационный файл может не содержать директив &amp;quot;AllowOverride&amp;quot;. В таком случае необходимо вручную привести файл к виду:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  &amp;lt;Directory /&amp;gt;&lt;br /&gt;
    Options FollowSymLinks&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
  &amp;lt;Directory /var/www/html&amp;gt;&lt;br /&gt;
    Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    allow from all&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/usr/lib/cgi-bin&amp;quot;&amp;gt;&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    Allow from all&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удаляем стандартный index.html файл командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo rm -f /var/www/html/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И перезапускаем Апач:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если при перезапуске выдаст примерно такой ответ:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То необходимо поправить apache2.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/apache2/apache2.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вставив в него такую строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ServerName localhost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняемся и выходим: Ctrl-O Ctrl-X&lt;br /&gt;
&lt;br /&gt;
Перезапускаем Апач&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если ваша версия Apache отличается от рассматриваемой, то пути к файлам конфигурации могут быть такими:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/apache2/sites-available/default.conf&lt;br /&gt;
sudo nano /etc/apache2/httpd.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем PHP==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install php7.3 php7.3-cgi php7.3-cli php7.3-pear php7.3-mysql php7.3-mbstring php7.3-xml -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
curl и его библиотеки:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install curl libcurl3 libcurl3-dev php7.3-curl -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install curl libcurl4 libcurl3-dev php7.3-curl -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для apache&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install libapache2-mod-php -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для последних версий Апача необходимо включить работу с коротким тегом &amp;lt;? /?&amp;gt; для этого откройте файл php.ini командой: (внимательно смотрите какая версия PHP установилась у вас, и поменяйте 7.3 на свои версии. здесь и далее по инструкции)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/apache2/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо заменить или вставить строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;short_open_tag = On&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем PHPMYADMIN==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install phpmyadmin -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Установщик изначально спросит о том, к какой версии web сервера необходимо произвести настройку. Необходимо выбрать версию apache2 путём нажатия пробела и Enter.&lt;br /&gt;
&lt;br /&gt;
Установщик спросит необходимость конфигурирования баз данных при помощи &amp;quot;dbconfig-common&amp;quot;. Отвечаем утвердительно путём нажатия Enter.&lt;br /&gt;
&lt;br /&gt;
Далее установщик спрашивает пароль MySQL сервера. Этот пароль задавался в разделе &amp;quot;Устанавливаем MySQL&amp;quot; данного руководства. Вводим указанный пароль и подтверждаем его ещё раз.&lt;br /&gt;
&lt;br /&gt;
==Включаем mod_rewrite==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo a2enmod rewrite&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перезапускаем Апач&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin не включен в репозиторий программного обеспечения Debian 10, поэтому мы должны загрузить его с phpmyadmin.net&lt;br /&gt;
&lt;br /&gt;
Установим необходимые компоненты:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt install php7.3-mbstring php7.3-zip php7.3-gd wget -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;cd /tmp&lt;br /&gt;
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
или вставляем ссылку на последнюю версию с сайта https://www.phpmyadmin.net/downloads/&lt;br /&gt;
&lt;br /&gt;
Распаковываем, копируем в /usr/share/phpmyadmin и назначаем права:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unzip phpMyAdmin-5.1.1-all-languages.zip&lt;br /&gt;
sudo mv phpMyAdmin-5.1.1-all-languages/ /usr/share/phpmyadmin&lt;br /&gt;
sudo chown -R www-data:www-data /usr/share/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь нам нужно войти в консоль MariaDB и создать базу данных и пользователя для phpMyAdmin.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mysql -u root&lt;br /&gt;
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'your_preferred_password';&lt;br /&gt;
grant all privileges on *.* to admin@localhost with grant option;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Где '''your_preferred_password''' будет пароль для входа в phpMyAdmin&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl restart apache2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создайте файл phpmyadmin.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/apache2/conf-available/phpmyadmin.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вставьте следующий текст в файл phpmyadmin.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# phpMyAdmin default Apache configuration&lt;br /&gt;
&lt;br /&gt;
Alias /phpmyadmin /usr/share/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin&amp;gt;&lt;br /&gt;
    Options SymLinksIfOwnerMatch&lt;br /&gt;
    DirectoryIndex index.php&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;IfModule mod_php5.c&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_mime.c&amp;gt;&lt;br /&gt;
            AddType application/x-httpd-php .php&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.+\.php$&amp;quot;&amp;gt;&lt;br /&gt;
            SetHandler application/x-httpd-php&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        php_value include_path .&lt;br /&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp&lt;br /&gt;
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/&lt;br /&gt;
        php_admin_value mbstring.func_overload 0&lt;br /&gt;
    &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
    &amp;lt;IfModule mod_php.c&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_mime.c&amp;gt;&lt;br /&gt;
            AddType application/x-httpd-php .php&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.+\.php$&amp;quot;&amp;gt;&lt;br /&gt;
            SetHandler application/x-httpd-php&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        php_value include_path .&lt;br /&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp&lt;br /&gt;
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/&lt;br /&gt;
        php_admin_value mbstring.func_overload 0&lt;br /&gt;
    &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Disallow web access to directories that don't need it&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/templates&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/libraries&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/setup/lib&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для сохранения нажмите CTRL+O ENTER для выхода CTRL+X&lt;br /&gt;
&lt;br /&gt;
Включим этот фрагмент конфигурации:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enconf phpmyadmin.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаем временную папку:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir -p /var/lib/phpmyadmin/tmp&lt;br /&gt;
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перезагрузите Apache, чтобы изменения вступили в силу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаём файл config.inc.php из примера:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо задать парольную фразу, открываем файл config.inc.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /usr/share/phpmyadmin/config.inc.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ищем строчку '''$cfg['blowfish_secret']''' и задаём между кавычками какую-нибудь парольную фразу  длиннее 32-х символов, например,&lt;br /&gt;
&amp;lt;pre&amp;gt;$cfg['blowfish_secret'] = '12345678901234567890123456789012'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так-же сохраняем CTRL+O ENTER и выходим CTRL+X&lt;br /&gt;
Теперь вы можете получить доступ к веб-интерфейсу phpMyAdmin по адресу, введя имя 'admin' и пароль 'your_preferred_password', которые задали на шаге при создании базы данных и пользователя для phpMyAdmin:&lt;br /&gt;
&amp;lt;pre&amp;gt;http://ip_адрес/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в панели управления phpMyAdmin вы можете увидеть предупреждающее сообщение.&lt;br /&gt;
&lt;br /&gt;
[[Файл:PhpMyAdmin не полностью настроено.png|центр]]&lt;br /&gt;
&lt;br /&gt;
Переходим по ссылке &amp;quot;Узнайте причину&amp;quot;.&lt;br /&gt;
Видим сообщение:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Создать базу данных с именем.png|центр]]&lt;br /&gt;
&lt;br /&gt;
Переходим по ссылке &amp;quot;Создать&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройка PHP==&lt;br /&gt;
&lt;br /&gt;
В обоих конфигурационных файлах для web сервера:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/apache2/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И файл запуска php скриптов из командной строки:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/cli/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Строку error_reporting привести к виду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;error_reporting  =  E_ALL &amp;amp; ~E_NOTICE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А так же строки:&lt;br /&gt;
&amp;lt;pre&amp;gt;max_execution_time - С 30 меняем на 90&lt;br /&gt;
max_input_time - С 60 на 180&lt;br /&gt;
post_max_size - С 8M на 200M&lt;br /&gt;
upload_max_filesize - С 2M на 50M&lt;br /&gt;
max_file_uploads - С 20 на 150&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для применения изменений, необходимо перезапустить Apache:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем MajorDoMo==&lt;br /&gt;
&lt;br /&gt;
Скачиваем дистрибутив Majordomo, разархивируем и копируем содержимое majordomo-master в директорию /var/www/html:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/majordomo&lt;br /&gt;
cd ~/majordomo&lt;br /&gt;
wget https://github.com/sergejey/majordomo/archive/master.zip&lt;br /&gt;
unzip master.zip&lt;br /&gt;
sudo cp -rp ~/majordomo/majordomo-master/* /var/www/html&lt;br /&gt;
sudo cp -rp ~/majordomo/majordomo-master/.htaccess /var/www/html&lt;br /&gt;
rm -rf ~/majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройка прав на файлы и директории&lt;br /&gt;
&lt;br /&gt;
Установка рекомендуемых прав выполняется следующими командами:&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type f -exec chmod 0644 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type d -exec chmod 0755 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем права командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Права будут выглядеть подобно:&lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;drwxr-xr-x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-r--r--&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Установка собственника и группы на файлы и директории&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Majordomo (а именно сервисы: apache и php) работает от пользователя www-data. Права доступа к каталогу /var/www/html, где лежат файлы Majordomo по умолчанию принадлежат root. Изменим владельца директории /var/www/html на www-data.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo chown -R www-data:www-data /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вывод должен быть подобный:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-r--r--  1 www-data www-data  12K May 26 22:19 cycle.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо предоставить доступ пользователю www-data к медиа устройствам. Для этого его необходимо добавить в группу audio.&lt;br /&gt;
&lt;br /&gt;
Это делается командой usermod:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo usermod -a -G audio www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем, что он появился в группе:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;cat /etc/group | grep audio&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, то вывод будет подобный:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;audio:x:29:www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;''Дальнейшие команды в этом разделе нужно использовать только в случае если у Вас по какой-то причине система не работает совсем или не работает частично.''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;В большинстве случаев на моменте начального конфигурирования, проблемы с системой возникают из-за неправильно установленных прав.&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Меняем права доступа к файлам по принципу: всем-всё.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type f -exec chmod 0666 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И директориям&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type d -exec chmod 0777 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем права командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Права будут выглядеть подобно: &lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;drwxrwxrwx&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-rw-rw-&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если права по какой-то причине не установились, то можно сделать вариант в котором устанавливаются полные права для всех рекурсивно по директориям и файлам. &lt;br /&gt;
&lt;br /&gt;
Команда выглядит так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo chmod -R 777 /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо заметить, что данный способ, не самый безопасный, но самый простой.&lt;br /&gt;
&lt;br /&gt;
==Импорт базы данных==&lt;br /&gt;
&lt;br /&gt;
Заходим по адресу:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/phpmyadmin4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При входе будет запрошен логин, его необходимо указать как: majordomo, и пароль который который был задан на шаге: &amp;quot;Создание пользователя и БД MySQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В созданную ранее БД необходимо импортировать файл db_terminal.sql из директории с дистрибутивом. Скачать его можно по ссылке: [https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql db_termina.sql]. Для скачивания нажмите правой кнопкой мыши на ссылку и выберите: &amp;quot;Сохранить ссылку как...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Далее выполняем последовательность действий в phpMyAdmin для импорта sql файла.&lt;br /&gt;
&lt;br /&gt;
* В левой части окна выбрать БД db_terminal, путём нажатия один раз на её название.&lt;br /&gt;
* В верхней части окна найти кнопку &amp;quot;Импорт&amp;quot;.&lt;br /&gt;
* В загрузившейся странице, в разделе &amp;quot;Импортируемый файл&amp;quot; нажать &amp;quot;Выберите файл&amp;quot; или &amp;quot;Обзор&amp;quot;.&lt;br /&gt;
* В открывшемся окне, выбрать ранее сохраненный файл &amp;quot;db_terminal.sql&amp;quot;.&lt;br /&gt;
* В нижней части окна нажать &amp;quot;Вперёд&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Импорт db terminal успешно завершён.png|мини|слева]]&lt;br /&gt;
После успешного импорта должна отобразится зелёная строка с подобным текстом:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;Импорт успешно завершён, выполнено 192 запроса. (db_terminal.sql)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если возникли проблемы с импортом БД используя phpMyAdmin, есть возможность импортировать дамп БД используя командную строку. Для этого скачайте дамп файл командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo wget -O /tmp/db_terminal.sql https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И импортируйте его:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -umajordomo -p db_terminal &amp;lt; /tmp/db_terminal.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет запрошен пароль пользователя majordomo, который был задан на шаге: &amp;quot;[[Установка_на_Linux#Создание пользователя и БД MySQL:|Создание пользователя и БД MySQL]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Правим основной конфиг==&lt;br /&gt;
&lt;br /&gt;
Изначально копируем пример конфига в рабочий конфиг:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp /var/www/html/config.php.sample /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Установим собственника и группу для конфига:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown www-data: /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И открываем конфиг для редактирования:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописываем имя пользователя и пароль пользователя БД. Для этого нужно исправить строки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Define('DB_USER', 'majordomo');&lt;br /&gt;
Define('DB_PASSWORD', '');&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
* '''DB_USER''' - пользователь majordomo который был создан на шаге: &amp;quot;Создание пользователя и БД MySQL&amp;quot;.&lt;br /&gt;
* '''DB_PASSWORD''' - пароль от этого пользователя, который был задан на том же шаге.&lt;br /&gt;
&lt;br /&gt;
Сохраняем файл, и выходим из редактора.&lt;br /&gt;
&lt;br /&gt;
Все, теперь можно зайти на веб интерфейс Majordomo.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 http://sever_ip/&lt;br /&gt;
&lt;br /&gt;
Если установка выполняется не на локальную машину.&lt;br /&gt;
&lt;br /&gt;
При первом входе должна быть отображена страница: &amp;quot;Hello, world! :)&amp;quot; на которой необходимо выбрать тайм зону, язык системы и цветовую тему. По завершении нажать кнопку &amp;quot;Continue&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В случае если такая страница не отобразилась, открыть её можно по ссылке:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/popup/first_start.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Основной цикл Вариант 1. Systemd unit. Предпочтительный==&lt;br /&gt;
&lt;br /&gt;
Код юнита:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Majordomo cycles service&lt;br /&gt;
Requires=network.target mysql.service apache2.service&lt;br /&gt;
After=mysql.service apache2.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=www-data&lt;br /&gt;
Group=www-data&lt;br /&gt;
ExecStart=/usr/bin/php /var/www/html/cycle.php&lt;br /&gt;
ExecStop=/usr/bin/pkill -f cycle_*&lt;br /&gt;
&lt;br /&gt;
KillSignal=SIGKILL&lt;br /&gt;
KillMode=control-group&lt;br /&gt;
RestartSec=1min&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данный код необходимо скопировать в файл: /etc/systemd/system/majordomo.service Для этого открываем файл:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/majordomo.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И вставляем в него код, который представлен выше.&lt;br /&gt;
&lt;br /&gt;
Для автозапуска MajorDoMo при старте системы, необходимо выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo systemctl enable majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И для запуска MajorDoMo необходимо выполнить:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo systemctl start majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Основной цикл Вариант 2. Если не сработал первый вариант==&lt;br /&gt;
&lt;br /&gt;
Запуск основного цикла добавляем в Cron, для пользователя www-data, так как файлы МД принадлежат этому пользователю.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo crontab -e -u www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В открывшемся окне добавляем строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;@reboot /usr/bin/php /var/www/html/cycle.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''И обязательно!''' ставим Enter для того чтобы в конце открытого файла был перенос строки.&lt;br /&gt;
&lt;br /&gt;
Сохраняем и перезапускаем компьютер:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После запуска циклов можно открыть MajorDoMo по адресу:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если MajorDoMo устанавливалась на локальный компьютер.&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://IP_ADDRESS/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если MajorDoMo устанавливалась на удалённый сервер.&lt;br /&gt;
&lt;br /&gt;
Если не выполняются onNewMinute и onNewHour&lt;br /&gt;
&lt;br /&gt;
Нужно проверить настройку BASE_URL в config.php. Если Вы используете домен, а не IP, тогда добавьте в файл /etc/hosts строку вида:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;127.0.0.1 domain.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где domain.com - это Ваш домен который Вы используете. Комментарий Сергея с форума: Дело в том, что эти методы вызываются через внутреннюю функцию raseEvent, которая обращается к серверу через HTTP-запрос используя BASE_URL. Если он неправильный, то метод не вызовется.&lt;br /&gt;
&lt;br /&gt;
На этом статья об установке MajorDoMo на Linux Ubuntu закончена.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Полезные темы на форуме==&lt;br /&gt;
&lt;br /&gt;
Для быстрой установки необходимых атрибутов можно воспользоваться [http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=2&amp;amp;start=10#p84 данным скриптом].&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=298 Установка на Ubuntu]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=573 Установка Системы Majordomo на Raspberry pi]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=371 Установка на FreeBSD]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=630 (РЕШЕНО) Проблема с установкой и настройкой на Ubuntu 13.04]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=424 Установка на Debian подробная инструкция]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=740 CubieBoard - попытка №1]&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_Linux&amp;diff=1887</id>
		<title>Установка на Linux</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_Linux&amp;diff=1887"/>
		<updated>2023-02-20T09:55:02Z</updated>

		<summary type="html">&lt;p&gt;Newz20: /* Устанавливаем PHP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Установка]]&lt;br /&gt;
&lt;br /&gt;
==Альтернативные варианты==&lt;br /&gt;
[[installmd|Скрипт installmd, установка почти на все виды плат и полноценный Linux]]&lt;br /&gt;
&lt;br /&gt;
[https://mjdm.ru/forum/viewtopic.php?f=3&amp;amp;p=92843#p92843 Скрипт установки на Ubuntu 16, 18 или 20]&lt;br /&gt;
&lt;br /&gt;
== Внимание!!! ==&lt;br /&gt;
&lt;br /&gt;
''Инструкция была написана под операционную систему Ubuntu 18.10 и тестировалась только на ней!&lt;br /&gt;
В случае если у Вас установлена другая операционная система Linux то возможно, на каком-то из шагов, у Вас возникнут ошибки. В данном случае, рекомендуется сообщить об этих ошибках в чат в [https://t.me/MajorDoMoRu Telegram] или же на [https://majordomo.smartliving.ru/forum/ форум].''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Перед началом работы необходимо убедиться что в системе установлен пакет sudo.&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Для этого нужно выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если в ответ будет отображено сообщение подобного плана:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;bash: sudo: command not found&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это будет обозначать, что пакет sudo по умолчанию не установлен в Вашей ОС. Потому его необходимо установить.&lt;br /&gt;
&lt;br /&gt;
Для это необходимо выполнить следующие команды:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет запрошен пароль пользователя от которого выполняется команда. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; При вводе пароля символы не будут отображены на экране!&lt;br /&gt;
&lt;br /&gt;
После успешного ввода пароля, в случае если вид консоли изменился и принял подобный вид:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;root@localhost:~#&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Производится установка sudo командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;apt install sudo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После успешной установки пакета, необходимо добавить пользователя, от которого будет производиться установка, в группу sudo. Это делается командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;usermod -aG sudo USERNAME&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
USERNAME - это имя пользователя. Для Raspberry PI это обычно пользователь: pi.&lt;br /&gt;
По завершении этих действий, необходимо выйти в окружение обычного пользователя. Это выполняется командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем необходимо перелогиниться, для этого введем&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo service systemd-logind restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Приглашающее сообщение в консоли, должно принять подобный вид:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;pi@localhost:~$&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы разворачиваете сервер  на ноутбуке вам пригодится отключение режима засыпания при закрытии крышки.&lt;br /&gt;
для этого набираем&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/systemd/logind.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Находим строчку ''#HandleLidSwitch=suspend'' и меняем её на&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;HandleLidSwitch=ignore&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И опять же  перелогиниться&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo service systemd-logind restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Обновление кеша пакетов и обновление установленных пакетов (в случае если для них есть обновления)==&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
Установим ещё пару приложений которые будем использовать в процессе установки&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install nano wget unzip -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем SSH==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install openssh-server openssh-client -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем MySQL==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install mysql-server mysql-client -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните. Этот пароль понадобится в дальнейшем.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; Если установщик не запросил пароль, то выполните в консоли команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И пройдите по всем шагам. И в этих шагах укажите пароль пользователя root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt; в качестве альтернативы MySQL по умолчанию используется форк проекта, MariaDB, который поддерживается сообществом.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install mariadb-server -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Создание пользователя и БД MySQL:==&lt;br /&gt;
&lt;br /&gt;
Для начала создадим БД командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;CREATE DATABASE db_terminal;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После выполнения этой команды, и далее по параграфу, MySQL будет просить ввести пароль пользователя root, который мы указывали выше. Вводим его где будет необходимо и нажимаем Enter.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; При вводе пароля символы не будут отображены на экране.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее создаём пользователя для работы с этой БД:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
password - необходимо заменить на ваш пароль, который тоже необходимо запомнить. Этот пароль будет использоваться для работы MajorDoMo с БД, а так же для входа в phpMyAdmin ниже по инструкции.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; Рекомендуется использовать сложный пароль, так как в случае если будет открыт доступ к MajorDoMo и phpMyAdmin извне, то есть вероятность того, что простой пароль будет взломан и тот, кто это сделает, сможет получить доступ к важным данным в Вашей MajorDoMo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для предоставления только что созданному пользователю привилегий, необходимо выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И в завершение, необходимо обновить привилегии:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Установка WEB сервера==&lt;br /&gt;
&lt;br /&gt;
В качестве web сервера можно установить разные пакеты. В данном случае рассматривается вариант установки Apache.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install apache2 apache2-utils -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правим конфиг Апача&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/apache2/sites-available/default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если такого файла нет, он может называться по-другому. Например:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом файле находим раздел:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;lt;Directory /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И заменяем во всех совпадениях&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;AllowOverride None&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
на&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;AllowOverride All&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняемся и выходим: Ctrl-O Ctrl-X&lt;br /&gt;
&lt;br /&gt;
В более новых версиях Apache конфигурационный файл может не содержать директив &amp;quot;AllowOverride&amp;quot;. В таком случае необходимо вручную привести файл к виду:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  &amp;lt;Directory /&amp;gt;&lt;br /&gt;
    Options FollowSymLinks&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
  &amp;lt;Directory /var/www/html&amp;gt;&lt;br /&gt;
    Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    allow from all&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/usr/lib/cgi-bin&amp;quot;&amp;gt;&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    Allow from all&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удаляем стандартный index.html файл командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo rm -f /var/www/html/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И перезапускаем Апач:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если при перезапуске выдаст примерно такой ответ:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То необходимо поправить apache2.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/apache2/apache2.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вставив в него такую строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ServerName localhost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняемся и выходим: Ctrl-O Ctrl-X&lt;br /&gt;
&lt;br /&gt;
Перезапускаем Апач&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если ваша версия Apache отличается от рассматриваемой, то пути к файлам конфигурации могут быть такими:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/apache2/sites-available/default.conf&lt;br /&gt;
sudo nano /etc/apache2/httpd.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем PHP==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install php7.3 php7.3-cgi php7.3-cli php7.3-pear php7.3-mysql php7.3-mbstring php7.3-xml -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
curl и его библиотеки:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install curl libcurl3 libcurl3-dev php-curl -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install curl libcurl4 libcurl3-dev php-curl -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для apache&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install libapache2-mod-php -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для последних версий Апача необходимо включить работу с коротким тегом &amp;lt;? /?&amp;gt; для этого откройте файл php.ini командой: (внимательно смотрите какая версия PHP установилась у вас, и поменяйте 7.3 на свои версии. здесь и далее по инструкции)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/apache2/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо заменить или вставить строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;short_open_tag = On&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем PHPMYADMIN==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install phpmyadmin -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Установщик изначально спросит о том, к какой версии web сервера необходимо произвести настройку. Необходимо выбрать версию apache2 путём нажатия пробела и Enter.&lt;br /&gt;
&lt;br /&gt;
Установщик спросит необходимость конфигурирования баз данных при помощи &amp;quot;dbconfig-common&amp;quot;. Отвечаем утвердительно путём нажатия Enter.&lt;br /&gt;
&lt;br /&gt;
Далее установщик спрашивает пароль MySQL сервера. Этот пароль задавался в разделе &amp;quot;Устанавливаем MySQL&amp;quot; данного руководства. Вводим указанный пароль и подтверждаем его ещё раз.&lt;br /&gt;
&lt;br /&gt;
==Включаем mod_rewrite==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo a2enmod rewrite&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перезапускаем Апач&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin не включен в репозиторий программного обеспечения Debian 10, поэтому мы должны загрузить его с phpmyadmin.net&lt;br /&gt;
&lt;br /&gt;
Установим необходимые компоненты:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt install php7.3-mbstring php7.3-zip php7.3-gd wget -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;cd /tmp&lt;br /&gt;
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
или вставляем ссылку на последнюю версию с сайта https://www.phpmyadmin.net/downloads/&lt;br /&gt;
&lt;br /&gt;
Распаковываем, копируем в /usr/share/phpmyadmin и назначаем права:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unzip phpMyAdmin-5.1.1-all-languages.zip&lt;br /&gt;
sudo mv phpMyAdmin-5.1.1-all-languages/ /usr/share/phpmyadmin&lt;br /&gt;
sudo chown -R www-data:www-data /usr/share/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь нам нужно войти в консоль MariaDB и создать базу данных и пользователя для phpMyAdmin.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mysql -u root&lt;br /&gt;
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'your_preferred_password';&lt;br /&gt;
grant all privileges on *.* to admin@localhost with grant option;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Где '''your_preferred_password''' будет пароль для входа в phpMyAdmin&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl restart apache2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создайте файл phpmyadmin.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/apache2/conf-available/phpmyadmin.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вставьте следующий текст в файл phpmyadmin.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# phpMyAdmin default Apache configuration&lt;br /&gt;
&lt;br /&gt;
Alias /phpmyadmin /usr/share/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin&amp;gt;&lt;br /&gt;
    Options SymLinksIfOwnerMatch&lt;br /&gt;
    DirectoryIndex index.php&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;IfModule mod_php5.c&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_mime.c&amp;gt;&lt;br /&gt;
            AddType application/x-httpd-php .php&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.+\.php$&amp;quot;&amp;gt;&lt;br /&gt;
            SetHandler application/x-httpd-php&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        php_value include_path .&lt;br /&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp&lt;br /&gt;
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/&lt;br /&gt;
        php_admin_value mbstring.func_overload 0&lt;br /&gt;
    &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
    &amp;lt;IfModule mod_php.c&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_mime.c&amp;gt;&lt;br /&gt;
            AddType application/x-httpd-php .php&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.+\.php$&amp;quot;&amp;gt;&lt;br /&gt;
            SetHandler application/x-httpd-php&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        php_value include_path .&lt;br /&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp&lt;br /&gt;
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/&lt;br /&gt;
        php_admin_value mbstring.func_overload 0&lt;br /&gt;
    &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Disallow web access to directories that don't need it&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/templates&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/libraries&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/setup/lib&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для сохранения нажмите CTRL+O ENTER для выхода CTRL+X&lt;br /&gt;
&lt;br /&gt;
Включим этот фрагмент конфигурации:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enconf phpmyadmin.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаем временную папку:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir -p /var/lib/phpmyadmin/tmp&lt;br /&gt;
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перезагрузите Apache, чтобы изменения вступили в силу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаём файл config.inc.php из примера:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо задать парольную фразу, открываем файл config.inc.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /usr/share/phpmyadmin/config.inc.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ищем строчку '''$cfg['blowfish_secret']''' и задаём между кавычками какую-нибудь парольную фразу  длиннее 32-х символов, например,&lt;br /&gt;
&amp;lt;pre&amp;gt;$cfg['blowfish_secret'] = '12345678901234567890123456789012'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так-же сохраняем CTRL+O ENTER и выходим CTRL+X&lt;br /&gt;
Теперь вы можете получить доступ к веб-интерфейсу phpMyAdmin по адресу, введя имя 'admin' и пароль 'your_preferred_password', которые задали на шаге при создании базы данных и пользователя для phpMyAdmin:&lt;br /&gt;
&amp;lt;pre&amp;gt;http://ip_адрес/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в панели управления phpMyAdmin вы можете увидеть предупреждающее сообщение.&lt;br /&gt;
&lt;br /&gt;
[[Файл:PhpMyAdmin не полностью настроено.png|центр]]&lt;br /&gt;
&lt;br /&gt;
Переходим по ссылке &amp;quot;Узнайте причину&amp;quot;.&lt;br /&gt;
Видим сообщение:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Создать базу данных с именем.png|центр]]&lt;br /&gt;
&lt;br /&gt;
Переходим по ссылке &amp;quot;Создать&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройка PHP==&lt;br /&gt;
&lt;br /&gt;
В обоих конфигурационных файлах для web сервера:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/apache2/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И файл запуска php скриптов из командной строки:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/cli/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Строку error_reporting привести к виду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;error_reporting  =  E_ALL &amp;amp; ~E_NOTICE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А так же строки:&lt;br /&gt;
&amp;lt;pre&amp;gt;max_execution_time - С 30 меняем на 90&lt;br /&gt;
max_input_time - С 60 на 180&lt;br /&gt;
post_max_size - С 8M на 200M&lt;br /&gt;
upload_max_filesize - С 2M на 50M&lt;br /&gt;
max_file_uploads - С 20 на 150&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для применения изменений, необходимо перезапустить Apache:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем MajorDoMo==&lt;br /&gt;
&lt;br /&gt;
Скачиваем дистрибутив Majordomo, разархивируем и копируем содержимое majordomo-master в директорию /var/www/html:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/majordomo&lt;br /&gt;
cd ~/majordomo&lt;br /&gt;
wget https://github.com/sergejey/majordomo/archive/master.zip&lt;br /&gt;
unzip master.zip&lt;br /&gt;
sudo cp -rp ~/majordomo/majordomo-master/* /var/www/html&lt;br /&gt;
sudo cp -rp ~/majordomo/majordomo-master/.htaccess /var/www/html&lt;br /&gt;
rm -rf ~/majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройка прав на файлы и директории&lt;br /&gt;
&lt;br /&gt;
Установка рекомендуемых прав выполняется следующими командами:&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type f -exec chmod 0644 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type d -exec chmod 0755 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем права командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Права будут выглядеть подобно:&lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;drwxr-xr-x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-r--r--&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Установка собственника и группы на файлы и директории&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Majordomo (а именно сервисы: apache и php) работает от пользователя www-data. Права доступа к каталогу /var/www/html, где лежат файлы Majordomo по умолчанию принадлежат root. Изменим владельца директории /var/www/html на www-data.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo chown -R www-data:www-data /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вывод должен быть подобный:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-r--r--  1 www-data www-data  12K May 26 22:19 cycle.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо предоставить доступ пользователю www-data к медиа устройствам. Для этого его необходимо добавить в группу audio.&lt;br /&gt;
&lt;br /&gt;
Это делается командой usermod:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo usermod -a -G audio www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем, что он появился в группе:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;cat /etc/group | grep audio&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, то вывод будет подобный:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;audio:x:29:www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;''Дальнейшие команды в этом разделе нужно использовать только в случае если у Вас по какой-то причине система не работает совсем или не работает частично.''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;В большинстве случаев на моменте начального конфигурирования, проблемы с системой возникают из-за неправильно установленных прав.&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Меняем права доступа к файлам по принципу: всем-всё.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type f -exec chmod 0666 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И директориям&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type d -exec chmod 0777 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем права командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Права будут выглядеть подобно: &lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;drwxrwxrwx&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-rw-rw-&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если права по какой-то причине не установились, то можно сделать вариант в котором устанавливаются полные права для всех рекурсивно по директориям и файлам. &lt;br /&gt;
&lt;br /&gt;
Команда выглядит так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo chmod -R 777 /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо заметить, что данный способ, не самый безопасный, но самый простой.&lt;br /&gt;
&lt;br /&gt;
==Импорт базы данных==&lt;br /&gt;
&lt;br /&gt;
Заходим по адресу:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/phpmyadmin4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При входе будет запрошен логин, его необходимо указать как: majordomo, и пароль который который был задан на шаге: &amp;quot;Создание пользователя и БД MySQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В созданную ранее БД необходимо импортировать файл db_terminal.sql из директории с дистрибутивом. Скачать его можно по ссылке: [https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql db_termina.sql]. Для скачивания нажмите правой кнопкой мыши на ссылку и выберите: &amp;quot;Сохранить ссылку как...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Далее выполняем последовательность действий в phpMyAdmin для импорта sql файла.&lt;br /&gt;
&lt;br /&gt;
* В левой части окна выбрать БД db_terminal, путём нажатия один раз на её название.&lt;br /&gt;
* В верхней части окна найти кнопку &amp;quot;Импорт&amp;quot;.&lt;br /&gt;
* В загрузившейся странице, в разделе &amp;quot;Импортируемый файл&amp;quot; нажать &amp;quot;Выберите файл&amp;quot; или &amp;quot;Обзор&amp;quot;.&lt;br /&gt;
* В открывшемся окне, выбрать ранее сохраненный файл &amp;quot;db_terminal.sql&amp;quot;.&lt;br /&gt;
* В нижней части окна нажать &amp;quot;Вперёд&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Импорт db terminal успешно завершён.png|мини|слева]]&lt;br /&gt;
После успешного импорта должна отобразится зелёная строка с подобным текстом:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;Импорт успешно завершён, выполнено 192 запроса. (db_terminal.sql)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если возникли проблемы с импортом БД используя phpMyAdmin, есть возможность импортировать дамп БД используя командную строку. Для этого скачайте дамп файл командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo wget -O /tmp/db_terminal.sql https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И импортируйте его:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -umajordomo -p db_terminal &amp;lt; /tmp/db_terminal.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет запрошен пароль пользователя majordomo, который был задан на шаге: &amp;quot;[[Установка_на_Linux#Создание пользователя и БД MySQL:|Создание пользователя и БД MySQL]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Правим основной конфиг==&lt;br /&gt;
&lt;br /&gt;
Изначально копируем пример конфига в рабочий конфиг:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp /var/www/html/config.php.sample /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Установим собственника и группу для конфига:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown www-data: /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И открываем конфиг для редактирования:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописываем имя пользователя и пароль пользователя БД. Для этого нужно исправить строки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Define('DB_USER', 'majordomo');&lt;br /&gt;
Define('DB_PASSWORD', '');&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
* '''DB_USER''' - пользователь majordomo который был создан на шаге: &amp;quot;Создание пользователя и БД MySQL&amp;quot;.&lt;br /&gt;
* '''DB_PASSWORD''' - пароль от этого пользователя, который был задан на том же шаге.&lt;br /&gt;
&lt;br /&gt;
Сохраняем файл, и выходим из редактора.&lt;br /&gt;
&lt;br /&gt;
Все, теперь можно зайти на веб интерфейс Majordomo.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 http://sever_ip/&lt;br /&gt;
&lt;br /&gt;
Если установка выполняется не на локальную машину.&lt;br /&gt;
&lt;br /&gt;
При первом входе должна быть отображена страница: &amp;quot;Hello, world! :)&amp;quot; на которой необходимо выбрать тайм зону, язык системы и цветовую тему. По завершении нажать кнопку &amp;quot;Continue&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В случае если такая страница не отобразилась, открыть её можно по ссылке:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/popup/first_start.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Основной цикл Вариант 1. Systemd unit. Предпочтительный==&lt;br /&gt;
&lt;br /&gt;
Код юнита:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Majordomo cycles service&lt;br /&gt;
Requires=network.target mysql.service apache2.service&lt;br /&gt;
After=mysql.service apache2.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=www-data&lt;br /&gt;
Group=www-data&lt;br /&gt;
ExecStart=/usr/bin/php /var/www/html/cycle.php&lt;br /&gt;
ExecStop=/usr/bin/pkill -f cycle_*&lt;br /&gt;
&lt;br /&gt;
KillSignal=SIGKILL&lt;br /&gt;
KillMode=control-group&lt;br /&gt;
RestartSec=1min&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данный код необходимо скопировать в файл: /etc/systemd/system/majordomo.service Для этого открываем файл:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/majordomo.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И вставляем в него код, который представлен выше.&lt;br /&gt;
&lt;br /&gt;
Для автозапуска MajorDoMo при старте системы, необходимо выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo systemctl enable majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И для запуска MajorDoMo необходимо выполнить:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo systemctl start majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Основной цикл Вариант 2. Если не сработал первый вариант==&lt;br /&gt;
&lt;br /&gt;
Запуск основного цикла добавляем в Cron, для пользователя www-data, так как файлы МД принадлежат этому пользователю.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo crontab -e -u www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В открывшемся окне добавляем строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;@reboot /usr/bin/php /var/www/html/cycle.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''И обязательно!''' ставим Enter для того чтобы в конце открытого файла был перенос строки.&lt;br /&gt;
&lt;br /&gt;
Сохраняем и перезапускаем компьютер:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После запуска циклов можно открыть MajorDoMo по адресу:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если MajorDoMo устанавливалась на локальный компьютер.&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://IP_ADDRESS/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если MajorDoMo устанавливалась на удалённый сервер.&lt;br /&gt;
&lt;br /&gt;
Если не выполняются onNewMinute и onNewHour&lt;br /&gt;
&lt;br /&gt;
Нужно проверить настройку BASE_URL в config.php. Если Вы используете домен, а не IP, тогда добавьте в файл /etc/hosts строку вида:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;127.0.0.1 domain.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где domain.com - это Ваш домен который Вы используете. Комментарий Сергея с форума: Дело в том, что эти методы вызываются через внутреннюю функцию raseEvent, которая обращается к серверу через HTTP-запрос используя BASE_URL. Если он неправильный, то метод не вызовется.&lt;br /&gt;
&lt;br /&gt;
На этом статья об установке MajorDoMo на Linux Ubuntu закончена.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Полезные темы на форуме==&lt;br /&gt;
&lt;br /&gt;
Для быстрой установки необходимых атрибутов можно воспользоваться [http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=2&amp;amp;start=10#p84 данным скриптом].&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=298 Установка на Ubuntu]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=573 Установка Системы Majordomo на Raspberry pi]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=371 Установка на FreeBSD]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=630 (РЕШЕНО) Проблема с установкой и настройкой на Ubuntu 13.04]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=424 Установка на Debian подробная инструкция]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=740 CubieBoard - попытка №1]&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_Linux&amp;diff=1886</id>
		<title>Установка на Linux</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_Linux&amp;diff=1886"/>
		<updated>2023-02-20T09:54:17Z</updated>

		<summary type="html">&lt;p&gt;Newz20: /* Включаем mod_rewrite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Установка]]&lt;br /&gt;
&lt;br /&gt;
==Альтернативные варианты==&lt;br /&gt;
[[installmd|Скрипт installmd, установка почти на все виды плат и полноценный Linux]]&lt;br /&gt;
&lt;br /&gt;
[https://mjdm.ru/forum/viewtopic.php?f=3&amp;amp;p=92843#p92843 Скрипт установки на Ubuntu 16, 18 или 20]&lt;br /&gt;
&lt;br /&gt;
== Внимание!!! ==&lt;br /&gt;
&lt;br /&gt;
''Инструкция была написана под операционную систему Ubuntu 18.10 и тестировалась только на ней!&lt;br /&gt;
В случае если у Вас установлена другая операционная система Linux то возможно, на каком-то из шагов, у Вас возникнут ошибки. В данном случае, рекомендуется сообщить об этих ошибках в чат в [https://t.me/MajorDoMoRu Telegram] или же на [https://majordomo.smartliving.ru/forum/ форум].''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Перед началом работы необходимо убедиться что в системе установлен пакет sudo.&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Для этого нужно выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если в ответ будет отображено сообщение подобного плана:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;bash: sudo: command not found&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это будет обозначать, что пакет sudo по умолчанию не установлен в Вашей ОС. Потому его необходимо установить.&lt;br /&gt;
&lt;br /&gt;
Для это необходимо выполнить следующие команды:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет запрошен пароль пользователя от которого выполняется команда. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; При вводе пароля символы не будут отображены на экране!&lt;br /&gt;
&lt;br /&gt;
После успешного ввода пароля, в случае если вид консоли изменился и принял подобный вид:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;root@localhost:~#&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Производится установка sudo командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;apt install sudo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После успешной установки пакета, необходимо добавить пользователя, от которого будет производиться установка, в группу sudo. Это делается командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;usermod -aG sudo USERNAME&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
USERNAME - это имя пользователя. Для Raspberry PI это обычно пользователь: pi.&lt;br /&gt;
По завершении этих действий, необходимо выйти в окружение обычного пользователя. Это выполняется командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем необходимо перелогиниться, для этого введем&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo service systemd-logind restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Приглашающее сообщение в консоли, должно принять подобный вид:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;pi@localhost:~$&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если вы разворачиваете сервер  на ноутбуке вам пригодится отключение режима засыпания при закрытии крышки.&lt;br /&gt;
для этого набираем&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/systemd/logind.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Находим строчку ''#HandleLidSwitch=suspend'' и меняем её на&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;HandleLidSwitch=ignore&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И опять же  перелогиниться&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo service systemd-logind restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Обновление кеша пакетов и обновление установленных пакетов (в случае если для них есть обновления)==&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
Установим ещё пару приложений которые будем использовать в процессе установки&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install nano wget unzip -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем SSH==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install openssh-server openssh-client -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем MySQL==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install mysql-server mysql-client -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните. Этот пароль понадобится в дальнейшем.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; Если установщик не запросил пароль, то выполните в консоли команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И пройдите по всем шагам. И в этих шагах укажите пароль пользователя root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt; в качестве альтернативы MySQL по умолчанию используется форк проекта, MariaDB, который поддерживается сообществом.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install mariadb-server -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Создание пользователя и БД MySQL:==&lt;br /&gt;
&lt;br /&gt;
Для начала создадим БД командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;CREATE DATABASE db_terminal;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После выполнения этой команды, и далее по параграфу, MySQL будет просить ввести пароль пользователя root, который мы указывали выше. Вводим его где будет необходимо и нажимаем Enter.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; При вводе пароля символы не будут отображены на экране.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее создаём пользователя для работы с этой БД:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
password - необходимо заменить на ваш пароль, который тоже необходимо запомнить. Этот пароль будет использоваться для работы MajorDoMo с БД, а так же для входа в phpMyAdmin ниже по инструкции.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; Рекомендуется использовать сложный пароль, так как в случае если будет открыт доступ к MajorDoMo и phpMyAdmin извне, то есть вероятность того, что простой пароль будет взломан и тот, кто это сделает, сможет получить доступ к важным данным в Вашей MajorDoMo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для предоставления только что созданному пользователю привилегий, необходимо выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И в завершение, необходимо обновить привилегии:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Установка WEB сервера==&lt;br /&gt;
&lt;br /&gt;
В качестве web сервера можно установить разные пакеты. В данном случае рассматривается вариант установки Apache.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install apache2 apache2-utils -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правим конфиг Апача&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/apache2/sites-available/default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если такого файла нет, он может называться по-другому. Например:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом файле находим раздел:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;lt;Directory /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И заменяем во всех совпадениях&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;AllowOverride None&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
на&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;AllowOverride All&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняемся и выходим: Ctrl-O Ctrl-X&lt;br /&gt;
&lt;br /&gt;
В более новых версиях Apache конфигурационный файл может не содержать директив &amp;quot;AllowOverride&amp;quot;. В таком случае необходимо вручную привести файл к виду:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  &amp;lt;Directory /&amp;gt;&lt;br /&gt;
    Options FollowSymLinks&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
  &amp;lt;Directory /var/www/html&amp;gt;&lt;br /&gt;
    Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    allow from all&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/usr/lib/cgi-bin&amp;quot;&amp;gt;&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    Allow from all&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удаляем стандартный index.html файл командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo rm -f /var/www/html/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И перезапускаем Апач:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если при перезапуске выдаст примерно такой ответ:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То необходимо поправить apache2.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/apache2/apache2.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вставив в него такую строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ServerName localhost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняемся и выходим: Ctrl-O Ctrl-X&lt;br /&gt;
&lt;br /&gt;
Перезапускаем Апач&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если ваша версия Apache отличается от рассматриваемой, то пути к файлам конфигурации могут быть такими:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/apache2/sites-available/default.conf&lt;br /&gt;
sudo nano /etc/apache2/httpd.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем PHP==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install -y php7.3 php7.3-cgi php7.3-cli php-pear php7.3-mbstring php7.3-mysql php7.3-xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
curl и его библиотеки:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install curl libcurl3 libcurl3-dev php-curl -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install curl libcurl4 libcurl3-dev php-curl -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для apache&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install libapache2-mod-php -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для последних версий Апача необходимо включить работу с коротким тегом &amp;lt;? /?&amp;gt; для этого откройте файл php.ini командой: (внимательно смотрите какая версия PHP установилась у вас, и поменяйте 7.3 на свои версии. здесь и далее по инструкции)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/apache2/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо заменить или вставить строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;short_open_tag = On&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем PHPMYADMIN==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install phpmyadmin -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Установщик изначально спросит о том, к какой версии web сервера необходимо произвести настройку. Необходимо выбрать версию apache2 путём нажатия пробела и Enter.&lt;br /&gt;
&lt;br /&gt;
Установщик спросит необходимость конфигурирования баз данных при помощи &amp;quot;dbconfig-common&amp;quot;. Отвечаем утвердительно путём нажатия Enter.&lt;br /&gt;
&lt;br /&gt;
Далее установщик спрашивает пароль MySQL сервера. Этот пароль задавался в разделе &amp;quot;Устанавливаем MySQL&amp;quot; данного руководства. Вводим указанный пароль и подтверждаем его ещё раз.&lt;br /&gt;
&lt;br /&gt;
==Включаем mod_rewrite==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo a2enmod rewrite&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перезапускаем Апач&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin не включен в репозиторий программного обеспечения Debian 10, поэтому мы должны загрузить его с phpmyadmin.net&lt;br /&gt;
&lt;br /&gt;
Установим необходимые компоненты:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt install php7.3-mbstring php7.3-zip php7.3-gd wget -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;cd /tmp&lt;br /&gt;
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
или вставляем ссылку на последнюю версию с сайта https://www.phpmyadmin.net/downloads/&lt;br /&gt;
&lt;br /&gt;
Распаковываем, копируем в /usr/share/phpmyadmin и назначаем права:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unzip phpMyAdmin-5.1.1-all-languages.zip&lt;br /&gt;
sudo mv phpMyAdmin-5.1.1-all-languages/ /usr/share/phpmyadmin&lt;br /&gt;
sudo chown -R www-data:www-data /usr/share/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь нам нужно войти в консоль MariaDB и создать базу данных и пользователя для phpMyAdmin.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mysql -u root&lt;br /&gt;
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'your_preferred_password';&lt;br /&gt;
grant all privileges on *.* to admin@localhost with grant option;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Где '''your_preferred_password''' будет пароль для входа в phpMyAdmin&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl restart apache2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создайте файл phpmyadmin.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/apache2/conf-available/phpmyadmin.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вставьте следующий текст в файл phpmyadmin.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# phpMyAdmin default Apache configuration&lt;br /&gt;
&lt;br /&gt;
Alias /phpmyadmin /usr/share/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin&amp;gt;&lt;br /&gt;
    Options SymLinksIfOwnerMatch&lt;br /&gt;
    DirectoryIndex index.php&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;IfModule mod_php5.c&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_mime.c&amp;gt;&lt;br /&gt;
            AddType application/x-httpd-php .php&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.+\.php$&amp;quot;&amp;gt;&lt;br /&gt;
            SetHandler application/x-httpd-php&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        php_value include_path .&lt;br /&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp&lt;br /&gt;
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/&lt;br /&gt;
        php_admin_value mbstring.func_overload 0&lt;br /&gt;
    &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
    &amp;lt;IfModule mod_php.c&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_mime.c&amp;gt;&lt;br /&gt;
            AddType application/x-httpd-php .php&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.+\.php$&amp;quot;&amp;gt;&lt;br /&gt;
            SetHandler application/x-httpd-php&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        php_value include_path .&lt;br /&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp&lt;br /&gt;
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/&lt;br /&gt;
        php_admin_value mbstring.func_overload 0&lt;br /&gt;
    &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Disallow web access to directories that don't need it&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/templates&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/libraries&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/setup/lib&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для сохранения нажмите CTRL+O ENTER для выхода CTRL+X&lt;br /&gt;
&lt;br /&gt;
Включим этот фрагмент конфигурации:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enconf phpmyadmin.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаем временную папку:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir -p /var/lib/phpmyadmin/tmp&lt;br /&gt;
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перезагрузите Apache, чтобы изменения вступили в силу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаём файл config.inc.php из примера:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо задать парольную фразу, открываем файл config.inc.php&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /usr/share/phpmyadmin/config.inc.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ищем строчку '''$cfg['blowfish_secret']''' и задаём между кавычками какую-нибудь парольную фразу  длиннее 32-х символов, например,&lt;br /&gt;
&amp;lt;pre&amp;gt;$cfg['blowfish_secret'] = '12345678901234567890123456789012'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так-же сохраняем CTRL+O ENTER и выходим CTRL+X&lt;br /&gt;
Теперь вы можете получить доступ к веб-интерфейсу phpMyAdmin по адресу, введя имя 'admin' и пароль 'your_preferred_password', которые задали на шаге при создании базы данных и пользователя для phpMyAdmin:&lt;br /&gt;
&amp;lt;pre&amp;gt;http://ip_адрес/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в панели управления phpMyAdmin вы можете увидеть предупреждающее сообщение.&lt;br /&gt;
&lt;br /&gt;
[[Файл:PhpMyAdmin не полностью настроено.png|центр]]&lt;br /&gt;
&lt;br /&gt;
Переходим по ссылке &amp;quot;Узнайте причину&amp;quot;.&lt;br /&gt;
Видим сообщение:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Создать базу данных с именем.png|центр]]&lt;br /&gt;
&lt;br /&gt;
Переходим по ссылке &amp;quot;Создать&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройка PHP==&lt;br /&gt;
&lt;br /&gt;
В обоих конфигурационных файлах для web сервера:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/apache2/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И файл запуска php скриптов из командной строки:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/cli/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Строку error_reporting привести к виду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;error_reporting  =  E_ALL &amp;amp; ~E_NOTICE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А так же строки:&lt;br /&gt;
&amp;lt;pre&amp;gt;max_execution_time - С 30 меняем на 90&lt;br /&gt;
max_input_time - С 60 на 180&lt;br /&gt;
post_max_size - С 8M на 200M&lt;br /&gt;
upload_max_filesize - С 2M на 50M&lt;br /&gt;
max_file_uploads - С 20 на 150&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для применения изменений, необходимо перезапустить Apache:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем MajorDoMo==&lt;br /&gt;
&lt;br /&gt;
Скачиваем дистрибутив Majordomo, разархивируем и копируем содержимое majordomo-master в директорию /var/www/html:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/majordomo&lt;br /&gt;
cd ~/majordomo&lt;br /&gt;
wget https://github.com/sergejey/majordomo/archive/master.zip&lt;br /&gt;
unzip master.zip&lt;br /&gt;
sudo cp -rp ~/majordomo/majordomo-master/* /var/www/html&lt;br /&gt;
sudo cp -rp ~/majordomo/majordomo-master/.htaccess /var/www/html&lt;br /&gt;
rm -rf ~/majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройка прав на файлы и директории&lt;br /&gt;
&lt;br /&gt;
Установка рекомендуемых прав выполняется следующими командами:&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type f -exec chmod 0644 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type d -exec chmod 0755 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем права командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Права будут выглядеть подобно:&lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;drwxr-xr-x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-r--r--&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Установка собственника и группы на файлы и директории&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Majordomo (а именно сервисы: apache и php) работает от пользователя www-data. Права доступа к каталогу /var/www/html, где лежат файлы Majordomo по умолчанию принадлежат root. Изменим владельца директории /var/www/html на www-data.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo chown -R www-data:www-data /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вывод должен быть подобный:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-r--r--  1 www-data www-data  12K May 26 22:19 cycle.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо предоставить доступ пользователю www-data к медиа устройствам. Для этого его необходимо добавить в группу audio.&lt;br /&gt;
&lt;br /&gt;
Это делается командой usermod:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo usermod -a -G audio www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем, что он появился в группе:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;cat /etc/group | grep audio&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, то вывод будет подобный:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;audio:x:29:www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;''Дальнейшие команды в этом разделе нужно использовать только в случае если у Вас по какой-то причине система не работает совсем или не работает частично.''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;В большинстве случаев на моменте начального конфигурирования, проблемы с системой возникают из-за неправильно установленных прав.&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Меняем права доступа к файлам по принципу: всем-всё.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type f -exec chmod 0666 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И директориям&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type d -exec chmod 0777 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем права командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Права будут выглядеть подобно: &lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;drwxrwxrwx&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-rw-rw-&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если права по какой-то причине не установились, то можно сделать вариант в котором устанавливаются полные права для всех рекурсивно по директориям и файлам. &lt;br /&gt;
&lt;br /&gt;
Команда выглядит так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo chmod -R 777 /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо заметить, что данный способ, не самый безопасный, но самый простой.&lt;br /&gt;
&lt;br /&gt;
==Импорт базы данных==&lt;br /&gt;
&lt;br /&gt;
Заходим по адресу:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/phpmyadmin4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При входе будет запрошен логин, его необходимо указать как: majordomo, и пароль который который был задан на шаге: &amp;quot;Создание пользователя и БД MySQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В созданную ранее БД необходимо импортировать файл db_terminal.sql из директории с дистрибутивом. Скачать его можно по ссылке: [https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql db_termina.sql]. Для скачивания нажмите правой кнопкой мыши на ссылку и выберите: &amp;quot;Сохранить ссылку как...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Далее выполняем последовательность действий в phpMyAdmin для импорта sql файла.&lt;br /&gt;
&lt;br /&gt;
* В левой части окна выбрать БД db_terminal, путём нажатия один раз на её название.&lt;br /&gt;
* В верхней части окна найти кнопку &amp;quot;Импорт&amp;quot;.&lt;br /&gt;
* В загрузившейся странице, в разделе &amp;quot;Импортируемый файл&amp;quot; нажать &amp;quot;Выберите файл&amp;quot; или &amp;quot;Обзор&amp;quot;.&lt;br /&gt;
* В открывшемся окне, выбрать ранее сохраненный файл &amp;quot;db_terminal.sql&amp;quot;.&lt;br /&gt;
* В нижней части окна нажать &amp;quot;Вперёд&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Импорт db terminal успешно завершён.png|мини|слева]]&lt;br /&gt;
После успешного импорта должна отобразится зелёная строка с подобным текстом:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;Импорт успешно завершён, выполнено 192 запроса. (db_terminal.sql)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если возникли проблемы с импортом БД используя phpMyAdmin, есть возможность импортировать дамп БД используя командную строку. Для этого скачайте дамп файл командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo wget -O /tmp/db_terminal.sql https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И импортируйте его:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -umajordomo -p db_terminal &amp;lt; /tmp/db_terminal.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет запрошен пароль пользователя majordomo, который был задан на шаге: &amp;quot;[[Установка_на_Linux#Создание пользователя и БД MySQL:|Создание пользователя и БД MySQL]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Правим основной конфиг==&lt;br /&gt;
&lt;br /&gt;
Изначально копируем пример конфига в рабочий конфиг:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp /var/www/html/config.php.sample /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Установим собственника и группу для конфига:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown www-data: /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И открываем конфиг для редактирования:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописываем имя пользователя и пароль пользователя БД. Для этого нужно исправить строки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Define('DB_USER', 'majordomo');&lt;br /&gt;
Define('DB_PASSWORD', '');&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
* '''DB_USER''' - пользователь majordomo который был создан на шаге: &amp;quot;Создание пользователя и БД MySQL&amp;quot;.&lt;br /&gt;
* '''DB_PASSWORD''' - пароль от этого пользователя, который был задан на том же шаге.&lt;br /&gt;
&lt;br /&gt;
Сохраняем файл, и выходим из редактора.&lt;br /&gt;
&lt;br /&gt;
Все, теперь можно зайти на веб интерфейс Majordomo.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 http://sever_ip/&lt;br /&gt;
&lt;br /&gt;
Если установка выполняется не на локальную машину.&lt;br /&gt;
&lt;br /&gt;
При первом входе должна быть отображена страница: &amp;quot;Hello, world! :)&amp;quot; на которой необходимо выбрать тайм зону, язык системы и цветовую тему. По завершении нажать кнопку &amp;quot;Continue&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В случае если такая страница не отобразилась, открыть её можно по ссылке:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/popup/first_start.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Основной цикл Вариант 1. Systemd unit. Предпочтительный==&lt;br /&gt;
&lt;br /&gt;
Код юнита:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Majordomo cycles service&lt;br /&gt;
Requires=network.target mysql.service apache2.service&lt;br /&gt;
After=mysql.service apache2.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=www-data&lt;br /&gt;
Group=www-data&lt;br /&gt;
ExecStart=/usr/bin/php /var/www/html/cycle.php&lt;br /&gt;
ExecStop=/usr/bin/pkill -f cycle_*&lt;br /&gt;
&lt;br /&gt;
KillSignal=SIGKILL&lt;br /&gt;
KillMode=control-group&lt;br /&gt;
RestartSec=1min&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данный код необходимо скопировать в файл: /etc/systemd/system/majordomo.service Для этого открываем файл:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/majordomo.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И вставляем в него код, который представлен выше.&lt;br /&gt;
&lt;br /&gt;
Для автозапуска MajorDoMo при старте системы, необходимо выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo systemctl enable majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И для запуска MajorDoMo необходимо выполнить:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo systemctl start majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Основной цикл Вариант 2. Если не сработал первый вариант==&lt;br /&gt;
&lt;br /&gt;
Запуск основного цикла добавляем в Cron, для пользователя www-data, так как файлы МД принадлежат этому пользователю.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo crontab -e -u www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В открывшемся окне добавляем строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;@reboot /usr/bin/php /var/www/html/cycle.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''И обязательно!''' ставим Enter для того чтобы в конце открытого файла был перенос строки.&lt;br /&gt;
&lt;br /&gt;
Сохраняем и перезапускаем компьютер:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После запуска циклов можно открыть MajorDoMo по адресу:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если MajorDoMo устанавливалась на локальный компьютер.&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://IP_ADDRESS/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если MajorDoMo устанавливалась на удалённый сервер.&lt;br /&gt;
&lt;br /&gt;
Если не выполняются onNewMinute и onNewHour&lt;br /&gt;
&lt;br /&gt;
Нужно проверить настройку BASE_URL в config.php. Если Вы используете домен, а не IP, тогда добавьте в файл /etc/hosts строку вида:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;127.0.0.1 domain.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где domain.com - это Ваш домен который Вы используете. Комментарий Сергея с форума: Дело в том, что эти методы вызываются через внутреннюю функцию raseEvent, которая обращается к серверу через HTTP-запрос используя BASE_URL. Если он неправильный, то метод не вызовется.&lt;br /&gt;
&lt;br /&gt;
На этом статья об установке MajorDoMo на Linux Ubuntu закончена.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Полезные темы на форуме==&lt;br /&gt;
&lt;br /&gt;
Для быстрой установки необходимых атрибутов можно воспользоваться [http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=2&amp;amp;start=10#p84 данным скриптом].&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=298 Установка на Ubuntu]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=573 Установка Системы Majordomo на Raspberry pi]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=371 Установка на FreeBSD]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=630 (РЕШЕНО) Проблема с установкой и настройкой на Ubuntu 13.04]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=424 Установка на Debian подробная инструкция]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=740 CubieBoard - попытка №1]&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=MQTT_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C&amp;diff=1766</id>
		<title>MQTT модуль</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=MQTT_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C&amp;diff=1766"/>
		<updated>2021-06-04T06:59:15Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MQTT]]&lt;br /&gt;
[[Category:Модули]]&lt;br /&gt;
'''MQTT''' - (англ. message queuing telemetry transport) — упрощённый сетевой протокол, работающий поверх TCP/IP, ориентированный для обмена сообщениями между устройствами по принципу издатель-подписчик.&lt;br /&gt;
&lt;br /&gt;
Модуль выступает клиентом и способен отправлять и принимать сообщения через сервер, модуль умеет не только прямые подписки на ветки от других клиентов(устройств), но и разбивать данные в формате JSON на ветки и свойства. Вы можете привязывать каждое полученное сообщение в ветке к нужному свойству, ветки не привязанные к свойствам никуда не пишут свои данные.&lt;br /&gt;
&lt;br /&gt;
Для работы клиентов MQTT необходим сервер или еще его называют брокером (в предустановленном наборе и рекомендованный к использованию Mosquitto), данный сервер отвечает за пересылку сообщений от клиента к клиенту. Клиент MQTT может находится где угодно и для работы ему необходим только канал связи с сервером MQTT. Таким образом вы можете через интернет управлять устройствами поддерживающими MQTT протокол где угодно. Они в свою очередь сообщат вам о своем состоянии тем же образом. MajorDoMo может автоматизировать ваш гараж находясь у вас дома, для этого необходим только интернет канал и устройства с поддержкой MQTT.&lt;br /&gt;
&lt;br /&gt;
[[Файл:2019-12-12 08-44-27.jpg|мини|слева|Настройки mqtt]] [[Файл:2019-12-12 08-42-40.jpg|мини|центр|настройка топика mqtt]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Про retain.&lt;br /&gt;
Это &amp;quot;залипание&amp;quot; топика на MQTT брокере.&lt;br /&gt;
&lt;br /&gt;
При подписывании нового клиента к топику он первым делом получает текущее, &amp;quot;залипшее&amp;quot; значение - независимо от того как давно оно произошло (ну, с учетом настроек брокера).&lt;br /&gt;
&lt;br /&gt;
Логика простая: если в топике предполагается хранение текущего значения - лучше его сделать retained. Тогда он будет доступен всем клиентам в любой момент, им не нужно будет дожидаться повторной отправки значения источником.&lt;br /&gt;
&lt;br /&gt;
Если же топик предполагается использовать для какого-то события, которое важно именно в момент его возникновения - тогда флаг retained выставлять не следует.&lt;br /&gt;
&lt;br /&gt;
Соответственно, retained топик потребляет больше ресурсов брокера, и использовать его нужно только тогда когда необходимо.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для фиксации положения осветителей (включены или выключены) при отключении света её можно использовать. В этом случае тот же MD будет знать текущее состояние освещения даже сразу после перезагрузки сервера а не тогда когда кто-то щелкнет выключателем.&lt;br /&gt;
&lt;br /&gt;
А, вот пример когда retained использовать точно не следует: например, в момент нажатия кнопки по MQTT отправляется топик (не важно, со значением или без значения). Просто для того чтобы оповестить подписчиков что произошло событие &amp;quot;нажатие кнопки&amp;quot;. Так вот, если его сделать retained, то каждый новый клиент при подписывании на топик сразу получит оповещение &amp;quot;кнопка была нажата&amp;quot;, даже если это произошло очень давно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Несколько видео по настройке&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;gL3UM_HuXAM&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;youtube&amp;gt;EwH6jY_scUU&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;youtube&amp;gt;jFUPy1q3ze8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;youtube&amp;gt;4O-2dJwRQtg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Примеры кода==&lt;br /&gt;
Отправка сообщения через модуль в топик&lt;br /&gt;
&amp;lt;pre&amp;gt;include_once(DIR_MODULES . 'mqtt/mqtt.class.php');&lt;br /&gt;
$mqtt = new mqtt();&lt;br /&gt;
$rezult = $mqtt-&amp;gt;mqttPublish($topic, $value,  0, 0);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ошибки==&lt;br /&gt;
После перехода mosquitto на version 2.0.10 были по дефолту активировали секьюрити функции теперь запрещен доступ без пароля и запрещено подключение с любых систем не 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
Для начала проверим что версия новая стала &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mosquitto -v&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
в консоли линя выведет вам версию, если она больше 2.0 то идем в конфиг&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/mosquitto/mosquitto.conf&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
правим файл, к тому что есть дописываем &lt;br /&gt;
&amp;lt;pre&amp;gt;listener 1883 0.0.0.0&amp;lt;/pre&amp;gt;  разрешает подключение к брокеру на любом интерфейсе.&lt;br /&gt;
&amp;lt;pre&amp;gt;allow_anonymous true&amp;lt;/pre&amp;gt; разрешает подключение без паролей.&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C_%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C&amp;diff=1721</id>
		<title>Восстановить пароль</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C_%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C&amp;diff=1721"/>
		<updated>2021-01-28T05:43:28Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====Описание====&lt;br /&gt;
Чтобы восстановить пароль пользователя, нужен доступ к админ панели. Если доступа нет, то один из выходов - создать пользователя через базу данных.&lt;br /&gt;
&lt;br /&gt;
Для этого в базе данных db_terminal (через PhpMyAdmin будет удобнее) в таблице users нужно добавить или изменить строку с пользователем.&lt;br /&gt;
&lt;br /&gt;
При изменении своего пользователя достаточно изметить поле &lt;br /&gt;
PASSWORD:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fb131bc57a477c8c9d068f1ee5622ac304195a77164ccc2d75d82dfe1a727ba8d674ed87f96143b2b416aacefb555e3045c356faa23e6d21de72b85822e39fdd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
И зайти под своим пользователем с паролем &amp;lt;pre&amp;gt;111&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Данные новой учетки====&lt;br /&gt;
вот настройка на логин '''111''' и пароль '''111'''&lt;br /&gt;
====настройка====&lt;br /&gt;
USERNAME: &amp;lt;pre&amp;gt;111&amp;lt;/pre&amp;gt;&lt;br /&gt;
NAME: &amp;lt;pre&amp;gt;111&amp;lt;/pre&amp;gt;&lt;br /&gt;
PASSWORD:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fb131bc57a477c8c9d068f1ee5622ac304195a77164ccc2d75d82dfe1a727ba8d674ed87f96143b2b416aacefb555e3045c356faa23e6d21de72b85822e39fdd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
IS_ADMIN &amp;lt;pre&amp;gt;1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Или выполнить &lt;br /&gt;
====SQL запрос====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO users (USERNAME,NAME,PASSWORD,IS_ADMIN) VALUES('111','111','fb131bc57a477c8c9d068f1ee5622ac304195a77164ccc2d75d82dfe1a727ba8d674ed87f96143b2b416aacefb555e3045c356faa23e6d21de72b85822e39fdd',1);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После успешного входа не забудьте удалить пользователя 111 или сменить ему пароль&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C_%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C&amp;diff=1720</id>
		<title>Восстановить пароль</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C_%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C&amp;diff=1720"/>
		<updated>2021-01-28T05:27:05Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====Описание====&lt;br /&gt;
Чтобы восстановить пароль пользователя, нужен доступ к админ панели. Если доступа нет, то один из выходов - создать пользователя через базу данных.&lt;br /&gt;
&lt;br /&gt;
Для этого в базе данных db_terminal (через PhpMyAdmin будет удобнее) в таблице users нужно добавить или изменить строку с пользователем.&lt;br /&gt;
&lt;br /&gt;
При изменении своего пользователя достаточно изметить поле &lt;br /&gt;
PASSWORD:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fb131bc57a477c8c9d068f1ee5622ac304195a77164ccc2d75d82dfe1a727ba8d674ed87f96143b2b416aacefb555e3045c356faa23e6d21de72b85822e39fdd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
И зайти под своим пользователем с паролем &amp;lt;pre&amp;gt;111&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Данные новой учетки====&lt;br /&gt;
вот настройка на логин '''111''' и пароль '''111'''&lt;br /&gt;
====настройка====&lt;br /&gt;
USERNAME: &amp;lt;pre&amp;gt;111&amp;lt;/pre&amp;gt;&lt;br /&gt;
NAME: &amp;lt;pre&amp;gt;111&amp;lt;/pre&amp;gt;&lt;br /&gt;
PASSWORD:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fb131bc57a477c8c9d068f1ee5622ac304195a77164ccc2d75d82dfe1a727ba8d674ed87f96143b2b416aacefb555e3045c356faa23e6d21de72b85822e39fdd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
IS_ADMIN &amp;lt;pre&amp;gt;1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Или выполнить &lt;br /&gt;
====SQL запрос====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO users (USERNAME,NAME,PASSWORD,IS_ADMIN) VALUES('111','111','fb131bc57a477c8c9d068f1ee5622ac304195a77164ccc2d75d82dfe1a727ba8d674ed87f96143b2b416aacefb555e3045c356faa23e6d21de72b85822e39fdd','1');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После успешного входа не забудьте удалить пользователя 111 или сменить ему пароль&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=RemoveLinkedProperty&amp;diff=1707</id>
		<title>RemoveLinkedProperty</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=RemoveLinkedProperty&amp;diff=1707"/>
		<updated>2021-01-24T15:21:18Z</updated>

		<summary type="html">&lt;p&gt;Newz20: /* Альтернативные названия функции (сленг) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Встроенные функции]]&lt;br /&gt;
==Описание==&lt;br /&gt;
'''removeLinkedProperty'''($object, $property, $module); -- Summary of removeLinkedProperty&lt;br /&gt;
@param mixed $object Object&lt;br /&gt;
@param mixed $property Property&lt;br /&gt;
@param mixed $module Module&lt;br /&gt;
@return int&lt;br /&gt;
==Примеры запросов==&lt;br /&gt;
&lt;br /&gt;
removeLinkedProperty(объект, свойство, zigbee2mqtt);&lt;br /&gt;
&lt;br /&gt;
==Альтернативные названия функции (сленг)==&lt;br /&gt;
&lt;br /&gt;
linked&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=RemoveLinkedProperty&amp;diff=1706</id>
		<title>RemoveLinkedProperty</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=RemoveLinkedProperty&amp;diff=1706"/>
		<updated>2021-01-24T15:20:44Z</updated>

		<summary type="html">&lt;p&gt;Newz20: /* Примеры запросов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Встроенные функции]]&lt;br /&gt;
==Описание==&lt;br /&gt;
'''removeLinkedProperty'''($object, $property, $module); -- Summary of removeLinkedProperty&lt;br /&gt;
@param mixed $object Object&lt;br /&gt;
@param mixed $property Property&lt;br /&gt;
@param mixed $module Module&lt;br /&gt;
@return int&lt;br /&gt;
==Примеры запросов==&lt;br /&gt;
&lt;br /&gt;
removeLinkedProperty(объект, свойство, zigbee2mqtt);&lt;br /&gt;
&lt;br /&gt;
==Альтернативные названия функции (сленг)==&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=NEW_VALUE_%D0%B8_OLD_VALUE&amp;diff=1702</id>
		<title>NEW VALUE и OLD VALUE</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=NEW_VALUE_%D0%B8_OLD_VALUE&amp;diff=1702"/>
		<updated>2020-12-17T10:39:49Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Примеры]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;if ($params['NEW_VALUE'] == $params['OLD_VALUE']) return;&amp;lt;/pre&amp;gt; //код сравнивает новое значение со старым и выходит из метода если они совпадают.&lt;br /&gt;
&lt;br /&gt;
срабатывание по фронту для 0/1 значений&lt;br /&gt;
&amp;lt;pre&amp;gt;if ($params['NEW_VALUE'] == 1 &amp;amp;&amp;amp; $params['OLD_VALUE'] == 0) &amp;lt;/pre&amp;gt; // из 0 в 1 - &amp;quot;началось&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;if ($params['NEW_VALUE'] == 0 &amp;amp;&amp;amp; $params['OLD_VALUE'] == 1) &amp;lt;/pre&amp;gt; // из 1 в 0  - &amp;quot;кончилось&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Однако из топика MQTT приходит параметр не NEW_VALUE, а '''VALUE'''. При использовании привязки методов к топикам использовать его.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Так же можно использовать в различных условиях передаваемые данные (ниже пример вызова метода по изменению свойства класса)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//{&amp;quot;PROPERTY&amp;quot;:&amp;quot;temperatureDevices&amp;quot;, &amp;quot;NEW_VALUE&amp;quot;:&amp;quot;29.05&amp;quot;, &amp;quot;OLD_VALUE&amp;quot;:&amp;quot;29.05&amp;quot;, &amp;quot;no_session&amp;quot;:&amp;quot;1&amp;quot;, &amp;quot;ORIGINAL_OBJECT_TITLE&amp;quot;:&amp;quot;ZB_relay_03&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
if ($params['PROPERTY'] == &amp;quot;temperatureDevices&amp;quot;) $temp=$params['NEW_VALUE'];&lt;br /&gt;
else $temp=$this-&amp;gt;getProperty('temperatureDevices');&lt;br /&gt;
&lt;br /&gt;
if ($params['ORIGINAL_OBJECT_TITLE'] == &amp;quot;ZB_relay_03&amp;quot;) $ot=$params['ORIGINAL_OBJECT_TITLE'];&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Поисковые запросы==&lt;br /&gt;
олдвалуе, ньювалуе, Алиса постоянно говорит значения которые изменились, в чате постоянно пишет, повтор сообщения, повторы, многократное срабатывание метода при одном и том же значении свойства, срабатывание метода только при изменении значения, срабатывание по фронту, препроцессинг и постпроцессинг значений свойств объектов&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=MQTT_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C&amp;diff=1678</id>
		<title>MQTT модуль</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=MQTT_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C&amp;diff=1678"/>
		<updated>2020-10-11T16:38:43Z</updated>

		<summary type="html">&lt;p&gt;Newz20: ретейн&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MQTT]]&lt;br /&gt;
[[Category:Модули]]&lt;br /&gt;
'''MQTT''' - (англ. message queuing telemetry transport) — упрощённый сетевой протокол, работающий поверх TCP/IP, ориентированный для обмена сообщениями между устройствами по принципу издатель-подписчик.&lt;br /&gt;
&lt;br /&gt;
Модуль выступает клиентом и способен отправлять и принимать сообщения через сервер, модуль умеет не только прямые подписки на ветки от других клиентов(устройств), но и разбивать данные в формате JSON на ветки и свойства. Вы можете привязывать каждое полученное сообщение в ветке к нужному свойству, ветки не привязанные к свойствам никуда не пишут свои данные.&lt;br /&gt;
&lt;br /&gt;
Для работы клиентов MQTT необходим сервер или еще его называют брокером (в предустановленном наборе и рекомендованный к использованию Mosquitto), данный сервер отвечает за пересылку сообщений от клиента к клиенту. Клиент MQTT может находится где угодно и для работы ему необходим только канал связи с сервером MQTT. Таким образом вы можете через интернет управлять устройствами поддерживающими MQTT протокол где угодно. Они в свою очередь сообщат вам о своем состоянии тем же образом. MajorDoMo может автоматизировать ваш гараж находясь у вас дома, для этого необходим только интернет канал и устройства с поддержкой MQTT.&lt;br /&gt;
&lt;br /&gt;
[[Файл:2019-12-12 08-44-27.jpg|мини|слева|Настройки mqtt]] [[Файл:2019-12-12 08-42-40.jpg|мини|центр|настройка топика mqtt]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Про retain.&lt;br /&gt;
Это &amp;quot;залипание&amp;quot; топика на MQTT брокере.&lt;br /&gt;
&lt;br /&gt;
При подписывании нового клиента к топику он первым делом получает текущее, &amp;quot;залипшее&amp;quot; значение - независимо от того как давно оно произошло (ну, с учетом настроек брокера).&lt;br /&gt;
&lt;br /&gt;
Логика простая: если в топике предполагается хранение текущего значения - лучше его сделать retained. Тогда он будет доступен всем клиентам в любой момент, им не нужно будет дожидаться повторной отправки значения источником.&lt;br /&gt;
&lt;br /&gt;
Если же топик предполагается использовать для какого-то события, которое важно именно в момент его возникновения - тогда флаг retained выставлять не следует.&lt;br /&gt;
&lt;br /&gt;
Соответственно, retained топик потребляет больше ресурсов брокера, и использовать его нужно только тогда когда необходимо.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Для фиксации положения осветителей (включены или выключены) при отключении света её можно использовать. В этом случае тот же MD будет знать текущее состояние освещения даже сразу после перезагрузки сервера а не тогда когда кто-то щелкнет выключателем.&lt;br /&gt;
&lt;br /&gt;
А, вот пример когда retained использовать точно не следует: например, в момент нажатия кнопки по MQTT отправляется топик (не важно, со значением или без значения). Просто для того чтобы оповестить подписчиков что произошло событие &amp;quot;нажатие кнопки&amp;quot;. Так вот, если его сделать retained, то каждый новый клиент при подписывании на топик сразу получит оповещение &amp;quot;кнопка была нажата&amp;quot;, даже если это произошло очень давно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Несколько видео по настройке&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;gL3UM_HuXAM&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;youtube&amp;gt;EwH6jY_scUU&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;youtube&amp;gt;jFUPy1q3ze8&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;youtube&amp;gt;4O-2dJwRQtg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Примеры кода==&lt;br /&gt;
Отправка сообщения через модуль в топик&lt;br /&gt;
&amp;lt;pre&amp;gt;include_once(DIR_MODULES . 'mqtt/mqtt.class.php');&lt;br /&gt;
$mqtt = new mqtt();&lt;br /&gt;
$rezult = $mqtt-&amp;gt;mqttPublish($topic, $value,  0, 0);&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=GetGlobal&amp;diff=1677</id>
		<title>GetGlobal</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=GetGlobal&amp;diff=1677"/>
		<updated>2020-10-07T05:27:21Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Примечание о ThisComputer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Встроенные функции]]&lt;br /&gt;
==Описание==&lt;br /&gt;
'''getGlobal'''(&amp;quot;Object.Value&amp;quot;); -- получение значения глобального свойства объекта, где (Object-объект, Value-свойство) &lt;br /&gt;
&lt;br /&gt;
'''gg'''(&amp;quot;Object.Value&amp;quot;); -- альтернативное имя getGlobal&lt;br /&gt;
&lt;br /&gt;
'''Примечание:''' При отсутствии в запросе указанного объекта &amp;quot;Object&amp;quot; система самостоятельно дополнит его объектом &amp;quot;[[ThisComputer]]&amp;quot; и все данные прочтутся из этого объекта системы, при условии что в нем есть данное свойство.&lt;br /&gt;
&lt;br /&gt;
==Примеры запросов==&lt;br /&gt;
Присвоить переменной $t значение времени в формате HH:MM из свойства timeNow объекта ThisComputer. Данный объект и свойство используются в дефолтной поставке МДМ.&lt;br /&gt;
&amp;lt;pre&amp;gt;$t = getGlobal(&amp;quot;ThisComputer.timeNow&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полностью равно предыдущей записи:&lt;br /&gt;
&amp;lt;pre&amp;gt;$t = gg(&amp;quot;ThisComputer.timeNow&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Альтернативные названия функции (сленг)==&lt;br /&gt;
гг, гетглобал, gg&lt;br /&gt;
&lt;br /&gt;
==Просто для проверки появления разделов==&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=SetGlobal&amp;diff=1676</id>
		<title>SetGlobal</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=SetGlobal&amp;diff=1676"/>
		<updated>2020-10-07T05:25:13Z</updated>

		<summary type="html">&lt;p&gt;Newz20: /* Описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Встроенные функции]]&lt;br /&gt;
==Описание==&lt;br /&gt;
'''SetGlobal'''(&amp;quot;Object.Value&amp;quot;, $value); -- установка значения глобального свойства объекта, где (Object-объект, Value-свойство), а  $value устанавливаемое значение.&lt;br /&gt;
&lt;br /&gt;
'''sg'''(&amp;quot;Object.Value&amp;quot;, $value); -- альтернативное имя setGlobal&lt;br /&gt;
&lt;br /&gt;
'''Примечание:''' Конструкция запроса предусматривает возможность увеличения пути установки свойства до Класса. Класс.Объект.Свойство '''SetGlobal'''(&amp;quot;Class.Object.Value&amp;quot;, $value); , но данный метод в системе не приветствуется, так как одинаковые объекты могут причинить другие неудобства. В системе принято не создавать одинаковые объекты, а значит и указание класса в запросе не требуется.&lt;br /&gt;
&lt;br /&gt;
'''Примечание 2:''' При отсутствии в запросе указанного объекта &amp;quot;Object&amp;quot; система самостоятельно дополнит его объектом &amp;quot;[[ThisComputer]]&amp;quot; и все данные запишутся в данный объект системы. &lt;br /&gt;
&lt;br /&gt;
'''Примечание 3:''' Если в объекте отсутствует свойство &amp;quot;Value&amp;quot;, то система самостоятельно создаст его на уровне объекта и запишет данные в него. Такой подход лишает нас истории свойства и остальных возможностей свойств созданных на уровне класса.&lt;br /&gt;
&lt;br /&gt;
==Примеры запросов==&lt;br /&gt;
Присвоить свойству timeNow объекта ThisComputer значение 17:12. Данный объект и свойство используются в дефолтной поставке МДМ.&lt;br /&gt;
&amp;lt;pre&amp;gt;setGlobal(&amp;quot;ThisComputer.timeNow&amp;quot;, &amp;quot;17:12&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полностью равно предыдущей записи:&lt;br /&gt;
&amp;lt;pre&amp;gt;sg(&amp;quot;ThisComputer.timeNow&amp;quot;, &amp;quot;17:12&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Альтернативные названия функции (сленг)==&lt;br /&gt;
cг, cетглобал, &lt;br /&gt;
&lt;br /&gt;
==Просто для проверки появления разделов==&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=ThisComputer&amp;diff=1675</id>
		<title>ThisComputer</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=ThisComputer&amp;diff=1675"/>
		<updated>2020-10-07T05:23:03Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Новая страница: «Category:Структура ==Описание== '''ThisComputer''' -- Основной системный объект содержащий в себе мн...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Структура]]&lt;br /&gt;
==Описание==&lt;br /&gt;
'''ThisComputer''' -- Основной системный объект содержащий в себе множество свойств необходимых для работы системы, '''удаление может привести к неработоспособности всей системы'''. Объект находится в классе &amp;quot;Computer&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=SetGlobal&amp;diff=1674</id>
		<title>SetGlobal</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=SetGlobal&amp;diff=1674"/>
		<updated>2020-10-07T05:18:35Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Доп примечания&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Встроенные функции]]&lt;br /&gt;
==Описание==&lt;br /&gt;
'''SetGlobal'''(&amp;quot;Object.Value&amp;quot;, $value); -- установка значения глобального свойства объекта, где (Object-объект, Value-свойство), а  $value устанавливаемое значение.&lt;br /&gt;
&lt;br /&gt;
'''sg'''(&amp;quot;Object.Value&amp;quot;, $value); -- альтернативное имя setGlobal&lt;br /&gt;
&lt;br /&gt;
'''Примечание:''' Конструкция запроса предусматривает возможность увеличения пути установки свойства до Класса. Класс.Объект.Свойство '''SetGlobal'''(&amp;quot;Class.Object.Value&amp;quot;, $value); , но данный метод в системе не приветствуется, так как одинаковые объекты могут причинить другие неудобства. В системе принято не создавать одинаковые объекты, а значит и указание класса в запросе не требуется.&lt;br /&gt;
&lt;br /&gt;
'''Примечание 2:''' При отсутствии в запросе указанного объекта &amp;quot;Object&amp;quot; система самостоятельно дополнит его объектом &amp;quot;ThisComputer&amp;quot; и все данные запишутся в данный объект системы. &lt;br /&gt;
&lt;br /&gt;
'''Примечание 3:''' Если в объекте отсутствует свойство &amp;quot;Value&amp;quot;, то система самостоятельно создаст его на уровне объекта и запишет данные в него. Такой подход лишает нас истории свойства и остальных возможностей свойств созданных на уровне класса.&lt;br /&gt;
&lt;br /&gt;
==Примеры запросов==&lt;br /&gt;
Присвоить свойству timeNow объекта ThisComputer значение 17:12. Данный объект и свойство используются в дефолтной поставке МДМ.&lt;br /&gt;
&amp;lt;pre&amp;gt;setGlobal(&amp;quot;ThisComputer.timeNow&amp;quot;, &amp;quot;17:12&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полностью равно предыдущей записи:&lt;br /&gt;
&amp;lt;pre&amp;gt;sg(&amp;quot;ThisComputer.timeNow&amp;quot;, &amp;quot;17:12&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Альтернативные названия функции (сленг)==&lt;br /&gt;
cг, cетглобал, &lt;br /&gt;
&lt;br /&gt;
==Просто для проверки появления разделов==&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=SetGlobal&amp;diff=1673</id>
		<title>SetGlobal</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=SetGlobal&amp;diff=1673"/>
		<updated>2020-10-07T04:55:20Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Примечание о Классе&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Встроенные функции]]&lt;br /&gt;
==Описание==&lt;br /&gt;
'''SetGlobal'''(&amp;quot;Object.Value&amp;quot;, $value); -- установка значения глобального свойства объекта, где (Object-объект, Value-свойство), а  $value устанавливаемое значение.&lt;br /&gt;
&lt;br /&gt;
'''sg'''(&amp;quot;Object.Value&amp;quot;, $value); -- альтернативное имя setGlobal&lt;br /&gt;
&lt;br /&gt;
Примечание: Конструкция запроса предусматривает возможность увеличения пути установки свойства до Класса. Класс.Объект.Свойство '''SetGlobal'''(&amp;quot;Class.Object.Value&amp;quot;, $value); , но данный метод в системе не приветствуется, так как одинаковые объекты могут причинить другие неудобства. В системе принято не создавать одинаковые объекты, а значит и указание класса в запросе не требуется.&lt;br /&gt;
&lt;br /&gt;
==Примеры запросов==&lt;br /&gt;
Присвоить свойству timeNow объекта ThisComputer значение 17:12. Данный объект и свойство используются в дефолтной поставке МДМ.&lt;br /&gt;
&amp;lt;pre&amp;gt;setGlobal(&amp;quot;ThisComputer.timeNow&amp;quot;, &amp;quot;17:12&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полностью равно предыдущей записи:&lt;br /&gt;
&amp;lt;pre&amp;gt;sg(&amp;quot;ThisComputer.timeNow&amp;quot;, &amp;quot;17:12&amp;quot;);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Альтернативные названия функции (сленг)==&lt;br /&gt;
cг, cетглобал, &lt;br /&gt;
&lt;br /&gt;
==Просто для проверки появления разделов==&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=NEW_VALUE_%D0%B8_OLD_VALUE&amp;diff=1666</id>
		<title>NEW VALUE и OLD VALUE</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=NEW_VALUE_%D0%B8_OLD_VALUE&amp;diff=1666"/>
		<updated>2020-09-10T11:42:11Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Примеры]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;if ($params['NEW_VALUE'] == $params['OLD_VALUE']) return;&amp;lt;/pre&amp;gt; //код сравнивает новое значение со старым и выходит из метода если они совпадают.&lt;br /&gt;
&lt;br /&gt;
срабатывание по фронту для 0/1 значений&lt;br /&gt;
&amp;lt;pre&amp;gt;if ($params['NEW_VALUE'] == 1 &amp;amp;&amp;amp; $params['OLD_VALUE'] == 0) &amp;lt;/pre&amp;gt; // из 0 в 1 - &amp;quot;началось&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;if ($params['NEW_VALUE'] == 0 &amp;amp;&amp;amp; $params['OLD_VALUE'] == 1) &amp;lt;/pre&amp;gt; // из 1 в 0  - &amp;quot;кончилось&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Однако из топика MQTT приходит параметр '''VALUE'''. При использовании привязки методов к топикам использовать его.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Так же можно использовать в различных условиях передаваемые данные (ниже пример вызова метода по изменению свойства класса)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//{&amp;quot;PROPERTY&amp;quot;:&amp;quot;temperatureDevices&amp;quot;, &amp;quot;NEW_VALUE&amp;quot;:&amp;quot;29.05&amp;quot;, &amp;quot;OLD_VALUE&amp;quot;:&amp;quot;29.05&amp;quot;, &amp;quot;no_session&amp;quot;:&amp;quot;1&amp;quot;, &amp;quot;ORIGINAL_OBJECT_TITLE&amp;quot;:&amp;quot;ZB_relay_03&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
if ($params['PROPERTY'] == &amp;quot;temperatureDevices&amp;quot;) $temp=$params['NEW_VALUE'];&lt;br /&gt;
else $temp=$this-&amp;gt;getProperty('temperatureDevices');&lt;br /&gt;
&lt;br /&gt;
if ($params['ORIGINAL_OBJECT_TITLE'] == &amp;quot;ZB_relay_03&amp;quot;) $ot=$params['ORIGINAL_OBJECT_TITLE'];&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Поисковые запросы==&lt;br /&gt;
олдвалуе, ньювалуе, Алиса постоянно говорит значения которые изменились, в чате постоянно пишет, повтор сообщения, повторы, многократное срабатывание метода при одном и том же значении свойства, срабатывание метода только при изменении значения, срабатывание по фронту, препроцессинг и постпроцессинг значений свойств объектов&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_Linux&amp;diff=1660</id>
		<title>Установка на Linux</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0_Linux&amp;diff=1660"/>
		<updated>2020-08-28T10:47:11Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Установка]]&lt;br /&gt;
&lt;br /&gt;
==Альтернативные варианты==&lt;br /&gt;
[[installmd|Скрипт installmd, установка почти на все виды плат и полноценный Linux]]&lt;br /&gt;
&lt;br /&gt;
[https://mjdm.ru/forum/viewtopic.php?f=3&amp;amp;p=92843#p92843 Скрипт установки на Ubuntu 16, 18 или 20]&lt;br /&gt;
&lt;br /&gt;
== Внимание!!! ==&lt;br /&gt;
&lt;br /&gt;
''Инструкция была написана под операционную систему Ubuntu 18.10 и тестировалась только на ней!&lt;br /&gt;
В случае если у Вас установлена другая операционная система Linux то возможно, на каком-то из шагов, у Вас возникнут ошибки. В данном случае, рекомендуется сообщить об этих ошибках в чат в [https://t.me/MajorDoMoRu Telegram] или же на [https://majordomo.smartliving.ru/forum/ форум].''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Перед началом работы необходимо убедиться что в системе установлен пакет sudo.&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Для этого нужно выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если в ответ будет отображено сообщение подобного плана:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;bash: sudo: command not found&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это будет обозначать, что пакет sudo по умолчанию не установлен в Вашей ОС. Потому его необходимо установить.&lt;br /&gt;
&lt;br /&gt;
Для это необходимо выполнить следующие команды:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет запрошен пароль пользователя от которого выполняется команда. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; При вводе пароля символы не будут отображены на экране!&lt;br /&gt;
&lt;br /&gt;
После успешного ввода пароля, в случае если вид консоли изменился и принял подобный вид:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;root@localhost:~#&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Производится установка sudo командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;apt install sudo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После успешной установки пакета, необходимо добавить пользователя, от которого будет производиться установка, в группу sudo. Это делается командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;usermod -aG sudo USERNAME&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
USERNAME - это имя пользователя. Для Raspberry PI это обычно пользователь: pi.&lt;br /&gt;
По завершении этих действий, необходимо выйти в окружение обычного пользователя. Это выполняется командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Приглашающее сообщение в консоли, должно принять подобный вид:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pi@localhost:~$&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Обновление кеша пакетов и обновление установленных пакетов (в случае если для них есть обновления)==&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
Установим ещё пару приложений которые будем использовать в процессе установки&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install nano wget unzip -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем SSH==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install openssh-server openssh-client -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем MySQL==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install mysql-server mysql-client -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните. Этот пароль понадобится в дальнейшем.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; Если установщик не запросил пароль, то выполните в консоли команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql_secure_installation&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И пройдите по всем шагам. И в этих шагах укажите пароль пользователя root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt; в качестве альтернативы MySQL по умолчанию используется форк проекта, MariaDB, который поддерживается сообществом.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install mariadb-server -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Создание пользователя и БД MySQL:==&lt;br /&gt;
&lt;br /&gt;
Для начала создадим БД командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;CREATE DATABASE db_terminal;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После выполнения этой команды, и далее по параграфу, MySQL будет просить ввести пароль пользователя root, который мы указывали выше. Вводим его где будет необходимо и нажимаем Enter.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; При вводе пароля символы не будут отображены на экране.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее создаём пользователя для работы с этой БД:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
password - необходимо заменить на ваш пароль, который тоже необходимо запомнить. Этот пароль будет использоваться для работы MajorDoMo с БД, а так же для входа в phpMyAdmin ниже по инструкции.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''Важно!!!'''&amp;lt;/span&amp;gt; Рекомендуется использовать сложный пароль, так как в случае если будет открыт доступ к MajorDoMo и phpMyAdmin извне, то есть вероятность того, что простой пароль будет взломан и тот, кто это сделает, сможет получить доступ к важным данным в Вашей MajorDoMo.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для предоставления только что созданному пользователю привилегий, необходимо выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И в завершение, необходимо обновить привилегии:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -uroot -p -e &amp;quot;FLUSH PRIVILEGES;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Установка WEB сервера==&lt;br /&gt;
&lt;br /&gt;
В качестве web сервера можно установить разные пакеты. В данном случае рассматривается вариант установки Apache.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install apache2 apache2-utils -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правим конфиг Апача&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/apache2/sites-available/default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если такого файла нет, он может называться по-другому. Например:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом файле находим раздел:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;&amp;lt;Directory /&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И заменяем во всех совпадениях&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;AllowOverride None&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
на&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;AllowOverride All&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняемся и выходим: Ctrl-O Ctrl-X&lt;br /&gt;
&lt;br /&gt;
В более новых версиях Apache конфигурационный файл может не содержать директив &amp;quot;AllowOverride&amp;quot;. В таком случае необходимо вручную привести файл к виду:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
  DocumentRoot /var/www/html&lt;br /&gt;
  &amp;lt;Directory /&amp;gt;&lt;br /&gt;
    Options FollowSymLinks&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
  &amp;lt;Directory /var/www/html&amp;gt;&lt;br /&gt;
    Options Indexes FollowSymLinks MultiViews&lt;br /&gt;
    AllowOverride All&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    allow from all&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/&lt;br /&gt;
  &amp;lt;Directory &amp;quot;/usr/lib/cgi-bin&amp;quot;&amp;gt;&lt;br /&gt;
    AllowOverride None&lt;br /&gt;
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    Allow from all&lt;br /&gt;
  &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ErrorLog ${APACHE_LOG_DIR}/error.log&lt;br /&gt;
  CustomLog ${APACHE_LOG_DIR}/access.log combined&lt;br /&gt;
&amp;lt;/VirtualHost&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удаляем стандартный index.html файл командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo rm -f /var/www/html/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И перезапускаем Апач:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если при перезапуске выдаст примерно такой ответ:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
То необходимо поправить apache2.conf&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/apache2/apache2.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вставив в него такую строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ServerName localhost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняемся и выходим: Ctrl-O Ctrl-X&lt;br /&gt;
&lt;br /&gt;
Перезапускаем Апач&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если ваша версия Apache отличается от рассматриваемой, то пути к файлам конфигурации могут быть такими:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/apache2/sites-available/default.conf&lt;br /&gt;
sudo nano /etc/apache2/httpd.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем PHP==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install php php-cgi php-cli php-pear php-mysql php-mbstring php-xml -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
curl и его библиотеки:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install curl libcurl3 libcurl3-dev php-curl -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install curl libcurl4 libcurl3-dev php-curl -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для apache&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install libapache2-mod-php -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Для последних версий Апача необходимо включить работу с коротким тегом &amp;lt;? /?&amp;gt; для этого откройте файл php.ini командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/apache2/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо заменить или вставить строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;short_open_tag = On&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем PHPMYADMIN==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt-get install phpmyadmin -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Установщик изначально спросит о том, к какой версии web сервера необходимо произвести настройку. Необходимо выбрать версию apache2 путём нажатия пробела и Enter.&lt;br /&gt;
&lt;br /&gt;
Установщик спросит необходимость конфигурирования баз данных при помощи &amp;quot;dbconfig-common&amp;quot;. Отвечаем утвердительно путём нажатия Enter.&lt;br /&gt;
&lt;br /&gt;
Далее установщик спрашивает пароль MySQL сервера. Этот пароль задавался в разделе &amp;quot;Устанавливаем MySQL&amp;quot; данного руководства. Вводим указанный пароль и подтверждаем его ещё раз.&lt;br /&gt;
&lt;br /&gt;
==Включаем mod_rewrite==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo a2enmod rewrite&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перезапускаем Апач&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apache2ctl restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''В Debian 10'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PhpMyAdmin не включен в репозиторий программного обеспечения Debian 10, поэтому мы должны загрузить его с phpmyadmin.net&lt;br /&gt;
&lt;br /&gt;
Установим необходимые компоненты:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo apt install php-mbstring php-zip php-gd wget -y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;cd /tmp&lt;br /&gt;
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
или вставляем ссылку на последнюю версию с сайта https://www.phpmyadmin.net/downloads/&lt;br /&gt;
&lt;br /&gt;
Распаковываем, копируем в /usr/share/phpmyadmin и назначаем права:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unzip phpMyAdmin-5.0.2-all-languages.zip&lt;br /&gt;
sudo mv phpMyAdmin-5.0.2-all-languages/ /usr/share/phpmyadmin&lt;br /&gt;
sudo chown -R www-data:www-data /usr/share/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь нам нужно войти в консоль MariaDB и создать базу данных и пользователя для phpMyAdmin.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mysql -u root&lt;br /&gt;
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&lt;br /&gt;
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'your_preferred_password';&lt;br /&gt;
grant all privileges on *.* to admin@localhost with grant option;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
EXIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем перезапустите Apache:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl restart apache2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создайте файл phpmyadmin.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/apache2/conf-available/phpmyadmin.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вставьте следующий текст в файл phpmyadmin.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# phpMyAdmin default Apache configuration&lt;br /&gt;
&lt;br /&gt;
Alias /phpmyadmin /usr/share/phpmyadmin&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin&amp;gt;&lt;br /&gt;
    Options SymLinksIfOwnerMatch&lt;br /&gt;
    DirectoryIndex index.php&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;IfModule mod_php5.c&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_mime.c&amp;gt;&lt;br /&gt;
            AddType application/x-httpd-php .php&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.+\.php$&amp;quot;&amp;gt;&lt;br /&gt;
            SetHandler application/x-httpd-php&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        php_value include_path .&lt;br /&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp&lt;br /&gt;
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/&lt;br /&gt;
        php_admin_value mbstring.func_overload 0&lt;br /&gt;
    &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
    &amp;lt;IfModule mod_php.c&amp;gt;&lt;br /&gt;
        &amp;lt;IfModule mod_mime.c&amp;gt;&lt;br /&gt;
            AddType application/x-httpd-php .php&lt;br /&gt;
        &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
        &amp;lt;FilesMatch &amp;quot;.+\.php$&amp;quot;&amp;gt;&lt;br /&gt;
            SetHandler application/x-httpd-php&lt;br /&gt;
        &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        php_value include_path .&lt;br /&gt;
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp&lt;br /&gt;
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/&lt;br /&gt;
        php_admin_value mbstring.func_overload 0&lt;br /&gt;
    &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Disallow web access to directories that don't need it&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/templates&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/libraries&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;Directory /usr/share/phpmyadmin/setup/lib&amp;gt;&lt;br /&gt;
    Require all denied&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Включим этот фрагмент конфигурации:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enconf phpmyadmin.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаем временную папку:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo mkdir -p /var/lib/phpmyadmin/tmp&lt;br /&gt;
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перезагрузите Apache, чтобы изменения вступили в силу:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl reload apache2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаём файл config.inc.php из примера:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо задать парольную фразу, открываем файл config.inc.php и задаём какую-нибудь парольную фразу длиннее 32-х символов, например,&lt;br /&gt;
&amp;lt;pre&amp;gt;$cfg['blowfish_secret'] = '12345678901234567890123456789012'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь вы можете получить доступ к веб-интерфейсу phpMyAdmin по адресу, введя имя 'admin' и пароль 'your_preferred_password', которые задали на шаге при создании базы данных и пользователя для phpMyAdmin:&lt;br /&gt;
&amp;lt;pre&amp;gt;http://ip_адрес/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в панели управления phpMyAdmin вы можете увидеть предупреждающее сообщение.&lt;br /&gt;
&amp;lt;pre&amp;gt;Хранилище конфигурации phpMyAdmin не полностью настроено, некоторые расширенные функции были отключены. Узнайте причину.&lt;br /&gt;
Или перейдите на вкладку 'Операции' любой базы данных, чтобы настроить хранилище в ней.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Переходим по ссылке &amp;quot;Узнайте причину&amp;quot;.&lt;br /&gt;
Видим сообщение:&lt;br /&gt;
&amp;lt;pre&amp;gt;Создать базу данных с именем 'phpmyadmin' и настроить там хранение конфигурации phpMyAdmin.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Переходим по ссылке &amp;quot;Создать&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''---'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройка PHP==&lt;br /&gt;
&lt;br /&gt;
В обоих конфигурационных файлах для web сервера:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/apache2/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И файл запуска php скриптов из командной строки:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/php/7.3/cli/php.ini&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Строку error_reporting привести к виду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;error_reporting  =  E_ALL &amp;amp; ~E_NOTICE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А так же строки:&lt;br /&gt;
&amp;lt;pre&amp;gt;max_execution_time - С 30 меняем на 90&lt;br /&gt;
max_input_time - С 60 на 180&lt;br /&gt;
post_max_size - С 8M на 200M&lt;br /&gt;
upload_max_filesize - С 2M на 50M&lt;br /&gt;
max_file_uploads - С 20 на 150&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для применения изменений, необходимо перезапустить Apache:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Устанавливаем MajorDoMo==&lt;br /&gt;
&lt;br /&gt;
Скачиваем дистрибутив Majordomo, разархивируем и копируем содержимое majordomo-master в директорию /var/www/html:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir ~/majordomo&lt;br /&gt;
cd ~/majordomo&lt;br /&gt;
wget https://github.com/sergejey/majordomo/archive/master.zip&lt;br /&gt;
unzip master.zip&lt;br /&gt;
sudo cp -rp ~/majordomo/majordomo-master/* /var/www/html&lt;br /&gt;
sudo cp -rp ~/majordomo/majordomo-master/.htaccess /var/www/html&lt;br /&gt;
rm -rf ~/majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настройка прав на файлы и директории&lt;br /&gt;
&lt;br /&gt;
Установка рекомендуемых прав выполняется следующими командами:&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type f -exec chmod 0644 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type d -exec chmod 0755 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем права командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Права будут выглядеть подобно:&lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;drwxr-xr-x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-r--r--&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Установка собственника и группы на файлы и директории&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Majordomo (а именно сервисы: apache и php) работает от пользователя www-data. Права доступа к каталогу /var/www/html, где лежат файлы Majordomo по умолчанию принадлежат root. Изменим владельца директории /var/www/html на www-data.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo chown -R www-data:www-data /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вывод должен быть подобный:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-r--r--  1 www-data www-data  12K May 26 22:19 cycle.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо предоставить доступ пользователю www-data к медиа устройствам. Для этого его необходимо добавить в группу audio.&lt;br /&gt;
&lt;br /&gt;
Это делается командой usermod:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo usermod -a -G audio www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем, что он появился в группе:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;cat /etc/group | grep audio&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если всё в порядке, то вывод будет подобный:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;audio:x:29:www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;''Дальнейшие команды в этом разделе нужно использовать только в случае если у Вас по какой-то причине система не работает совсем или не работает частично.''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;В большинстве случаев на моменте начального конфигурирования, проблемы с системой возникают из-за неправильно установленных прав.&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Меняем права доступа к файлам по принципу: всем-всё.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type f -exec chmod 0666 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И директориям&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo find /var/www/html/ -type d -exec chmod 0777 {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Проверяем права командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;ls -lh /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Права будут выглядеть подобно: &lt;br /&gt;
&lt;br /&gt;
Для директорий:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;drwxrwxrwx&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для файлов:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;-rw-rw-rw-&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если права по какой-то причине не установились, то можно сделать вариант в котором устанавливаются полные права для всех рекурсивно по директориям и файлам. &lt;br /&gt;
&lt;br /&gt;
Команда выглядит так:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo chmod -R 777 /var/www/html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Необходимо заметить, что данный способ, не самый безопасный, но самый простой.&lt;br /&gt;
&lt;br /&gt;
==Импорт базы данных==&lt;br /&gt;
&lt;br /&gt;
Заходим по адресу:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/phpmyadmin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/phpmyadmin4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При входе будет запрошен логин, его необходимо указать как: majordomo, и пароль который который был задан на шаге: &amp;quot;Создание пользователя и БД MySQL&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В созданную ранее БД необходимо импортировать файл db_terminal.sql из директории с дистрибутивом. Скачать его можно по ссылке: [https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql db_termina.sql]. Для скачивания нажмите правой кнопкой мыши на ссылку и выберите: &amp;quot;Сохранить ссылку как...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Далее выполняем последовательность действий в phpMyAdmin для импорта sql файла.&lt;br /&gt;
&lt;br /&gt;
* В левой части окна выбрать БД db_terminal, путём нажатия один раз на её название.&lt;br /&gt;
* В верхней части окна найти кнопку &amp;quot;Импорт&amp;quot;.&lt;br /&gt;
* В загрузившейся странице, в разделе &amp;quot;Импортируемый файл&amp;quot; нажать &amp;quot;Выберите файл&amp;quot; или &amp;quot;Обзор&amp;quot;.&lt;br /&gt;
* В открывшемся окне, выбрать ранее сохраненный файл &amp;quot;db_terminal.sql&amp;quot;.&lt;br /&gt;
* В нижней части окна нажать &amp;quot;Вперёд&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
После успешного импорта должна отобразится зелёная строка с подобным текстом:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;Импорт успешно завершён, выполнено 171 запросов. (db_terminal.sql)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если возникли проблемы с импортом БД используя phpMyAdmin, есть возможность импортировать дамп БД используя командную строку. Для этого скачайте дамп файл командой:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo wget -O /tmp/db_terminal.sql https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И импортируйте его:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo mysql -umajordomo -p db_terminal &amp;lt; /tmp/db_terminal.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет запрошен пароль пользователя majordomo, который был задан на шаге: &amp;quot;[[Установка_на_Linux#Создание пользователя и БД MySQL:|Создание пользователя и БД MySQL]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Правим основной конфиг==&lt;br /&gt;
&lt;br /&gt;
Изначально копируем пример конфига в рабочий конфиг:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp /var/www/html/config.php.sample /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Установим собственника и группу для конфига:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chown www-data: /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И открываем конфиг для редактирования:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /var/www/html/config.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописываем имя пользователя и пароль пользователя БД. Для этого нужно исправить строки:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Define('DB_USER', 'majordomo');&lt;br /&gt;
Define('DB_PASSWORD', '');&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
* '''DB_USER''' - пользователь majordomo который был создан на шаге: &amp;quot;Создание пользователя и БД MySQL&amp;quot;.&lt;br /&gt;
* '''DB_PASSWORD''' - пароль от этого пользователя, который был задан на том же шаге.&lt;br /&gt;
&lt;br /&gt;
Сохраняем файл, и выходим из редактора.&lt;br /&gt;
&lt;br /&gt;
Все, теперь можно зайти на веб интерфейс Majordomo.&lt;br /&gt;
&lt;br /&gt;
 http://localhost/&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 http://sever_ip/&lt;br /&gt;
&lt;br /&gt;
Если установка выполняется не на локальную машину.&lt;br /&gt;
&lt;br /&gt;
При первом входе должна быть отображена страница: &amp;quot;Hello, world! :)&amp;quot; на которой необходимо выбрать тайм зону, язык системы и цветовую тему. По завершении нажать кнопку &amp;quot;Continue&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В случае если такая страница не отобразилась, открыть её можно по ссылке:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/popup/first_start.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Основной цикл Вариант 1. Systemd unit. Предпочтительный==&lt;br /&gt;
&lt;br /&gt;
Код юнита:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Majordomo cycles service&lt;br /&gt;
Requires=network.target mysql.service apache2.service&lt;br /&gt;
After=mysql.service apache2.service&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=www-data&lt;br /&gt;
Group=www-data&lt;br /&gt;
ExecStart=/usr/bin/php /var/www/html/cycle.php&lt;br /&gt;
ExecStop=/usr/bin/pkill -f cycle_*&lt;br /&gt;
&lt;br /&gt;
KillSignal=SIGKILL&lt;br /&gt;
KillMode=control-group&lt;br /&gt;
RestartSec=1min&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данный код необходимо скопировать в файл: /etc/systemd/system/majordomo.service Для этого открываем файл:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/majordomo.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И вставляем в него код, который представлен выше.&lt;br /&gt;
&lt;br /&gt;
Для автозапуска MajorDoMo при старте системы, необходимо выполнить команду:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo systemctl enable majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И для запуска MajorDoMo необходимо выполнить:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo systemctl start majordomo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Основной цикл Вариант 2. Если не сработал первый вариант==&lt;br /&gt;
&lt;br /&gt;
Запуск основного цикла добавляем в Cron, для пользователя www-data, так как файлы МД принадлежат этому пользователю.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo crontab -e -u www-data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В открывшемся окне добавляем строку:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;@reboot /usr/bin/php /var/www/html/cycle.php&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''И обязательно!''' ставим Enter для того чтобы в конце открытого файла был перенос строки.&lt;br /&gt;
&lt;br /&gt;
Сохраняем и перезапускаем компьютер:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После запуска циклов можно открыть MajorDoMo по адресу:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://localhost/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В случае если MajorDoMo устанавливалась на локальный компьютер.&lt;br /&gt;
&lt;br /&gt;
Или:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;http://IP_ADDRESS/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если MajorDoMo устанавливалась на удалённый сервер.&lt;br /&gt;
&lt;br /&gt;
Если не выполняются onNewMinute и onNewHour&lt;br /&gt;
&lt;br /&gt;
Нужно проверить настройку BASE_URL в config.php. Если Вы используете домен, а не IP, тогда добавьте в файл /etc/hosts строку вида:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;pre&amp;gt;127.0.0.1 domain.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где domain.com - это Ваш домен который Вы используете. Комментарий Сергея с форума: Дело в том, что эти методы вызываются через внутреннюю функцию raseEvent, которая обращается к серверу через HTTP-запрос используя BASE_URL. Если он неправильный, то метод не вызовется.&lt;br /&gt;
&lt;br /&gt;
На этом статья об установке MajorDoMo на Linux Ubuntu закончена.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Полезные темы на форуме==&lt;br /&gt;
&lt;br /&gt;
Для быстрой установки необходимых атрибутов можно воспользоваться [http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=2&amp;amp;start=10#p84 данным скриптом].&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=298 Установка на Ubuntu]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=573 Установка Системы Majordomo на Raspberry pi]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=371 Установка на FreeBSD]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=630 (РЕШЕНО) Проблема с установкой и настройкой на Ubuntu 13.04]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=424 Установка на Debian подробная инструкция]&lt;br /&gt;
&lt;br /&gt;
[http://smartliving.ru/forum/viewtopic.php?f=3&amp;amp;t=740 CubieBoard - попытка №1]&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=GetHistoryMin&amp;diff=1659</id>
		<title>GetHistoryMin</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=GetHistoryMin&amp;diff=1659"/>
		<updated>2020-08-25T12:44:16Z</updated>

		<summary type="html">&lt;p&gt;Newz20: /* Примеры запросов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Встроенные функции]]&lt;br /&gt;
==Описание==&lt;br /&gt;
'''getHistoryMin'''($varname, $start_time, $stop_time) -- Возвращает минимальное значение за период&lt;br /&gt;
работает от обратного [[GetHistoryMax]]&lt;br /&gt;
&lt;br /&gt;
varname - &amp;quot;объект.свойство&amp;quot; (строка)&lt;br /&gt;
&lt;br /&gt;
start_time - Время начало выборки, включительно (метка времени Unix)&lt;br /&gt;
&lt;br /&gt;
stop_time - Время конца выборки, включительно (метка времени Unix) параметр может не указываться, в этом случае равен текущему времени&lt;br /&gt;
&lt;br /&gt;
==Примеры запросов==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$data = getHistoryMin(&amp;quot;RainGauge1.value&amp;quot;, -3*60*60);&lt;br /&gt;
echo print_r($data, true).&amp;quot;&amp;lt;br/&amp;gt;\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
Если минимальная температура за день меньше 5 градусов, то пора сливать воду из системы полива.&lt;br /&gt;
 if (getHistoryMin(&amp;quot;tsrearyard.temp&amp;quot;, strtotime(&amp;quot;-1 day&amp;quot;)) &amp;lt; 5)&lt;br /&gt;
   say(&amp;quot;Пора сливать воду из системы полива&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Запрос данных за прошедшие сутки с ПУ счетчик&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
getHistoryMin('Counter01.valueDay', strtotime(date(&amp;quot;d.m.Y 00:00:00&amp;quot;,strtotime(&amp;quot;-1 day&amp;quot;))),strtotime(date(&amp;quot;d.m.Y 23:59:59&amp;quot;,strtotime(&amp;quot;-1 day&amp;quot;))));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Альтернативные названия функции (сленг)==&lt;br /&gt;
&lt;br /&gt;
==Просто для проверки появления разделов==&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=1064&amp;diff=1627</id>
		<title>1064</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=1064&amp;diff=1627"/>
		<updated>2020-08-03T06:29:36Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Возникающие ошибки]]&lt;br /&gt;
&lt;br /&gt;
==Описание==&lt;br /&gt;
1064 - ошибка возникает при неверном запросе sql.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Поиск проблемы==&lt;br /&gt;
Если у вас такой случай &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND TITLE LIKE 'cycle%Run' ORDER BY TITLE' at line 1&lt;br /&gt;
SELECT properties.* FROM properties WHERE OBJECT_ID= AND TITLE LIKE 'cycle%Run' ORDER BY TITLE &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обычно проявляется на вкладке x-ray? то вероятно проблема в отсутствии класса ThisComputer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 2020-07-28 12-46-02.jpg|мини|центр|ThisComputer]]&lt;br /&gt;
 &lt;br /&gt;
==Решение проблемы==&lt;br /&gt;
Возможно вы перенесли класс в другое место, например ПУ. Поиском в МД найти ThisComputer. Если так то отвязать устройство ПУ и вернуть класс на место.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если данный класс не найден&lt;br /&gt;
&lt;br /&gt;
Импортировать Класс ThisComputer&lt;br /&gt;
&lt;br /&gt;
[[Файл:Computer1.txt|мини|Класс для импорта скачать]]&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5&amp;diff=1617</id>
		<title>Категория:Взаимодействие</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5&amp;diff=1617"/>
		<updated>2020-07-30T09:04:44Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:root]]&lt;br /&gt;
В этой категории будут описаны протоколы взаимодействия  &lt;br /&gt;
 *  [[:Category:Z-Wave]] &lt;br /&gt;
 *  [[:Category:ZigBee]]&lt;br /&gt;
 *  [[:Category:1Wire]]&lt;br /&gt;
 *  [[:Category:WiFi]]&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5&amp;diff=1616</id>
		<title>Категория:Взаимодействие</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5&amp;diff=1616"/>
		<updated>2020-07-30T09:03:43Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Откат правок Newz20 (обсуждение) к версии Mixman&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:root]]&lt;br /&gt;
В этой категории будут описаны протоколы взаимодействия  &lt;br /&gt;
 * [[Category:Z-Wave|Z-Wave]] &lt;br /&gt;
 *  [[Category:ZigBee|ZigBee]]&lt;br /&gt;
 *  [[Category:1Wire|1Wire]]&lt;br /&gt;
 *  [[Category:WiFi|WiFi]]&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5&amp;diff=1615</id>
		<title>Категория:Взаимодействие</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5&amp;diff=1615"/>
		<updated>2020-07-30T09:02:34Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:root]]&lt;br /&gt;
В этой категории будут описаны протоколы взаимодействия  &lt;br /&gt;
[[Category:Z-Wave|Z-Wave]] &lt;br /&gt;
[[Category:ZigBee|ZigBee]]&lt;br /&gt;
[[Category:1Wire|1Wire]]&lt;br /&gt;
[[Category:WiFi|WiFi]]&lt;br /&gt;
[[Category:MQTT|MQTT]]&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5&amp;diff=1614</id>
		<title>Категория:Взаимодействие</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5&amp;diff=1614"/>
		<updated>2020-07-30T09:01:50Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:root]]&lt;br /&gt;
В этой категории будут описаны протоколы взаимодействия  &lt;br /&gt;
* [[Category:Z-Wave| Z-Wave]] &lt;br /&gt;
* [[Category:ZigBee| ZigBee]]&lt;br /&gt;
* [[Category:1Wire| 1Wire]]&lt;br /&gt;
* [[Category:WiFi| WiFi]]&lt;br /&gt;
* [[Category:MQTT| MQTT]]&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5&amp;diff=1613</id>
		<title>Категория:Взаимодействие</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BE%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5&amp;diff=1613"/>
		<updated>2020-07-30T08:59:57Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:root]]&lt;br /&gt;
В этой категории будут описаны протоколы взаимодействия  &lt;br /&gt;
 * [[Category:Z-Wave| Z-Wave]] &lt;br /&gt;
 * [[Category:ZigBee| ZigBee]]&lt;br /&gt;
 * [[Category:1Wire| 1Wire]]&lt;br /&gt;
 * [[Category:WiFi| WiFi]]&lt;br /&gt;
 * [[Category:MQTT| MQTT]]&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=Z-Wave_%D0%BE%D0%B1%D1%89%D0%B8%D0%B5_%D1%81%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BE_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8&amp;diff=1612</id>
		<title>Z-Wave общие сведения о технологии</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=Z-Wave_%D0%BE%D0%B1%D1%89%D0%B8%D0%B5_%D1%81%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BE_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8&amp;diff=1612"/>
		<updated>2020-07-30T08:59:16Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Z-Wave]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Общие сведения о протоколе ===&lt;br /&gt;
'''Z-Wave''' является запатентованным беспроводным протоколом связи, разработанным для домашней автоматизации, в частности для контроля и управления в жилых и коммерческих объектах.&lt;br /&gt;
&lt;br /&gt;
'''''Sigma Designs''''', владелец технологии Z-Wave&lt;br /&gt;
&lt;br /&gt;
'''''Z-Wave Альянс''''', открытый консорциум из более чем 700 производителей.&lt;br /&gt;
По состоянию на 2018, на рынке представлено более 2700 различных сертифицированных продуктов.&lt;br /&gt;
&lt;br /&gt;
В отличие от Wi-Fi и других IEEE 802.11 стандартов передачи данных, предназначенных в основном для больших потоков информации, Z-Wave работает в диапазоне частот до 1 ГГц и оптимизирована для передачи простых управляющих команд с малыми задержками (например, включить/выключить, изменить громкость, яркость и т.д.).&lt;br /&gt;
&lt;br /&gt;
В 2013 году Sigma Designs и Z-Wave Alliance представили расширение протокола Z-Wave, названное Z-Wave Plus.&lt;br /&gt;
&lt;br /&gt;
Фактически, это обычный протокол Z-Wave, дополненный списком более строгих требований по сравнению с обычными требованиями сертификации Z-Wave. Z-Wave Plus полностью включает в себя все требования Z-Wave. Новые требования направлены на улучшение совместимости устройств на рынке.&lt;br /&gt;
&lt;br /&gt;
Условие совместимости — одно из главных преимуществ технологии Z-Wave. Перед выходом в продажу все устройства проходят сертификацию Z-Wave в одном их трёх центров сертификации, где проверяют устройство на совместимость. Более 150 производителей по всем миру выбрали Z-Wave в качестве основного протокола для своих продуктов. И все они совместимы друг с другом в пределах одного региона (одного диапазона частот).&lt;br /&gt;
&lt;br /&gt;
'''Внимание! Один контроллер может работать с другими устройствами только на одной частоте. Поэтому если планируете создавать сеть Z-Wave продумайте на какой частоте будете её строить. Если планируете расширять - перепроверьте на какой частоте работает Ваш контроллер.'''&lt;br /&gt;
&lt;br /&gt;
=== Совместная работа оборудования Z-Wave и MajorDoMo ===&lt;br /&gt;
Платформа MajorDoMo поддерживает следующие подключение контроллеров: API Z-Wave.Me ('''USB стик Z-Wave.Me, Z-Stick Z-Way''' и '''Плата расширения Z-Wave.Me RaZberry''');  API VeraLite; Zippato;  и возможна работа через windows шлюз mqtt от Aven. &lt;br /&gt;
При покупке оборудования контроллера, ознакомьтесь с документацией на оборудование.&lt;br /&gt;
'''Рекомендация: Перед интеграцией с системой MajorDoMo требуется установить оборудование в ОС, настроить сеть и установить необходимый модуль.&lt;br /&gt;
Для совместной работы используется [[Z-Wave модуль]].&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
=== Возможности и термины сети Z-Way: ===&lt;br /&gt;
Первичный контроллер — координатор сети. Это единственный узел, способный включать в сеть новые узлы и исключать существующие. Он же хранит информацию о топологии сети и может обновлять списки соседей для всех остальных (вторичных) контроллеров и формировать маршруты во всех дочерних узлах. Первичный контроллер может быть только один в сети. Обычно первичным является тот контроллер, с которого началось построение сети. Однако в дальнейшем первичный контроллер может включить в сеть новый контроллер, передав ему свою роль.&lt;br /&gt;
Каждая Z-Wave сеть определяется уникальным идентификатором сети (Network ID) (генерируется при создании сети генератором случайных чисел с шумом от радиоприёмника в качестве источника случайных числе или назначается Sigma Designs для старых контроллеров). Network ID (он же Home ID) является общим идентификатором всех узлов, принадлежащих к одной логической Z-Wave сети. Network ID имеет длину 4 байта (32 бит) и присваивается каждому устройству через основной (primary) контроллер, когда устройство подключается к сети. На одной территории может сосуществовать несколько сетей Z-Wave с разными Home ID. При этом они не будут друг друга видеть и друг с другом взаимодействовать. и может включать до 232 узлов, определяемых идентификатором устройства (Node ID).&lt;br /&gt;
&lt;br /&gt;
Узлы с различными идентификаторами сети не могут общаться друг с другом.&lt;br /&gt;
&lt;br /&gt;
Z-Wave использует ячеистую топологию сети и можно создать сеть из одного управляемого и одного управляющего устройства. (Что мы и делаем на данный момент). Дополнительные устройства могут быть добавлены в любое время, так же как и несколько управляющих контроллеров.&lt;br /&gt;
&lt;br /&gt;
Устройства должны быть «включены» в Z-Wave сеть, прежде чем ими можно будет управлять.&lt;br /&gt;
&lt;br /&gt;
Включение происходит переводом контроллера в специальный режим Включения (Inclusion mode; обычно какой-то специальной кнопкой в или комбинацией клавиш), а включаемого устройства в режим Обучения (Learn mode; обычно одинарным или тройным нажатием на кнопку). При этом контроллер и включаемое устройство должны находиться в прямой видимости. Многие современные (версии протокола 4.5x или 6.x) постоянно питающиеся (не спящие) устройства первые 3-5 минут после включения в сеть электропитания самостоятельно переходят в специальный режим обучения (Network Wide Inclusion, NWI), если они ещё не включены в сеть. При этом условие нахождения в прямой видимости уже не требуется. Это позволяет достаточно легко включать в сеть новые устройства, не бегая по дому.&lt;br /&gt;
&lt;br /&gt;
Исключение из сети происходит аналогично: контроллер переводится в режим Исключения (Exclusion mode), а дочерний узел в режим Обучения. После исключения Node ID и Home ID устройства сбросятся на 0 (для контроллеров NodeID сбросится на 1, а HomeID на заводское значение). Большинство устройств при исключении сбросит и все остальные пользовательские настройки на заводские значения.&lt;br /&gt;
&lt;br /&gt;
Стоит отметить, что устройство уже прописанное в одной сети не включится в другую сеть. Но исключить из сети может любой первичный контроллер (даже устройство не из своей сети).&lt;br /&gt;
&lt;br /&gt;
Этот процесс подключения повторяется для каждого устройства в системе. Контроллер запоминает мощность сигнала устройства во время процесса подключения, таким образом, архитектура предполагает, что устройства должны быть расположены в окончательном месте, прежде чем они будут добавлены в систему. Однако, Z-Wave предполагает реконфигурацию сети — запуск этой процедуры на контроллере позволяет перераспределить маршруты и улучшить связь между устройствами, расположенными далеко от контроллера.&lt;br /&gt;
&lt;br /&gt;
=== Уровни модели OSI и основные характеристики Z-Wave. ===&lt;br /&gt;
==== Физический уровень==== &lt;br /&gt;
&lt;br /&gt;
Передача данных осуществляется на частоте 869.0 МГц (Россия), 868.42 МГц (Европа, страны CEPT, Китай, Сингапур, ОАЭ, ЮАР), 908.42 МГц (США, Мексика), 921.42 МГц (Австралия, Бразилия, Новая Зеландия), 919.8 МГц (Гонконг), 865.2 МГц (Индия), 868.2 МГц (Малайзия), Япония (951-956 и 922-926 МГц). Модуляция FSK (частотная манипуляция). Скорость передачи: 42 кбит/с, 100 кбит/с и 9.6 кбит/с (для совместимостью со старыми устройствами). Предельная мощность передачи 1 мВт.&lt;br /&gt;
==== Канальный уровень ====&lt;br /&gt;
&lt;br /&gt;
Используются пакеты с контролем целостности данных (контрольная сумма) и адресацией получателя и отправителя. В качестве получателя может использоваться multicast адрес или broadcast (в этом случае пакет принимается всеми участниками сети с включенным радио-модулем).&lt;br /&gt;
&lt;br /&gt;
==== Сетевой уровень ====&lt;br /&gt;
&lt;br /&gt;
Протокол Z-Wave определяет алгоритм маршрутизации, позволяющий передавать данные между устройствами вне прямой видимости. Все постоянно работающие узлы сети (бывают ещё спящие и «часто слушающие» узлы) могу участвовать в пересылке пакетов между другими участниками сети. Z-Wave использует механизм Source Routing, т.е. маршрут следования определяется отправителем. Broadcast и multicast пакеты не маршрутизируются. При невозможности найти нужный узел по маршрутам, записанным в памяти, существует механизм поиска узла по всей сети путём посылки специального пакета Explorer Frame  всем узлам сети. После успешного нахождения узла новый маршрут записывается отправителем в память для последующего использования.&lt;br /&gt;
&lt;br /&gt;
==== Транспортный уровень ====&lt;br /&gt;
&lt;br /&gt;
На данном уровне Z-Wave гарантирует подтверждение доставки и повторную отправку в случае, если пакет не был доставлен до получателя. Каждый узел, участвующий в пересылке, подтверждает факт получения сообщения. Для уменьшения загрузки эфира в Z-Wave используется механизм «молчаливых подтверждений»: узел (А), передавший пакет следующему узлу (Б) на пути следования пакета не ждёт подтверждения от него, а видит, что Б отправил пакет дальше узлу С и воспринимает это как факт подтверждения успешной пересылки пакета от А к Б. Получив пакет, конечный узел передаёт назад подтверждения доставки, которое путешествует назад тем же маршрутом до исходного отправителя. Таким образом отправитель всегда знает, дошёл ли пакет до точки назначения или нет.&lt;br /&gt;
&lt;br /&gt;
==== Сеансовый уровень ====&lt;br /&gt;
&lt;br /&gt;
Используется только при использовании шифрования, где определяются короткие сеансы с одноразовым ключом.&lt;br /&gt;
&lt;br /&gt;
==== Прикладной уровень ====&lt;br /&gt;
&lt;br /&gt;
Z-Wave также определяет алгоритм интерпретации получаемых на прикладном уровне команд. Данный уровень описан набором Классов Команд (Command Classes). Для некоторых Классов существует несколько вариантов интерпретации команд, которые зависят от Класса Устройства (Device Class), определяющего тип устройства.&lt;br /&gt;
&lt;br /&gt;
С 2012 года физический и канальный уровни протокола Z-Wave вошли в стандарт ITU-T G.9959(рекомендации сектора стандартизации электросвязи Международного союза электросвязи).&lt;br /&gt;
&lt;br /&gt;
Уровни от транспортного до канального реализованы в программном коде Sigma Designs и поставляются в прекомпилированном виде (в комплекте SDK). С одной стороны проприетарный код — это минус, но в закрытости данного протокола есть и свои плюсы: ни один производитель не может изменить нижние уровни протокола, что позволяет легче обеспечивать совместимость — все устройства основаны на одном хорошо отлаженном коде.&lt;br /&gt;
&lt;br /&gt;
Все команды в Z-Wave компактно упакованы. Это нужно для уменьшения размера пакета, что положительно влияет на занимаемое в эфире время, а также на уменьшение потерь при передаче. Z-Wave предназначен для передачи коротких команд без открытия сессии, т.е. совсем не подходит для потоковой передачи потоковых данных. Максимальный полезный размер передаваемых данных составляет 46 байт (размер данных прикладного уровня без шифрования).&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=Z-Wave_%D0%BE%D0%B1%D1%89%D0%B8%D0%B5_%D1%81%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BE_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8&amp;diff=1611</id>
		<title>Z-Wave общие сведения о технологии</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=Z-Wave_%D0%BE%D0%B1%D1%89%D0%B8%D0%B5_%D1%81%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BE_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8&amp;diff=1611"/>
		<updated>2020-07-30T08:55:38Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Z-Wave]]&lt;br /&gt;
[[Category:Взаимодействие]]&lt;br /&gt;
&lt;br /&gt;
=== Общие сведения о протоколе ===&lt;br /&gt;
'''Z-Wave''' является запатентованным беспроводным протоколом связи, разработанным для домашней автоматизации, в частности для контроля и управления в жилых и коммерческих объектах.&lt;br /&gt;
&lt;br /&gt;
'''''Sigma Designs''''', владелец технологии Z-Wave&lt;br /&gt;
&lt;br /&gt;
'''''Z-Wave Альянс''''', открытый консорциум из более чем 700 производителей.&lt;br /&gt;
По состоянию на 2018, на рынке представлено более 2700 различных сертифицированных продуктов.&lt;br /&gt;
&lt;br /&gt;
В отличие от Wi-Fi и других IEEE 802.11 стандартов передачи данных, предназначенных в основном для больших потоков информации, Z-Wave работает в диапазоне частот до 1 ГГц и оптимизирована для передачи простых управляющих команд с малыми задержками (например, включить/выключить, изменить громкость, яркость и т.д.).&lt;br /&gt;
&lt;br /&gt;
В 2013 году Sigma Designs и Z-Wave Alliance представили расширение протокола Z-Wave, названное Z-Wave Plus.&lt;br /&gt;
&lt;br /&gt;
Фактически, это обычный протокол Z-Wave, дополненный списком более строгих требований по сравнению с обычными требованиями сертификации Z-Wave. Z-Wave Plus полностью включает в себя все требования Z-Wave. Новые требования направлены на улучшение совместимости устройств на рынке.&lt;br /&gt;
&lt;br /&gt;
Условие совместимости — одно из главных преимуществ технологии Z-Wave. Перед выходом в продажу все устройства проходят сертификацию Z-Wave в одном их трёх центров сертификации, где проверяют устройство на совместимость. Более 150 производителей по всем миру выбрали Z-Wave в качестве основного протокола для своих продуктов. И все они совместимы друг с другом в пределах одного региона (одного диапазона частот).&lt;br /&gt;
&lt;br /&gt;
'''Внимание! Один контроллер может работать с другими устройствами только на одной частоте. Поэтому если планируете создавать сеть Z-Wave продумайте на какой частоте будете её строить. Если планируете расширять - перепроверьте на какой частоте работает Ваш контроллер.'''&lt;br /&gt;
&lt;br /&gt;
=== Совместная работа оборудования Z-Wave и MajorDoMo ===&lt;br /&gt;
Платформа MajorDoMo поддерживает следующие подключение контроллеров: API Z-Wave.Me ('''USB стик Z-Wave.Me, Z-Stick Z-Way''' и '''Плата расширения Z-Wave.Me RaZberry''');  API VeraLite; Zippato;  и возможна работа через windows шлюз mqtt от Aven. &lt;br /&gt;
При покупке оборудования контроллера, ознакомьтесь с документацией на оборудование.&lt;br /&gt;
'''Рекомендация: Перед интеграцией с системой MajorDoMo требуется установить оборудование в ОС, настроить сеть и установить необходимый модуль.&lt;br /&gt;
Для совместной работы используется [[Z-Wave модуль]].&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
=== Возможности и термины сети Z-Way: ===&lt;br /&gt;
Первичный контроллер — координатор сети. Это единственный узел, способный включать в сеть новые узлы и исключать существующие. Он же хранит информацию о топологии сети и может обновлять списки соседей для всех остальных (вторичных) контроллеров и формировать маршруты во всех дочерних узлах. Первичный контроллер может быть только один в сети. Обычно первичным является тот контроллер, с которого началось построение сети. Однако в дальнейшем первичный контроллер может включить в сеть новый контроллер, передав ему свою роль.&lt;br /&gt;
Каждая Z-Wave сеть определяется уникальным идентификатором сети (Network ID) (генерируется при создании сети генератором случайных чисел с шумом от радиоприёмника в качестве источника случайных числе или назначается Sigma Designs для старых контроллеров). Network ID (он же Home ID) является общим идентификатором всех узлов, принадлежащих к одной логической Z-Wave сети. Network ID имеет длину 4 байта (32 бит) и присваивается каждому устройству через основной (primary) контроллер, когда устройство подключается к сети. На одной территории может сосуществовать несколько сетей Z-Wave с разными Home ID. При этом они не будут друг друга видеть и друг с другом взаимодействовать. и может включать до 232 узлов, определяемых идентификатором устройства (Node ID).&lt;br /&gt;
&lt;br /&gt;
Узлы с различными идентификаторами сети не могут общаться друг с другом.&lt;br /&gt;
&lt;br /&gt;
Z-Wave использует ячеистую топологию сети и можно создать сеть из одного управляемого и одного управляющего устройства. (Что мы и делаем на данный момент). Дополнительные устройства могут быть добавлены в любое время, так же как и несколько управляющих контроллеров.&lt;br /&gt;
&lt;br /&gt;
Устройства должны быть «включены» в Z-Wave сеть, прежде чем ими можно будет управлять.&lt;br /&gt;
&lt;br /&gt;
Включение происходит переводом контроллера в специальный режим Включения (Inclusion mode; обычно какой-то специальной кнопкой в или комбинацией клавиш), а включаемого устройства в режим Обучения (Learn mode; обычно одинарным или тройным нажатием на кнопку). При этом контроллер и включаемое устройство должны находиться в прямой видимости. Многие современные (версии протокола 4.5x или 6.x) постоянно питающиеся (не спящие) устройства первые 3-5 минут после включения в сеть электропитания самостоятельно переходят в специальный режим обучения (Network Wide Inclusion, NWI), если они ещё не включены в сеть. При этом условие нахождения в прямой видимости уже не требуется. Это позволяет достаточно легко включать в сеть новые устройства, не бегая по дому.&lt;br /&gt;
&lt;br /&gt;
Исключение из сети происходит аналогично: контроллер переводится в режим Исключения (Exclusion mode), а дочерний узел в режим Обучения. После исключения Node ID и Home ID устройства сбросятся на 0 (для контроллеров NodeID сбросится на 1, а HomeID на заводское значение). Большинство устройств при исключении сбросит и все остальные пользовательские настройки на заводские значения.&lt;br /&gt;
&lt;br /&gt;
Стоит отметить, что устройство уже прописанное в одной сети не включится в другую сеть. Но исключить из сети может любой первичный контроллер (даже устройство не из своей сети).&lt;br /&gt;
&lt;br /&gt;
Этот процесс подключения повторяется для каждого устройства в системе. Контроллер запоминает мощность сигнала устройства во время процесса подключения, таким образом, архитектура предполагает, что устройства должны быть расположены в окончательном месте, прежде чем они будут добавлены в систему. Однако, Z-Wave предполагает реконфигурацию сети — запуск этой процедуры на контроллере позволяет перераспределить маршруты и улучшить связь между устройствами, расположенными далеко от контроллера.&lt;br /&gt;
&lt;br /&gt;
=== Уровни модели OSI и основные характеристики Z-Wave. ===&lt;br /&gt;
==== Физический уровень==== &lt;br /&gt;
&lt;br /&gt;
Передача данных осуществляется на частоте 869.0 МГц (Россия), 868.42 МГц (Европа, страны CEPT, Китай, Сингапур, ОАЭ, ЮАР), 908.42 МГц (США, Мексика), 921.42 МГц (Австралия, Бразилия, Новая Зеландия), 919.8 МГц (Гонконг), 865.2 МГц (Индия), 868.2 МГц (Малайзия), Япония (951-956 и 922-926 МГц). Модуляция FSK (частотная манипуляция). Скорость передачи: 42 кбит/с, 100 кбит/с и 9.6 кбит/с (для совместимостью со старыми устройствами). Предельная мощность передачи 1 мВт.&lt;br /&gt;
==== Канальный уровень ====&lt;br /&gt;
&lt;br /&gt;
Используются пакеты с контролем целостности данных (контрольная сумма) и адресацией получателя и отправителя. В качестве получателя может использоваться multicast адрес или broadcast (в этом случае пакет принимается всеми участниками сети с включенным радио-модулем).&lt;br /&gt;
&lt;br /&gt;
==== Сетевой уровень ====&lt;br /&gt;
&lt;br /&gt;
Протокол Z-Wave определяет алгоритм маршрутизации, позволяющий передавать данные между устройствами вне прямой видимости. Все постоянно работающие узлы сети (бывают ещё спящие и «часто слушающие» узлы) могу участвовать в пересылке пакетов между другими участниками сети. Z-Wave использует механизм Source Routing, т.е. маршрут следования определяется отправителем. Broadcast и multicast пакеты не маршрутизируются. При невозможности найти нужный узел по маршрутам, записанным в памяти, существует механизм поиска узла по всей сети путём посылки специального пакета Explorer Frame  всем узлам сети. После успешного нахождения узла новый маршрут записывается отправителем в память для последующего использования.&lt;br /&gt;
&lt;br /&gt;
==== Транспортный уровень ====&lt;br /&gt;
&lt;br /&gt;
На данном уровне Z-Wave гарантирует подтверждение доставки и повторную отправку в случае, если пакет не был доставлен до получателя. Каждый узел, участвующий в пересылке, подтверждает факт получения сообщения. Для уменьшения загрузки эфира в Z-Wave используется механизм «молчаливых подтверждений»: узел (А), передавший пакет следующему узлу (Б) на пути следования пакета не ждёт подтверждения от него, а видит, что Б отправил пакет дальше узлу С и воспринимает это как факт подтверждения успешной пересылки пакета от А к Б. Получив пакет, конечный узел передаёт назад подтверждения доставки, которое путешествует назад тем же маршрутом до исходного отправителя. Таким образом отправитель всегда знает, дошёл ли пакет до точки назначения или нет.&lt;br /&gt;
&lt;br /&gt;
==== Сеансовый уровень ====&lt;br /&gt;
&lt;br /&gt;
Используется только при использовании шифрования, где определяются короткие сеансы с одноразовым ключом.&lt;br /&gt;
&lt;br /&gt;
==== Прикладной уровень ====&lt;br /&gt;
&lt;br /&gt;
Z-Wave также определяет алгоритм интерпретации получаемых на прикладном уровне команд. Данный уровень описан набором Классов Команд (Command Classes). Для некоторых Классов существует несколько вариантов интерпретации команд, которые зависят от Класса Устройства (Device Class), определяющего тип устройства.&lt;br /&gt;
&lt;br /&gt;
С 2012 года физический и канальный уровни протокола Z-Wave вошли в стандарт ITU-T G.9959(рекомендации сектора стандартизации электросвязи Международного союза электросвязи).&lt;br /&gt;
&lt;br /&gt;
Уровни от транспортного до канального реализованы в программном коде Sigma Designs и поставляются в прекомпилированном виде (в комплекте SDK). С одной стороны проприетарный код — это минус, но в закрытости данного протокола есть и свои плюсы: ни один производитель не может изменить нижние уровни протокола, что позволяет легче обеспечивать совместимость — все устройства основаны на одном хорошо отлаженном коде.&lt;br /&gt;
&lt;br /&gt;
Все команды в Z-Wave компактно упакованы. Это нужно для уменьшения размера пакета, что положительно влияет на занимаемое в эфире время, а также на уменьшение потерь при передаче. Z-Wave предназначен для передачи коротких команд без открытия сессии, т.е. совсем не подходит для потоковой передачи потоковых данных. Максимальный полезный размер передаваемых данных составляет 46 байт (размер данных прикладного уровня без шифрования).&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=Z-Wave_%D0%BE%D0%B1%D1%89%D0%B8%D0%B5_%D1%81%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BE_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8&amp;diff=1610</id>
		<title>Z-Wave общие сведения о технологии</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=Z-Wave_%D0%BE%D0%B1%D1%89%D0%B8%D0%B5_%D1%81%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BE_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8&amp;diff=1610"/>
		<updated>2020-07-30T08:54:29Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Взаимодействие]]&lt;br /&gt;
[[Category:Z-Wave]]&lt;br /&gt;
=== Общие сведения о протоколе ===&lt;br /&gt;
'''Z-Wave''' является запатентованным беспроводным протоколом связи, разработанным для домашней автоматизации, в частности для контроля и управления в жилых и коммерческих объектах.&lt;br /&gt;
&lt;br /&gt;
'''''Sigma Designs''''', владелец технологии Z-Wave&lt;br /&gt;
&lt;br /&gt;
'''''Z-Wave Альянс''''', открытый консорциум из более чем 700 производителей.&lt;br /&gt;
По состоянию на 2018, на рынке представлено более 2700 различных сертифицированных продуктов.&lt;br /&gt;
&lt;br /&gt;
В отличие от Wi-Fi и других IEEE 802.11 стандартов передачи данных, предназначенных в основном для больших потоков информации, Z-Wave работает в диапазоне частот до 1 ГГц и оптимизирована для передачи простых управляющих команд с малыми задержками (например, включить/выключить, изменить громкость, яркость и т.д.).&lt;br /&gt;
&lt;br /&gt;
В 2013 году Sigma Designs и Z-Wave Alliance представили расширение протокола Z-Wave, названное Z-Wave Plus.&lt;br /&gt;
&lt;br /&gt;
Фактически, это обычный протокол Z-Wave, дополненный списком более строгих требований по сравнению с обычными требованиями сертификации Z-Wave. Z-Wave Plus полностью включает в себя все требования Z-Wave. Новые требования направлены на улучшение совместимости устройств на рынке.&lt;br /&gt;
&lt;br /&gt;
Условие совместимости — одно из главных преимуществ технологии Z-Wave. Перед выходом в продажу все устройства проходят сертификацию Z-Wave в одном их трёх центров сертификации, где проверяют устройство на совместимость. Более 150 производителей по всем миру выбрали Z-Wave в качестве основного протокола для своих продуктов. И все они совместимы друг с другом в пределах одного региона (одного диапазона частот).&lt;br /&gt;
&lt;br /&gt;
'''Внимание! Один контроллер может работать с другими устройствами только на одной частоте. Поэтому если планируете создавать сеть Z-Wave продумайте на какой частоте будете её строить. Если планируете расширять - перепроверьте на какой частоте работает Ваш контроллер.'''&lt;br /&gt;
&lt;br /&gt;
=== Совместная работа оборудования Z-Wave и MajorDoMo ===&lt;br /&gt;
Платформа MajorDoMo поддерживает следующие подключение контроллеров: API Z-Wave.Me ('''USB стик Z-Wave.Me, Z-Stick Z-Way''' и '''Плата расширения Z-Wave.Me RaZberry''');  API VeraLite; Zippato;  и возможна работа через windows шлюз mqtt от Aven. &lt;br /&gt;
При покупке оборудования контроллера, ознакомьтесь с документацией на оборудование.&lt;br /&gt;
'''Рекомендация: Перед интеграцией с системой MajorDoMo требуется установить оборудование в ОС, настроить сеть и установить необходимый модуль.&lt;br /&gt;
Для совместной работы используется [[Z-Wave модуль]].&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
=== Возможности и термины сети Z-Way: ===&lt;br /&gt;
Первичный контроллер — координатор сети. Это единственный узел, способный включать в сеть новые узлы и исключать существующие. Он же хранит информацию о топологии сети и может обновлять списки соседей для всех остальных (вторичных) контроллеров и формировать маршруты во всех дочерних узлах. Первичный контроллер может быть только один в сети. Обычно первичным является тот контроллер, с которого началось построение сети. Однако в дальнейшем первичный контроллер может включить в сеть новый контроллер, передав ему свою роль.&lt;br /&gt;
Каждая Z-Wave сеть определяется уникальным идентификатором сети (Network ID) (генерируется при создании сети генератором случайных чисел с шумом от радиоприёмника в качестве источника случайных числе или назначается Sigma Designs для старых контроллеров). Network ID (он же Home ID) является общим идентификатором всех узлов, принадлежащих к одной логической Z-Wave сети. Network ID имеет длину 4 байта (32 бит) и присваивается каждому устройству через основной (primary) контроллер, когда устройство подключается к сети. На одной территории может сосуществовать несколько сетей Z-Wave с разными Home ID. При этом они не будут друг друга видеть и друг с другом взаимодействовать. и может включать до 232 узлов, определяемых идентификатором устройства (Node ID).&lt;br /&gt;
&lt;br /&gt;
Узлы с различными идентификаторами сети не могут общаться друг с другом.&lt;br /&gt;
&lt;br /&gt;
Z-Wave использует ячеистую топологию сети и можно создать сеть из одного управляемого и одного управляющего устройства. (Что мы и делаем на данный момент). Дополнительные устройства могут быть добавлены в любое время, так же как и несколько управляющих контроллеров.&lt;br /&gt;
&lt;br /&gt;
Устройства должны быть «включены» в Z-Wave сеть, прежде чем ими можно будет управлять.&lt;br /&gt;
&lt;br /&gt;
Включение происходит переводом контроллера в специальный режим Включения (Inclusion mode; обычно какой-то специальной кнопкой в или комбинацией клавиш), а включаемого устройства в режим Обучения (Learn mode; обычно одинарным или тройным нажатием на кнопку). При этом контроллер и включаемое устройство должны находиться в прямой видимости. Многие современные (версии протокола 4.5x или 6.x) постоянно питающиеся (не спящие) устройства первые 3-5 минут после включения в сеть электропитания самостоятельно переходят в специальный режим обучения (Network Wide Inclusion, NWI), если они ещё не включены в сеть. При этом условие нахождения в прямой видимости уже не требуется. Это позволяет достаточно легко включать в сеть новые устройства, не бегая по дому.&lt;br /&gt;
&lt;br /&gt;
Исключение из сети происходит аналогично: контроллер переводится в режим Исключения (Exclusion mode), а дочерний узел в режим Обучения. После исключения Node ID и Home ID устройства сбросятся на 0 (для контроллеров NodeID сбросится на 1, а HomeID на заводское значение). Большинство устройств при исключении сбросит и все остальные пользовательские настройки на заводские значения.&lt;br /&gt;
&lt;br /&gt;
Стоит отметить, что устройство уже прописанное в одной сети не включится в другую сеть. Но исключить из сети может любой первичный контроллер (даже устройство не из своей сети).&lt;br /&gt;
&lt;br /&gt;
Этот процесс подключения повторяется для каждого устройства в системе. Контроллер запоминает мощность сигнала устройства во время процесса подключения, таким образом, архитектура предполагает, что устройства должны быть расположены в окончательном месте, прежде чем они будут добавлены в систему. Однако, Z-Wave предполагает реконфигурацию сети — запуск этой процедуры на контроллере позволяет перераспределить маршруты и улучшить связь между устройствами, расположенными далеко от контроллера.&lt;br /&gt;
&lt;br /&gt;
=== Уровни модели OSI и основные характеристики Z-Wave. ===&lt;br /&gt;
==== Физический уровень==== &lt;br /&gt;
&lt;br /&gt;
Передача данных осуществляется на частоте 869.0 МГц (Россия), 868.42 МГц (Европа, страны CEPT, Китай, Сингапур, ОАЭ, ЮАР), 908.42 МГц (США, Мексика), 921.42 МГц (Австралия, Бразилия, Новая Зеландия), 919.8 МГц (Гонконг), 865.2 МГц (Индия), 868.2 МГц (Малайзия), Япония (951-956 и 922-926 МГц). Модуляция FSK (частотная манипуляция). Скорость передачи: 42 кбит/с, 100 кбит/с и 9.6 кбит/с (для совместимостью со старыми устройствами). Предельная мощность передачи 1 мВт.&lt;br /&gt;
==== Канальный уровень ====&lt;br /&gt;
&lt;br /&gt;
Используются пакеты с контролем целостности данных (контрольная сумма) и адресацией получателя и отправителя. В качестве получателя может использоваться multicast адрес или broadcast (в этом случае пакет принимается всеми участниками сети с включенным радио-модулем).&lt;br /&gt;
&lt;br /&gt;
==== Сетевой уровень ====&lt;br /&gt;
&lt;br /&gt;
Протокол Z-Wave определяет алгоритм маршрутизации, позволяющий передавать данные между устройствами вне прямой видимости. Все постоянно работающие узлы сети (бывают ещё спящие и «часто слушающие» узлы) могу участвовать в пересылке пакетов между другими участниками сети. Z-Wave использует механизм Source Routing, т.е. маршрут следования определяется отправителем. Broadcast и multicast пакеты не маршрутизируются. При невозможности найти нужный узел по маршрутам, записанным в памяти, существует механизм поиска узла по всей сети путём посылки специального пакета Explorer Frame  всем узлам сети. После успешного нахождения узла новый маршрут записывается отправителем в память для последующего использования.&lt;br /&gt;
&lt;br /&gt;
==== Транспортный уровень ====&lt;br /&gt;
&lt;br /&gt;
На данном уровне Z-Wave гарантирует подтверждение доставки и повторную отправку в случае, если пакет не был доставлен до получателя. Каждый узел, участвующий в пересылке, подтверждает факт получения сообщения. Для уменьшения загрузки эфира в Z-Wave используется механизм «молчаливых подтверждений»: узел (А), передавший пакет следующему узлу (Б) на пути следования пакета не ждёт подтверждения от него, а видит, что Б отправил пакет дальше узлу С и воспринимает это как факт подтверждения успешной пересылки пакета от А к Б. Получив пакет, конечный узел передаёт назад подтверждения доставки, которое путешествует назад тем же маршрутом до исходного отправителя. Таким образом отправитель всегда знает, дошёл ли пакет до точки назначения или нет.&lt;br /&gt;
&lt;br /&gt;
==== Сеансовый уровень ====&lt;br /&gt;
&lt;br /&gt;
Используется только при использовании шифрования, где определяются короткие сеансы с одноразовым ключом.&lt;br /&gt;
&lt;br /&gt;
==== Прикладной уровень ====&lt;br /&gt;
&lt;br /&gt;
Z-Wave также определяет алгоритм интерпретации получаемых на прикладном уровне команд. Данный уровень описан набором Классов Команд (Command Classes). Для некоторых Классов существует несколько вариантов интерпретации команд, которые зависят от Класса Устройства (Device Class), определяющего тип устройства.&lt;br /&gt;
&lt;br /&gt;
С 2012 года физический и канальный уровни протокола Z-Wave вошли в стандарт ITU-T G.9959(рекомендации сектора стандартизации электросвязи Международного союза электросвязи).&lt;br /&gt;
&lt;br /&gt;
Уровни от транспортного до канального реализованы в программном коде Sigma Designs и поставляются в прекомпилированном виде (в комплекте SDK). С одной стороны проприетарный код — это минус, но в закрытости данного протокола есть и свои плюсы: ни один производитель не может изменить нижние уровни протокола, что позволяет легче обеспечивать совместимость — все устройства основаны на одном хорошо отлаженном коде.&lt;br /&gt;
&lt;br /&gt;
Все команды в Z-Wave компактно упакованы. Это нужно для уменьшения размера пакета, что положительно влияет на занимаемое в эфире время, а также на уменьшение потерь при передаче. Z-Wave предназначен для передачи коротких команд без открытия сессии, т.е. совсем не подходит для потоковой передачи потоковых данных. Максимальный полезный размер передаваемых данных составляет 46 байт (размер данных прикладного уровня без шифрования).&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%BE%D0%B7%D0%BD%D0%B8%D0%BA%D0%B0%D1%8E%D1%89%D0%B8%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8&amp;diff=1606</id>
		<title>Категория:Возникающие ошибки</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%BE%D0%B7%D0%BD%D0%B8%D0%BA%D0%B0%D1%8E%D1%89%D0%B8%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8&amp;diff=1606"/>
		<updated>2020-07-29T11:09:41Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Полностью удалено содержимое страницы&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=MySQL_551&amp;diff=1605</id>
		<title>MySQL 551</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=MySQL_551&amp;diff=1605"/>
		<updated>2020-07-29T11:07:54Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Новая страница: «Category:Возникающие ошибки  ==Описание== Warning in ./libraries/plugin_interface.lib.php#551  Ошибка возникает при...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Возникающие ошибки]]&lt;br /&gt;
&lt;br /&gt;
==Описание==&lt;br /&gt;
Warning in ./libraries/plugin_interface.lib.php#551&lt;br /&gt;
&lt;br /&gt;
Ошибка возникает при использовании импорта и экспорта базы данных в phpMyAdmin.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Warning 551.png|мини|phpMyAdmin Warning 551]]&lt;br /&gt;
 &lt;br /&gt;
==Решение проблемы==&lt;br /&gt;
&lt;br /&gt;
Для начала обезопасим себя, проведем резервное копирование файла ''plugin_interface.lib.php'' командой &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp /usr/share/phpmyadmin/libraries/plugin_interface.lib.php /usr/share/phpmyadmin/libraries/plugin_interface.lib.php.bak &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого без опасений его можно редактировать и в случае чего восстановить.&lt;br /&gt;
&lt;br /&gt;
Приступим к редактированию командой &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /usr/share/phpmyadmin/libraries/plugin_interface.lib.php &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Нажмите CTRL + W и найдите &amp;lt;pre&amp;gt;if (! is_null($options) &amp;amp;&amp;amp; count($options) &amp;gt; 0) {&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если не найдено, попробуйте выполнить поиск &amp;lt;pre&amp;gt;if ($options != null &amp;amp;&amp;amp; count($options) &amp;gt; 0)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Замените на &amp;lt;pre&amp;gt;if (! is_null($options) &amp;amp;&amp;amp; count((array)$options) &amp;gt; 0) {&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраните файл (Нажмите CTRL + O) и выйдите, (Нажмите CTRL + X , нажмите Y а затем нажмите ENTER ) &lt;br /&gt;
&lt;br /&gt;
После этих манипуляций перезапустить сервис '''apache''' командой&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=1064&amp;diff=1602</id>
		<title>1064</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=1064&amp;diff=1602"/>
		<updated>2020-07-29T08:55:26Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Возникающие ошибки]]&lt;br /&gt;
&lt;br /&gt;
==Описание==&lt;br /&gt;
1064 - ошибка возникает при неверном запросе sql.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Поиск проблемы==&lt;br /&gt;
Если у вас такой случай &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND TITLE LIKE 'cycle%Run' ORDER BY TITLE' at line 1&lt;br /&gt;
SELECT properties.* FROM properties WHERE OBJECT_ID= AND TITLE LIKE 'cycle%Run' ORDER BY TITLE &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обычно проявляется на вкладке x-ray? то вероятно проблема в отсутствии класса ThisComputer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 2020-07-28 12-46-02.jpg|мини|центр|ThisComputer]]&lt;br /&gt;
 &lt;br /&gt;
==Решение проблемы==&lt;br /&gt;
Импортировать Класс ThisComputer &lt;br /&gt;
&lt;br /&gt;
[[Файл:Computer1.txt|мини|Класс для импорта скачать]]&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Computer1.txt&amp;diff=1601</id>
		<title>Файл:Computer1.txt</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Computer1.txt&amp;diff=1601"/>
		<updated>2020-07-29T08:54:36Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Класс для импорта&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=1064&amp;diff=1598</id>
		<title>1064</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=1064&amp;diff=1598"/>
		<updated>2020-07-29T06:09:07Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Возникающие ошибки]]&lt;br /&gt;
&lt;br /&gt;
==Описание==&lt;br /&gt;
1064 - ошибка возникает при неверном запросе sql.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Поиск проблемы==&lt;br /&gt;
Если у вас такой случай &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND TITLE LIKE 'cycle%Run' ORDER BY TITLE' at line 1&lt;br /&gt;
SELECT properties.* FROM properties WHERE OBJECT_ID= AND TITLE LIKE 'cycle%Run' ORDER BY TITLE &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обычно проявляется на вкладке x-ray? то вероятно проблема в отсутствии класса ThisComputer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 2020-07-28 12-46-02.jpg|мини|центр|ThisComputer]]&lt;br /&gt;
 &lt;br /&gt;
==Решение проблемы==&lt;br /&gt;
Импортировать Класс ThisComputer&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=1064&amp;diff=1597</id>
		<title>1064</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=1064&amp;diff=1597"/>
		<updated>2020-07-29T06:06:45Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Новая страница: «Category:Возникающие ошибки  ==Описание== 1064 - ошибка возникает при неверном запросе sql.     ==П...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Возникающие ошибки]]&lt;br /&gt;
&lt;br /&gt;
==Описание==&lt;br /&gt;
1064 - ошибка возникает при неверном запросе sql.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Поиск проблемы==&lt;br /&gt;
Если у вас такой случай &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND TITLE LIKE 'cycle%Run' ORDER BY TITLE' at line 1&lt;br /&gt;
SELECT properties.* FROM properties WHERE OBJECT_ID= AND TITLE LIKE 'cycle%Run' ORDER BY TITLE &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Обычно проявляется на вкладке x-ray? то проблема в отсутствии записи о нужном цикле или нескольких в Классе ThisComputer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Photo 2020-07-28 12-46-02.jpg|мини|центр|ThisComputer]]&lt;br /&gt;
 &lt;br /&gt;
==Решение проблемы==&lt;br /&gt;
Импортировать Класс ThisComputer&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Photo_2020-07-28_12-46-02.jpg&amp;diff=1596</id>
		<title>Файл:Photo 2020-07-28 12-46-02.jpg</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Photo_2020-07-28_12-46-02.jpg&amp;diff=1596"/>
		<updated>2020-07-28T09:56:49Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ThisComputer&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=Cannot_redeclare&amp;diff=1592</id>
		<title>Cannot redeclare</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=Cannot_redeclare&amp;diff=1592"/>
		<updated>2020-07-24T06:00:46Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Возникающие ошибки]]&lt;br /&gt;
&lt;br /&gt;
==Описание==&lt;br /&gt;
Cannot redeclare - ошибка объявления функции.&lt;br /&gt;
&lt;br /&gt;
Если Вы видите ошибку PHP Fatal error: Cannot redeclare function это значит, что есть проблема в Вашем коде (он пытается объявить одну функцию несколько раз).&lt;br /&gt;
&lt;br /&gt;
Эта ошибка говорит о том, что Ваша функция уже определена. Это может означать:&lt;br /&gt;
&lt;br /&gt;
У Вас есть такая же функция, определенная в двух файлах.&lt;br /&gt;
&lt;br /&gt;
У Вас есть такая же функция, определенная в двух местах в том же файле.&lt;br /&gt;
&lt;br /&gt;
Файл, в котором определена Ваша функция, включается два раза (так, кажется, функция определена два раза)&lt;br /&gt;
&lt;br /&gt;
Чтобы помочь с третьим пунктом, решением было бы использовать include_once вместо include при включении Вашего файла functions.php, поэтому его нельзя включать более одного раза.&lt;br /&gt;
&lt;br /&gt;
==Поиск проблемы==&lt;br /&gt;
Необходимо найти функцию по названию в файлах МДМ &lt;br /&gt;
&lt;br /&gt;
в Windows умеет поиск по файлам Notepad++&lt;br /&gt;
&lt;br /&gt;
в Linux &amp;lt;pre&amp;gt;grep -rl 'НАЗВАНИЕ ФУНКЦИИ' /var/www&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Решение проблемы==&lt;br /&gt;
Далее определиться где она лишняя (чаще всего это файл личных функций) и удалить ее там.&lt;br /&gt;
&lt;br /&gt;
Перезапуск системы.&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=Cannot_redeclare&amp;diff=1591</id>
		<title>Cannot redeclare</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=Cannot_redeclare&amp;diff=1591"/>
		<updated>2020-07-24T05:48:30Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Новая страница: «Category:Возникающие ошибки  ==Описание== Cannot redeclare - ошибка объявления функции. Если Вы види...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Возникающие ошибки]]&lt;br /&gt;
&lt;br /&gt;
==Описание==&lt;br /&gt;
Cannot redeclare - ошибка объявления функции.&lt;br /&gt;
Если Вы видите ошибку PHP Fatal error: Cannot redeclare function это значит, что есть проблема в Вашем коде (он пытается объявить одну функцию несколько раз).&lt;br /&gt;
&lt;br /&gt;
Эта ошибка говорит о том, что Ваша функция уже определена. Это может означать:&lt;br /&gt;
&lt;br /&gt;
У Вас есть такая же функция, определенная в двух файлах.&lt;br /&gt;
&lt;br /&gt;
У Вас есть такая же функция, определенная в двух местах в том же файле.&lt;br /&gt;
&lt;br /&gt;
Файл, в котором определена Ваша функция, включается два раза (так, кажется, функция определена два раза)&lt;br /&gt;
&lt;br /&gt;
Чтобы помочь с третьим пунктом, решением было бы использовать include_once вместо include при включении Вашего файла functions.php, поэтому его нельзя включать более одного раза.&lt;br /&gt;
&lt;br /&gt;
==Поиск проблемы==&lt;br /&gt;
Необходимо найти функцию по названию в файлах МДМ &lt;br /&gt;
&lt;br /&gt;
в Windows умеет поиск по файлам Notepad++&lt;br /&gt;
&lt;br /&gt;
в Linux &amp;lt;pre&amp;gt;grep -rl 'НАЗВАНИЕ ФУНКЦИИ' /var/www&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Решение проблемы==&lt;br /&gt;
Далее определиться где она лишняя (чаще всего это файл личных функций) и удалить ее там.&lt;br /&gt;
&lt;br /&gt;
Перезапуск системы.&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=Modules&amp;diff=1066</id>
		<title>Modules</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=Modules&amp;diff=1066"/>
		<updated>2020-06-17T07:56:43Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Папки и файлы]]&lt;br /&gt;
&lt;br /&gt;
[[Папки и файлы|Вернуться на директорию выше]]&lt;br /&gt;
===== Папки директории modules =====&lt;br /&gt;
&lt;br /&gt;
[[actions_log]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[app_mediabrowser]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[app_player]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[blockly_code]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[classes]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[commands]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[connect]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[control_access]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[control_modules]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[dashboard]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[dateselect]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[devices]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[Modules/events|events]] - пока без описания корректная ссылка&lt;br /&gt;
&lt;br /&gt;
[[events]] - пока без описания Кривая ссылка&lt;br /&gt;
&lt;br /&gt;
[[history]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[jobs]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[layouts]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[linkedobject]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[locations]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[market]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[master]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[methods]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[myblocks]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[objects]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[patterns]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[pinghosts]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[plans]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[properties]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[pvalues]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[saverestore]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[scenes]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[scripts]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[security_rules]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[settings]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[shoutbox]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[shoutrooms]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[soundfiles]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[system_errors]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[terminals]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[textfiles]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[thumb]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[users]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[xray]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
===== Файлы директории modules =====&lt;br /&gt;
&lt;br /&gt;
application.class.php - пока без описания&lt;br /&gt;
&lt;br /&gt;
apps.php - пока без описания&lt;br /&gt;
&lt;br /&gt;
first_start.php - пока без описания&lt;br /&gt;
&lt;br /&gt;
inc_panel_ajax.php - пока без описания&lt;br /&gt;
&lt;br /&gt;
panel.class.php - пока без описания&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=Templates/events&amp;diff=1065</id>
		<title>Templates/events</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=Templates/events&amp;diff=1065"/>
		<updated>2020-06-17T07:32:53Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Новая страница: «страница»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;страница&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%9F%D0%B0%D0%BF%D0%BA%D0%B8_%D0%B8_%D1%84%D0%B0%D0%B9%D0%BB%D1%8B&amp;diff=1056</id>
		<title>Папки и файлы</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%9F%D0%B0%D0%BF%D0%BA%D0%B8_%D0%B8_%D1%84%D0%B0%D0%B9%D0%BB%D1%8B&amp;diff=1056"/>
		<updated>2020-06-17T06:59:59Z</updated>

		<summary type="html">&lt;p&gt;Newz20: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Папки и файлы|Папки и файлы]]&lt;br /&gt;
[[Category:Структура]]&lt;br /&gt;
====Папки====&lt;br /&gt;
[[3rdparty]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[backup]] - Папка в данный момент перенесена в директорию [[saverestore]] /cms/saverestore&lt;br /&gt;
&lt;br /&gt;
[[cms]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[css]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[img]] - картинки иконки изображения используемые в интерфейсе&lt;br /&gt;
&lt;br /&gt;
[[js]] - пока без описания&lt;br /&gt;
&lt;br /&gt;
[[languages]] - папка с файлами локализации&lt;br /&gt;
&lt;br /&gt;
[[lib]] - в этой папке хранятся системные функции, так же можно создать и хранить свои &amp;quot;пользовательские&amp;quot; функции.&lt;br /&gt;
&lt;br /&gt;
[[modules]] - Папка с установленными модулями&lt;br /&gt;
&lt;br /&gt;
[[objects]] - Папка содержащая в себе сценарий проекта обработчика объекта (или как-то так)&lt;br /&gt;
&lt;br /&gt;
[[pChart]] - Графики&lt;br /&gt;
&lt;br /&gt;
[[rc]] - пока нет описания&lt;br /&gt;
&lt;br /&gt;
[[scripts]] - в этой папке содержатся циклы системы MajorDoMo&lt;br /&gt;
&lt;br /&gt;
[[templates]] - в этой папке содержится набор шаблонов для интерфейса&lt;br /&gt;
&lt;br /&gt;
[[templates_alt]] - Альтернатива папки templates для измененных файлов своего дизайна (чтобы при обновлении не слетали собственные правки)&lt;br /&gt;
&lt;br /&gt;
====Файлы====&lt;br /&gt;
&lt;br /&gt;
admin.php&lt;br /&gt;
&lt;br /&gt;
api.php&lt;br /&gt;
&lt;br /&gt;
backup.php&lt;br /&gt;
&lt;br /&gt;
btraced.php&lt;br /&gt;
&lt;br /&gt;
command.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Конфигурационный файл|config.php.sample]] - Заготовка, шаблон основного конфигурационного файла. В рабочей системе переименовывается в&lt;br /&gt;
[[Конфигурационный файл|config.php]], предварительно откорректировав. Подробнее про [[Конфигурационный файл]]&lt;br /&gt;
&lt;br /&gt;
cycle.php&lt;br /&gt;
&lt;br /&gt;
db_terminal.sql&lt;br /&gt;
&lt;br /&gt;
diagnostic.php&lt;br /&gt;
&lt;br /&gt;
favicon.ico - иконка логотипа MajorDoMo&lt;br /&gt;
&lt;br /&gt;
index.php&lt;br /&gt;
&lt;br /&gt;
install-linux.sh&lt;br /&gt;
&lt;br /&gt;
load_settings.php&lt;br /&gt;
&lt;br /&gt;
nf.php&lt;br /&gt;
&lt;br /&gt;
obj.bat&lt;br /&gt;
&lt;br /&gt;
print_all.php&lt;br /&gt;
&lt;br /&gt;
robots.txt&lt;br /&gt;
&lt;br /&gt;
rss.php&lt;br /&gt;
&lt;br /&gt;
trackme.php&lt;br /&gt;
&lt;br /&gt;
verimage.php&lt;br /&gt;
&lt;br /&gt;
write_error.php&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80&amp;diff=1023</id>
		<title>Редактор</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80&amp;diff=1023"/>
		<updated>2020-06-09T16:24:57Z</updated>

		<summary type="html">&lt;p&gt;Newz20: /* Горячие клавиши */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Первые шаги]]&lt;br /&gt;
== Горячие клавиши ==&lt;br /&gt;
Некоторые функции доступны только в альфе (на дату 09.06.2020)&lt;br /&gt;
&lt;br /&gt;
Для работы большинства функций требуется настроить их в общих настройках -&amp;gt; Codeeditor&lt;br /&gt;
&lt;br /&gt;
&amp;quot;F11&amp;quot; - развернуть окно редактора на весь экран&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-S&amp;quot; - сохранить изменения &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-O&amp;quot; - Принудительное автосохранение  (в тесте)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-E&amp;quot; - Проверка на ошибки без сохранения и перезагрузки страницы&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-D&amp;quot; - Делает дубликат строки на которой стоит курсор&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-F&amp;quot; - поиск &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl + Shift + F&amp;quot; - поиск с заменой&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Esc&amp;quot; - выход из полного экрана&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-Space&amp;quot; - автодопонение набираемой функции &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-Q&amp;quot; - Сворачивает и разворачивает блоки функций&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80&amp;diff=1022</id>
		<title>Редактор</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80&amp;diff=1022"/>
		<updated>2020-06-09T16:18:50Z</updated>

		<summary type="html">&lt;p&gt;Newz20: перенос строки&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Первые шаги]]&lt;br /&gt;
== Горячие клавиши ==&lt;br /&gt;
Некоторые функции доступны только в альфе (на дату 09.06.2020)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;F11&amp;quot; - развернуть окно редактора на весь экран&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-S&amp;quot; - сохранить изменения &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-O&amp;quot; - Принудительное автосохранение  (в тесте)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-E&amp;quot; - Проверка на ошибки без сохранения и перезагрузки страницы&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-D&amp;quot; - Делает дубликат строки на которой стоит курсор&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-F&amp;quot; - поиск &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl + Shift + F&amp;quot; - поиск с заменой&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Esc&amp;quot; - выход из полного экрана&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-Space&amp;quot; - автодопонение набираемой функции &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-Q&amp;quot; - Сворачивает и разворачивает блоки функций&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80&amp;diff=1021</id>
		<title>Редактор</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80&amp;diff=1021"/>
		<updated>2020-06-09T16:17:52Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Правка&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Первые шаги]]&lt;br /&gt;
== Горячие клавиши ==&lt;br /&gt;
Некоторые функции доступны только в альфе (на дату 09.06.2020)&lt;br /&gt;
&amp;quot;F11&amp;quot; - развернуть окно редактора на весь экран&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-S&amp;quot; - сохранить изменения &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-O&amp;quot; - Принудительное автосохранение  (в тесте)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-E&amp;quot; - Проверка на ошибки без сохранения и перезагрузки страницы&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-D&amp;quot; - Делает дубликат строки на которой стоит курсор&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-F&amp;quot; - поиск &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl + Shift + F&amp;quot; - поиск с заменой&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Esc&amp;quot; - выход из полного экрана&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-Space&amp;quot; - автодопонение набираемой функции &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-Q&amp;quot; - Сворачивает и разворачивает блоки функций&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80&amp;diff=1015</id>
		<title>Редактор</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80&amp;diff=1015"/>
		<updated>2020-06-09T14:48:59Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Новая страница: «Category:Первые шаги == Горячие клавиши == Некоторые функции доступны только в альфе (на дат...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Первые шаги]]&lt;br /&gt;
== Горячие клавиши ==&lt;br /&gt;
Некоторые функции доступны только в альфе (на дату 09.06.2020)&lt;br /&gt;
&amp;quot;F11&amp;quot; - развернуть окно редактора на весь экран&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-S&amp;quot; - сохранить изменения &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-E&amp;quot; - включает и отключает автосохранение&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-D&amp;quot; -  Делает дубликат строки на которой стоит курсор&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-F&amp;quot; - поиск &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl + Shift + F&amp;quot; - поиск с заменой&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Esc&amp;quot; - выход из полного экрана&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-Space&amp;quot; - автодопонение набираемой функции &lt;br /&gt;
&lt;br /&gt;
&amp;quot;Ctrl-Q&amp;quot;: function(cm){ cm.foldCode(cm.getCursor()); }&lt;br /&gt;
		}&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:SetTimeOut&amp;diff=1000</id>
		<title>Обсуждение:SetTimeOut</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:SetTimeOut&amp;diff=1000"/>
		<updated>2020-06-05T10:16:21Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Полностью удалено содержимое страницы&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:SetTimeOut&amp;diff=997</id>
		<title>Обсуждение:SetTimeOut</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:SetTimeOut&amp;diff=997"/>
		<updated>2020-06-05T09:08:51Z</updated>

		<summary type="html">&lt;p&gt;Newz20: /* Подскажите где применяется */ новая тема&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Подскажите как использовать&lt;br /&gt;
&lt;br /&gt;
== Подскажите где применяется ==&lt;br /&gt;
&lt;br /&gt;
тест&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:SetTimeOut&amp;diff=996</id>
		<title>Обсуждение:SetTimeOut</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:SetTimeOut&amp;diff=996"/>
		<updated>2020-06-05T09:07:45Z</updated>

		<summary type="html">&lt;p&gt;Newz20: Новая страница: «Подскажите как использовать»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Подскажите как использовать&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
	<entry>
		<id>https://mdminfo.ru/index.php?title=SetTimeOut&amp;diff=995</id>
		<title>SetTimeOut</title>
		<link rel="alternate" type="text/html" href="https://mdminfo.ru/index.php?title=SetTimeOut&amp;diff=995"/>
		<updated>2020-06-05T09:04:11Z</updated>

		<summary type="html">&lt;p&gt;Newz20: /* Альтернативные названия функции (сленг) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Встроенные функции]]&lt;br /&gt;
==Описание==&lt;br /&gt;
'''SetTimeOut'''('title','commands', $timeout); //-- $timeout в секундах (аналог AddScheduledJob('title','commands',time()+$timeout));&lt;br /&gt;
&lt;br /&gt;
'''timeOutExists'''('title'); //-- возвращает идентификатор запланированной задачи (или 0, в случае отсутствия)&lt;br /&gt;
&lt;br /&gt;
'''ClearTimeOut'''(&amp;quot;title&amp;quot;); // аналог ClearScheduledJob(&amp;quot;title&amp;quot;); - удаляет таймер выше&lt;br /&gt;
&lt;br /&gt;
==Примеры запросов==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// motionDetected() method example&lt;br /&gt;
// включаем свет (команда вымышленная)&lt;br /&gt;
If ($lightIsOff) {&lt;br /&gt;
 turnonlight();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
// сбрасываем таймер выключения&lt;br /&gt;
//ps. При установке одноименного таймера ClearTimeOut можно не делать&lt;br /&gt;
ClearTimeOut(&amp;quot;TurnOffTheLight&amp;quot;);&lt;br /&gt;
// ставим новый таймер&lt;br /&gt;
SetTimeOut(&amp;quot;TurnOffTheLight&amp;quot;,&amp;quot;turnofflight();&amp;quot;,60);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Альтернативные названия функции (сленг)==&lt;br /&gt;
Сеттаймаут, таймер, отложенный запуск&lt;br /&gt;
&lt;br /&gt;
==Просто для проверки появления разделов==&lt;/div&gt;</summary>
		<author><name>Newz20</name></author>
	</entry>
</feed>