Установка на Linux: различия между версиями

Материал из MajorDoMo инфо
Нет описания правки
 
(не показана 41 промежуточная версия 5 участников)
Строка 1: Строка 1:
[[Category:Установка]]
[[Category:Установка]]


==Альтернативные варианты==
[[installmd|Скрипт installmd, установка почти на все виды плат и полноценный Linux]]
[https://mjdm.ru/forum/viewtopic.php?f=3&p=92843#p92843 Скрипт установки на Ubuntu Server 18, 20, 22 и Mint 19, 20, 21]
== Внимание!!! ==
''Инструкция была написана под операционную систему Ubuntu 18.10 и тестировалась только на ней!
В случае если у Вас установлена другая операционная система Linux то возможно, на каком-то из шагов, у Вас возникнут ошибки. В данном случае, рекомендуется сообщить об этих ошибках в чат в [https://t.me/MajorDoMoRu Telegram] или же на [https://majordomo.smartliving.ru/forum/ форум].''
'''<big>Перед началом работы необходимо убедиться что в системе установлен пакет sudo.</big>'''


Внимание!!!
Инструкция была написана под операционную систему Ubuntu 18.10 и тестировалась только на ней!
В случае если у Вас установлена другая операционная система Linux то возможно, на каком-то из шагов, у Вас возникнут ошибки. В данном случае, рекомендуется сообщить об этих ошибках в чат в Telegram или же на форум.
Перед началом работы необходимо убедиться что в системе установлен пакет sudo.
Для этого нужно выполнить команду:
Для этого нужно выполнить команду:


  sudo
  <pre>sudo</pre>


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


  bash: sudo: command not found
  <pre>bash: sudo: command not found</pre>


Это будет обозначать, что пакет sudo по умолчанию не установлен в Вашей ОС. Потому его необходимо установить.
Это будет обозначать, что пакет sudo по умолчанию не установлен в Вашей ОС. Потому его необходимо установить.
Строка 18: Строка 25:
Для это необходимо выполнить следующие команды:
Для это необходимо выполнить следующие команды:


  su -
  <pre>su -</pre>
 
Будет запрошен пароль пользователя от которого выполняется команда.
 
<span style="color:#ff0000">'''Важно!!!'''</span> При вводе пароля символы не будут отображены на экране!


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


  root@localhost:~#
  <pre>root@localhost:~#</pre>


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


  apt install sudo
  <pre>apt install sudo</pre>


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


  usermod -aG sudo USERNAME
  <pre>usermod -aG sudo USERNAME</pre>


Где:
Где:
Строка 37: Строка 47:
По завершении этих действий, необходимо выйти в окружение обычного пользователя. Это выполняется командой:
По завершении этих действий, необходимо выйти в окружение обычного пользователя. Это выполняется командой:


exit
<pre>exit</pre>
1
 
exit
Затем необходимо перелогиниться, для этого введем
 
<pre>sudo service systemd-logind restart</pre>
 
Приглашающее сообщение в консоли, должно принять подобный вид:
Приглашающее сообщение в консоли, должно принять подобный вид:


pi@localhost:~$
<pre>pi@localhost:~$</pre>
1
 
pi@localhost:~$
Если вы разворачиваете сервер  на ноутбуке вам пригодится отключение режима засыпания при закрытии крышки.
Обновление кеша пакетов и обновление установленных пакетов (в случае если для них есть обновления)
для этого набираем
sudo apt-get update
 
sudo apt-get upgrade
<pre>sudo nano /etc/systemd/logind.conf</pre>
1
 
2
Находим строчку ''#HandleLidSwitch=suspend'' и меняем её на
sudo apt-get update
 
sudo apt-get upgrade
<pre>HandleLidSwitch=ignore</pre>
 
И опять же  перелогиниться
 
<pre>sudo service systemd-logind restart</pre>
 
==Обновление кеша пакетов и обновление установленных пакетов (в случае если для них есть обновления)==
<pre>sudo apt-get update
sudo apt-get upgrade</pre>
Установим ещё пару приложений которые будем использовать в процессе установки
Установим ещё пару приложений которые будем использовать в процессе установки


sudo apt-get install nano wget unzip -y
<pre>sudo apt-get install nano wget unzip -y</pre>
1
 
sudo apt-get install nano wget unzip -y
==Устанавливаем SSH==
Устанавливаем SSH
 
sudo apt-get install ssh -y
<pre>sudo apt-get install openssh-server openssh-client -y</pre>
1
 
sudo apt-get install ssh -y
==Устанавливаем MySQL==
Устанавливаем MySQL
 
sudo apt-get install mysql-server mysql-client -y
<pre>sudo apt-get install mysql-server mysql-client -y</pre>
1
 
sudo apt-get install mysql-server mysql-client -y
Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните. Этот пароль понадобится в дальнейшем.
Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните. Этот пароль понадобится в дальнейшем.


Важно!!! Если установщик не запросил пароль, то выполните в консоли команду:
<span style="color:#ff0000">'''Важно!!!'''</span> Если установщик не запросил пароль, то выполните в консоли команду:
 
<pre>sudo mysql_secure_installation</pre>


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


Создание пользователя и БД MySQL:
<span style="color:#ff0000">'''В Debian 10'''</span> в качестве альтернативы MySQL по умолчанию используется форк проекта, MariaDB, который поддерживается сообществом.
 
<pre>sudo apt-get install mariadb-server -y</pre>
 
<span style="color:#ff0000">'''---'''</span>
 
==Создание пользователя и БД MySQL:==
 
Для начала создадим БД командой:
Для начала создадим БД командой:


sudo mysql -uroot -p -e "CREATE DATABASE db_terminal;"
<pre>sudo mysql -uroot -p -e "CREATE DATABASE db_terminal;"</pre>
1
 
sudo mysql -uroot -p -e "CREATE DATABASE db_terminal;"
После выполнения этой команды, и далее по параграфу, MySQL будет просить ввести пароль пользователя root, который мы указывали выше. Вводим его где будет необходимо и нажимаем Enter.<br>
После выполнения этой команды, и далее по параграфу, MySQL будет просить ввести пароль пользователя root, который мы указывали выше. Вводим его где будет необходимо и нажимаем Enter.
<span style="color:#ff0000">'''Важно!!!'''</span> При вводе пароля символы не будут отображены на экране.<br>
Важно!!! При вводе пароля символы не будут отображены на экране.
 
Далее создаём пользователя для работы с этой БД:
Далее создаём пользователя для работы с этой БД:


sudo mysql -uroot -p -e "CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';"
<pre>sudo mysql -uroot -p -e "CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';"</pre>
1
 
sudo mysql -uroot -p -e "CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';"
password - необходимо заменить на ваш пароль, который тоже необходимо запомнить. Этот пароль будет использоваться для работы MajorDoMo с БД, а так же для входа в phpMyAdmin ниже по инструкции.<br>
password - необходимо заменить на ваш пароль, который тоже необходимо запомнить. Этот пароль будет использоваться для работы MajorDoMo с БД, а так же для входа в phpMyAdmin ниже по инструкции.
<span style="color:#ff0000">'''Важно!!!'''</span> Рекомендуется использовать сложный пароль, так как в случае если будет открыт доступ к MajorDoMo и phpMyAdmin извне, то есть вероятность того, что простой пароль будет взломан и тот, кто это сделает, сможет получить доступ к важным данным в Вашей MajorDoMo.<br>
Важно!!! Рекомендуется использовать сложный пароль, так как в случае если будет открыт доступ к MajorDoMo и phpMyAdmin извне, то есть вероятность того, что простой пароль будет взломан и тот, кто это сделает, сможет получить доступ к важным данным в Вашей MajorDoMo.
 
Для предоставления только что созданному пользователю привилегий, необходимо выполнить команду:
Для предоставления только что созданному пользователю привилегий, необходимо выполнить команду:


sudo mysql -uroot -p -e "GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';"
<pre>sudo mysql -uroot -p -e "GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';"</pre>
1
 
sudo mysql -uroot -p -e "GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';"
И в завершение, необходимо обновить привилегии:
И в завершение, необходимо обновить привилегии:


sudo mysql -uroot -p -e "FLUSH PRIVILEGES;"
<pre>sudo mysql -uroot -p -e "FLUSH PRIVILEGES;"</pre>
1
 
sudo mysql -uroot -p -e "FLUSH PRIVILEGES;"
==Установка WEB сервера==
Установка WEB сервера
 
В качестве web сервера можно поставить разные пакеты.
В качестве web сервера можно установить разные пакеты. В данном случае рассматривается вариант установки Apache.
 
<pre>sudo apt-get install apache2 apache2-utils -y</pre>


Установка на основе Apache.
sudo apt-get install apache2 apache2-utils -y
1
sudo apt-get install apache2 apache2-utils -y
Правим конфиг Апача
Правим конфиг Апача


sudo nano /etc/apache2/sites-available/default
<pre>sudo nano /etc/apache2/sites-available/default</pre>
1
 
sudo nano /etc/apache2/sites-available/default
Если такого файла нет, он может называться по-другому. Например:
Если такого файла нет, он может называться по-другому. Например:


000-default.conf
<pre>000-default.conf</pre>
1
 
000-default.conf
В этом файле находим раздел:
В этом файле находим раздел:


<Directory />
<pre><Directory /></pre>
1
 
<Directory />
И заменяем во всех совпадениях
И заменяем во всех совпадениях


AllowOverride None
<pre>AllowOverride None</pre>
1
 
AllowOverride None
на
на


AllowOverride All
<pre>AllowOverride All</pre>
1
 
AllowOverride All
Сохраняемся и выходим: Ctrl-O Ctrl-X
Сохраняемся и выходим: Ctrl-O Ctrl-X
В более новых версиях Apache конфигурационный файл может не содержать директив "AllowOverride". В таком случае необходимо вручную привести файл к виду:
В более новых версиях Apache конфигурационный файл может не содержать директив "AllowOverride". В таком случае необходимо вручную привести файл к виду:
 
<pre>
<VirtualHost *:80>
<VirtualHost *:80>
   DocumentRoot /var/www/html
   DocumentRoot /var/www/html
Строка 157: Строка 176:
   ErrorLog ${APACHE_LOG_DIR}/error.log
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
</VirtualHost></pre>
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<VirtualHost *:80>
  DocumentRoot /var/www/html
  <Directory />
    Options FollowSymLinks
    AllowOverride All
  </Directory>
  <Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>
  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  <Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
  </Directory>
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Удаляем стандартный index.html файл командой:
Удаляем стандартный index.html файл командой:


sudo rm -f /var/www/html/index.html
<pre>sudo rm -f /var/www/html/index.html</pre>
1
 
sudo rm -f /var/www/html/index.html
И перезапускаем Апач:
И перезапускаем Апач:


sudo apache2ctl restart
<pre>sudo apache2ctl restart</pre>
1
 
sudo apache2ctl restart
Если при перезапуске выдаст примерно такой ответ:
Если при перезапуске выдаст примерно такой ответ:


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
<pre>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</pre>
1
 
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
То необходимо поправить apache2.conf
То необходимо поправить apache2.conf


sudo nano /etc/apache2/apache2.conf
<pre>sudo nano /etc/apache2/apache2.conf</pre>
1
 
sudo nano /etc/apache2/apache2.conf
Вставив в него такую строку:
Вставив в него такую строку:


ServerName localhost
<pre>ServerName localhost</pre>
1
 
ServerName localhost
Сохраняемся и выходим: Ctrl-O Ctrl-X
Сохраняемся и выходим: Ctrl-O Ctrl-X


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


sudo apache2ctl restart
<pre>sudo apache2ctl restart</pre>
1
 
sudo apache2ctl restart
Если ваша версия Apache отличается от рассматриваемой, то пути к файлам конфигурации могут быть такими:
Если ваша версия Apache отличается от рассматриваемой, то пути к файлам конфигурации могут быть такими:


sudo nano /etc/apache2/sites-available/default.conf
<pre>sudo nano /etc/apache2/sites-available/default.conf
1
sudo nano /etc/apache2/httpd.conf</pre>
sudo nano /etc/apache2/sites-available/default.conf
 
sudo nano /etc/apache2/httpd.conf
==Устанавливаем PHP==
1
 
sudo nano /etc/apache2/httpd.conf
<pre>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</pre>
Устанавливаем PHP
 
sudo apt-get install php php-cgi php-cli php-pear php-mysql php-mbstring php-xml -y
1
sudo apt-get install php php-cgi php-cli php-pear php-mysql php-mbstring php-xml -y
curl и его библиотеки:
curl и его библиотеки:


sudo apt-get install curl libcurl3 libcurl3-dev php-curl -y
<pre>sudo apt-get install curl libcurl3 libcurl3-dev php7.3-curl -y</pre>
1
 
sudo apt-get install curl libcurl3 libcurl3-dev php-curl -y
<span style="color:#ff0000">'''В Debian 10'''</span>
Для apache
<pre>sudo apt-get install curl libcurl4 libcurl3-dev php7.3-curl -y</pre>
 
<span style="color:#ff0000">'''---'''</span>
 
*Для apache
 
<pre>sudo apt-get install libapache2-mod-php7.3 -y</pre>
 
*Для последних версий Апача необходимо включить работу с коротким тегом <? /?> для этого откройте файл php.ini командой: (внимательно смотрите какая версия PHP установилась у вас, и поменяйте 7.3 на свои версии. здесь и далее по инструкции)


sudo apt-get install libapache2-mod-php -y
<pre>sudo nano /etc/php/7.3/apache2/php.ini</pre>
1
sudo apt-get install libapache2-mod-php -y
Для последних версий Апача необходимо включить работу с коротким тегом <? /?> для этого откройте файл php.ini командой:


sudo nano /etc/php/7.0/apache2/php.ini
1
sudo nano /etc/php/7.0/apache2/php.ini
Необходимо заменить или вставить строку:
Необходимо заменить или вставить строку:


short_open_tag = On
<pre>short_open_tag = On</pre>
1
 
short_open_tag = On
==Устанавливаем PHPMYADMIN==
Устанавливаем PHPMYADMIN
 
sudo apt-get install phpmyadmin -y
<pre>sudo apt-get install phpmyadmin -y</pre>
1
 
sudo apt-get install phpmyadmin -y
Установщик изначально спросит о том, к какой версии web сервера необходимо произвести настройку. Необходимо выбрать версию apache2 путём нажатия пробела и Enter.
Установщик изначально спросит о том, к какой версии web сервера необходимо произвести настройку. Необходимо выбрать версию apache2 путём нажатия пробела и Enter.


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


Включаем mod_rewrite
==Включаем mod_rewrite==
sudo a2enmod rewrite
 
1
<pre>sudo a2enmod rewrite</pre>
sudo a2enmod rewrite
 
Перезапускаем Апач
Перезапускаем Апач


sudo apache2ctl restart
<pre>sudo apache2ctl restart</pre>
1
 
sudo apache2ctl restart
 
Настройка PHP
<span style="color:#ff0000">'''В Debian 10'''</span>
 
PhpMyAdmin не включен в репозиторий программного обеспечения Debian 10, поэтому мы должны загрузить его с phpmyadmin.net
 
Установим необходимые компоненты:
<pre>sudo apt install php7.3-mbstring php7.3-zip php7.3-gd wget -y</pre>
 
<pre>cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip</pre>
 
или вставляем ссылку на последнюю версию с сайта https://www.phpmyadmin.net/downloads/
 
Распаковываем, копируем в /usr/share/phpmyadmin и назначаем права:
<pre>
unzip phpMyAdmin-5.1.1-all-languages.zip
sudo mv phpMyAdmin-5.1.1-all-languages/ /usr/share/phpmyadmin
sudo chown -R www-data:www-data /usr/share/phpmyadmin</pre>
 
Теперь нам нужно войти в консоль MariaDB и создать базу данных и пользователя для phpMyAdmin.
<pre>
sudo mysql -u root
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'your_preferred_password';
grant all privileges on *.* to admin@localhost with grant option;
FLUSH PRIVILEGES;
EXIT;
</pre>
Где '''your_preferred_password''' будет пароль для входа в phpMyAdmin
 
Затем перезапустите Apache:
<pre>sudo systemctl restart apache2</pre>
 
Создайте файл phpmyadmin.conf:
<pre>sudo nano /etc/apache2/conf-available/phpmyadmin.conf</pre>
 
Вставьте следующий текст в файл phpmyadmin.conf:
<pre>
# phpMyAdmin default Apache configuration
 
Alias /phpmyadmin /usr/share/phpmyadmin
 
<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php
 
    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>
 
        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        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/
        php_admin_value mbstring.func_overload 0
    </IfModule>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>
 
        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        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/
        php_admin_value mbstring.func_overload 0
    </IfModule>
 
</Directory>
 
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>
</pre>
 
Для сохранения нажмите CTRL+O ENTER для выхода CTRL+X
 
Включим этот фрагмент конфигурации:
<pre>sudo a2enconf phpmyadmin.conf</pre>
 
Создаем временную папку:
 
<pre>sudo mkdir -p /var/lib/phpmyadmin/tmp
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp</pre>
 
Перезагрузите Apache, чтобы изменения вступили в силу:
 
<pre>sudo systemctl reload apache2</pre>
 
Создаём файл config.inc.php из примера:
<pre>sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php</pre>
 
Необходимо задать парольную фразу, открываем файл config.inc.php
 
<pre>sudo nano /usr/share/phpmyadmin/config.inc.php</pre>
 
ищем строчку '''$cfg['blowfish_secret']''' и задаём между кавычками какую-нибудь парольную фразу  длиннее 32-х символов, например,
<pre>$cfg['blowfish_secret'] = '12345678901234567890123456789012'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */</pre>
 
Так-же сохраняем CTRL+O ENTER и выходим CTRL+X
Теперь вы можете получить доступ к веб-интерфейсу phpMyAdmin по адресу, введя имя 'admin' и пароль 'your_preferred_password', которые задали на шаге при создании базы данных и пользователя для phpMyAdmin:
<pre>http://ip_адрес/phpmyadmin</pre>
 
Теперь в панели управления phpMyAdmin вы можете увидеть предупреждающее сообщение.
 
[[Файл:PhpMyAdmin не полностью настроено.png|центр]]
 
Переходим по ссылке "Узнайте причину".
Видим сообщение:
 
[[Файл:Создать базу данных с именем.png|центр]]
 
Переходим по ссылке "Создать".
 
<span style="color:#ff0000">'''---'''</span>
 
==Настройка PHP==
 
В обоих конфигурационных файлах для web сервера:
В обоих конфигурационных файлах для web сервера:


sudo nano /etc/php/7.0/apache2/php.ini
<pre>sudo nano /etc/php/7.3/apache2/php.ini</pre>
1
 
sudo nano /etc/php/7.0/apache2/php.ini
И файл запуска php скриптов из командной строки:
И файл запуска php скриптов из командной строки:


sudo nano /etc/php/7.0/cli/php.ini
<pre>sudo nano /etc/php/7.3/cli/php.ini</pre>
1
 
sudo nano /etc/php/7.0/cli/php.ini
Строку error_reporting привести к виду:
Строку error_reporting привести к виду:


error_reporting  =  E_ALL & ~E_NOTICE
<pre>error_reporting  =  E_ALL & ~E_NOTICE</pre>
1
 
error_reporting  =  E_ALL & ~E_NOTICE
А так же строки:
А так же строки:
 
<pre>max_execution_time - С 30 меняем на 90
max_execution_time - С 30 меняем на 90
1
max_execution_time - С 30 меняем на 90
max_input_time - С 60 на 180
1
max_input_time - С 60 на 180
max_input_time - С 60 на 180
post_max_size - С 8M на 200M
1
post_max_size - С 8M на 200M
post_max_size - С 8M на 200M
upload_max_filesize - С 2M на 50M
upload_max_filesize - С 2M на 50M
1
max_file_uploads - С 20 на 150</pre>
upload_max_filesize - С 2M на 50M
 
max_file_uploads - С 20 на 150
1
max_file_uploads - С 20 на 150
Для применения изменений, необходимо перезапустить Apache:
Для применения изменений, необходимо перезапустить Apache:


sudo /etc/init.d/apache2 restart
<pre>sudo /etc/init.d/apache2 restart</pre>
1
 
sudo /etc/init.d/apache2 restart
==Устанавливаем MajorDoMo==
Устанавливаем MajorDoMo
 
Скачиваем дистрибутив Majordomo, разархивируем и копируем содержимое majordomo-master в директорию /var/www/html:
Скачиваем дистрибутив Majordomo, разархивируем и копируем содержимое majordomo-master в директорию /var/www/html:


mkdir ~/majordomo
<pre>mkdir ~/majordomo
cd ~/majordomo
cd ~/majordomo
wget https://github.com/sergejey/majordomo/archive/master.zip
wget https://github.com/sergejey/majordomo/archive/master.zip
Строка 336: Строка 416:
sudo cp -rp ~/majordomo/majordomo-master/* /var/www/html
sudo cp -rp ~/majordomo/majordomo-master/* /var/www/html
sudo cp -rp ~/majordomo/majordomo-master/.htaccess /var/www/html
sudo cp -rp ~/majordomo/majordomo-master/.htaccess /var/www/html
rm -rf ~/majordomo
rm -rf ~/majordomo</pre>
1
 
2
3
4
5
6
7
mkdir ~/majordomo
cd ~/majordomo
wget https://github.com/sergejey/majordomo/archive/master.zip
unzip master.zip
sudo cp -rp ~/majordomo/majordomo-master/* /var/www/html
sudo cp -rp ~/majordomo/majordomo-master/.htaccess /var/www/html
rm -rf ~/majordomo
Настройка прав на файлы и директории
Настройка прав на файлы и директории
Установка рекомендуемых прав выполняется следующими командами:
Установка рекомендуемых прав выполняется следующими командами:
Для файлов:
Для файлов:


sudo find /var/www/html/ -type f -exec chmod 0644 {} \;
<pre>sudo find /var/www/html/ -type f -exec chmod 0644 {} \;</pre>
1
 
sudo find /var/www/html/ -type f -exec chmod 0644 {} \;
Для директорий:
Для директорий:


sudo find /var/www/html/ -type d -exec chmod 0755 {} \;
<pre>sudo find /var/www/html/ -type d -exec chmod 0755 {} \;</pre>
1
 
sudo find /var/www/html/ -type d -exec chmod 0755 {} \;
Проверяем права командой:
Проверяем права командой:


ls -lh /var/www/html
<pre>ls -lh /var/www/html</pre>
1
 
ls -lh /var/www/html
Права будут выглядеть подобно:
Права будут выглядеть подобно:
Для директорий:
Для директорий:


drwxr-xr-x
<pre>drwxr-xr-x</pre>
1
 
drwxr-xr-x
Для файлов:
Для файлов:


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


sudo chown -R www-data:www-data /var/www/html
<pre>sudo chown -R www-data:www-data /var/www/html</pre>
1
 
sudo chown -R www-data:www-data /var/www/html
Проверяем:
Проверяем:


ls -lh /var/www/html
<pre>ls -lh /var/www/html</pre>
1
 
ls -lh /var/www/html
Вывод должен быть подобный:
Вывод должен быть подобный:


-rw-r--r--  1 www-data www-data  12K May 26 22:19 cycle.php
<pre>-rw-r--r--  1 www-data www-data  12K May 26 22:19 cycle.php</pre>
1
 
-rw-r--r--  1 www-data www-data  12K May 26 22:19 cycle.php
Теперь необходимо предоставить доступ пользователю www-data к медиа устройствам. Для этого его необходимо добавить в группу audio.
Теперь необходимо предоставить доступ пользователю www-data к медиа устройствам. Для этого его необходимо добавить в группу audio.


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


sudo usermod -a -G audio www-data
<pre>sudo usermod -a -G audio www-data</pre>
1
 
sudo usermod -a -G audio www-data
Проверяем, что он появился в группе:
Проверяем, что он появился в группе:


cat /etc/group | grep audio
<pre>cat /etc/group | grep audio</pre>
1
 
cat /etc/group | grep audio
Если всё в порядке, то вывод будет подобный:
Если всё в порядке, то вывод будет подобный:


audio:x:29:www-data
<pre>audio:x:29:www-data</pre>
1
 
audio:x:29:www-data
<span style="color:#ff0000">''Дальнейшие команды в этом разделе нужно использовать только в случае если у Вас по какой-то причине система не работает совсем или не работает частично.''</span>
Дальнейшие команды нужно использовать только в случае если у Вас по какой-то причине система не работает совсем или не работает частично.
 
В большинстве случаев на моменте начального конфигурирования, проблемы с системой возникают из-за неправильно установленных прав.
<big>В большинстве случаев на моменте начального конфигурирования, проблемы с системой возникают из-за неправильно установленных прав.</big>


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


sudo find /var/www/html/ -type f -exec chmod 0666 {} \;
<pre>sudo find /var/www/html/ -type f -exec chmod 0666 {} \;</pre>
1
 
sudo find /var/www/html/ -type f -exec chmod 0666 {} \;
И директориям
И директориям


sudo find /var/www/html/ -type d -exec chmod 0777 {} \;
<pre>sudo find /var/www/html/ -type d -exec chmod 0777 {} \;</pre>
1
 
sudo find /var/www/html/ -type d -exec chmod 0777 {} \;
Проверяем права командой:
Проверяем права командой:


ls -lh /var/www/html
<pre>ls -lh /var/www/html</pre>
1
 
ls -lh /var/www/html
Права будут выглядеть подобно:  
Права будут выглядеть подобно:
 
Для директорий:
Для директорий:


drwxrwxrwx
<pre>drwxrwxrwx</pre>
1
 
drwxrwxrwx
Для файлов:
Для файлов:


-rw-rw-rw-
<pre>-rw-rw-rw-</pre>
1
 
-rw-rw-rw-
В случае если права по какой-то причине не установились, то можно сделать вариант в котором устанавливаются полные права для всех рекурсивно по директориям и файлам.  
В случае если права по какой-то причине не установились, то можно сделать вариант в котором устанавливаются полные права для всех рекурсивно по директориям и файлам. Команда выглядит так:
 
Команда выглядит так:
 
<pre>sudo chmod -R 777 /var/www/html</pre>


sudo chmod -R 777 /var/www/html
1
sudo chmod -R 777 /var/www/html
Необходимо заметить, что данный способ, не самый безопасный, но самый простой.
Необходимо заметить, что данный способ, не самый безопасный, но самый простой.


Импорт базы данных
==Импорт базы данных==
 
Заходим по адресу:
Заходим по адресу:
http://localhost/phpmyadmin
 
<pre>http://localhost/phpmyadmin</pre>
 
Или:
Или:
http://localhost/phpmyadmin4
 
<pre>http://localhost/phpmyadmin4</pre>


При входе будет запрошен логин, его необходимо указать как: majordomo, и пароль который который был задан на шаге: "Создание пользователя и БД MySQL".
При входе будет запрошен логин, его необходимо указать как: majordomo, и пароль который который был задан на шаге: "Создание пользователя и БД MySQL".


В созданную ранее БД необходимо импортировать файл db_terminal.sql из директории с дистрибутивом. Скачать его можно по ссылке: db_termina.sql. Для скачивания нажмите правой кнопкой мыши на ссылку и выберите: "Сохранить ссылку как...".
В созданную ранее БД необходимо импортировать файл db_terminal.sql из директории с дистрибутивом. Скачать его можно по ссылке: [https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql db_termina.sql]. Для скачивания нажмите правой кнопкой мыши на ссылку и выберите: "Сохранить ссылку как...".


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


В левой части окна выбрать БД db_terminal, путём нажатия один раз на её название.
* В левой части окна выбрать БД db_terminal, путём нажатия один раз на её название.
В верхней части окна найти кнопку "Импорт".
* В верхней части окна найти кнопку "Импорт".
В загрузившейся странице, в разделе "Импортируемый файл" нажать "Выберите файл" или "Обзор".
* В загрузившейся странице, в разделе "Импортируемый файл" нажать "Выберите файл" или "Обзор".
В открывшемся окне, выбрать ранее сохраненный файл "db_terminal.sql".
* В открывшемся окне, выбрать ранее сохраненный файл "db_terminal.sql".
В нижней части окна нажать "Вперёд".
* В нижней части окна нажать "Вперёд".
 
 
[[Файл:Импорт db terminal успешно завершён.png|мини|слева]]
После успешного импорта должна отобразится зелёная строка с подобным текстом:
После успешного импорта должна отобразится зелёная строка с подобным текстом:


Импорт успешно завершён, выполнено 171 запросов. (db_terminal.sql)
<pre>Импорт успешно завершён, выполнено 192 запроса. (db_terminal.sql)</pre>
1
Импорт успешно завершён, выполнено 171 запросов. (db_terminal.sql)


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


sudo wget -O /tmp/db_terminal.sql https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql
<pre>sudo wget -O /tmp/db_terminal.sql https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql</pre>
1
 
sudo wget -O /tmp/db_terminal.sql https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql
И импортируйте его:
И импортируйте его:


sudo mysql -umajordomo -p db_terminal < /tmp/db_terminal.sql
<pre>sudo mysql -umajordomo -p db_terminal < /tmp/db_terminal.sql</pre>
1
 
sudo mysql -umajordomo -p db_terminal < /tmp/db_terminal.sql
Будет запрошен пароль пользователя majordomo, который был задан на шаге: "[[Установка_на_Linux#Создание пользователя и БД MySQL:|Создание пользователя и БД MySQL]]".
Будет запрошен пароль пользователя majordomo, который был задан на шаге: "Создание пользователя и БД MySQL".
 
==Правим основной конфиг==


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


sudo cp /var/www/html/config.php.sample /var/www/html/config.php
<pre>sudo cp /var/www/html/config.php.sample /var/www/html/config.php</pre>
1
 
sudo cp /var/www/html/config.php.sample /var/www/html/config.php
Установим собственника и группу для конфига:
Установим собственника и группу для конфига:


sudo chown www-data: /var/www/html/config.php
<pre>sudo chown www-data: /var/www/html/config.php</pre>
1
 
sudo chown www-data: /var/www/html/config.php
И открываем конфиг для редактирования:
И открываем конфиг для редактирования:


sudo nano /var/www/html/config.php
<pre>sudo nano /var/www/html/config.php</pre>
1
 
sudo nano /var/www/html/config.php
Прописываем имя пользователя и пароль пользователя БД. Для этого нужно исправить строки:
Прописываем имя пользователя и пароль пользователя БД. Для этого нужно исправить строки:


Define('DB_USER', 'majordomo');
<pre>Define('DB_USER', 'majordomo');
Define('DB_PASSWORD', '');
Define('DB_PASSWORD', '');</pre>
1
 
2
Где:
Define('DB_USER', 'majordomo');
* '''DB_USER''' - пользователь majordomo который был создан на шаге: "Создание пользователя и БД MySQL".
Define('DB_PASSWORD', '');
* '''DB_PASSWORD''' - пароль от этого пользователя, который был задан на том же шаге.
Где: DB_USER - пользователь majordomo который был создан на шаге: "Создание пользователя и БД MySQL".
 
DB_PASSWORD - пароль от этого пользователя, который был задан на том же шаге.
Сохраняем файл, и выходим из редактора.
Сохраняем файл, и выходим из редактора.
Все, теперь можно зайти на веб интерфейс Majordomo.
Все, теперь можно зайти на веб интерфейс Majordomo.


http://localhost/
http://localhost/
1
 
http://localhost/
Или:
Или:


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


http://localhost/popup/first_start.html
<pre>http://localhost/popup/first_start.html</pre>
1
 
http://localhost/popup/first_start.html
==Основной цикл Вариант 1. Systemd unit. Предпочтительный==
Основной цикл Вариант 1. Systemd unit. Предпочтительный
 
Код юнита:
Код юнита:


<pre>
[Unit]
[Unit]
Description=Majordomo cycles service
Description=Majordomo cycles service
Строка 548: Строка 608:


[Install]
[Install]
WantedBy=multi-user.target
WantedBy=multi-user.target</pre>
1
 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[Unit]
Description=Majordomo cycles service
Requires=network.target mysql.service apache2.service
After=mysql.service apache2.service
[Service]
Type=simple
User=www-data
Group=www-data
ExecStart=/usr/bin/php /var/www/html/cycle.php
ExecStop=/usr/bin/pkill -f cycle_*
KillSignal=SIGKILL
KillMode=control-group
RestartSec=1min
Restart=on-failure
[Install]
WantedBy=multi-user.target
Данный код необходимо скопировать в файл: /etc/systemd/system/majordomo.service Для этого открываем файл:
Данный код необходимо скопировать в файл: /etc/systemd/system/majordomo.service Для этого открываем файл:


sudo nano /etc/systemd/system/majordomo.service
<pre>sudo nano /etc/systemd/system/majordomo.service</pre>
1
 
sudo nano /etc/systemd/system/majordomo.service
И вставляем в него код, который представлен выше.
И вставляем в него код, который представлен выше.
Для автозапуска MajorDoMo при старте системы, необходимо выполнить команду:
Для автозапуска MajorDoMo при старте системы, необходимо выполнить команду:


sudo systemctl enable majordomo
<pre>sudo systemctl enable majordomo</pre>
1
 
sudo systemctl enable majordomo
И для запуска MajorDoMo необходимо выполнить:
И для запуска MajorDoMo необходимо выполнить:


sudo systemctl start majordomo
<pre>sudo systemctl start majordomo</pre>
1
 
sudo systemctl start majordomo
==Основной цикл Вариант 2. Если не сработал первый вариант==
Основной цикл Вариант 2. Если не сработал первый вариант
 
Запуск основного цикла добавляем в Cron, для пользователя www-data, так как файлы МД принадлежат этому пользователю.
Запуск основного цикла добавляем в Cron, для пользователя www-data, так как файлы МД принадлежат этому пользователю.


sudo crontab -e -u www-data
<pre>sudo crontab -e -u www-data</pre>
1
 
sudo crontab -e -u www-data
В открывшемся окне добавляем строку:
В открывшемся окне добавляем строку:


@reboot /usr/bin/php /var/www/html/cycle.php
<pre>@reboot /usr/bin/php /var/www/html/cycle.php</pre>
1
 
@reboot /usr/bin/php /var/www/html/cycle.php
'''И обязательно!''' ставим Enter для того чтобы в конце открытого файла был перенос строки.
И обязательно! ставим Enter для того чтобы в конце открытого файла был перенос строки.
 
Сохраняем и перезапускаем компьютер:
Сохраняем и перезапускаем компьютер:


sudo reboot
<pre>sudo reboot</pre>
1
 
sudo reboot
После запуска циклов можно открыть MajorDoMo по адресу:
После запуска циклов можно открыть MajorDoMo по адресу:


http://localhost/
<pre>http://localhost/</pre>
1
 
http://localhost/
В случае если MajorDoMo устанавливалась на локальный компьютер.
В случае если MajorDoMo устанавливалась на локальный компьютер.
Или:
Или:


http://IP_ADDRESS/
<pre>http://IP_ADDRESS/</pre>
1
 
http://IP_ADDRESS/
Если MajorDoMo устанавливалась на удалённый сервер.
Если MajorDoMo устанавливалась на удалённый сервер.


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


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


На этом статья об установке MajorDoMo на Linux Ubuntu закончена.
На этом статья об установке MajorDoMo на Linux Ubuntu закончена.


Полезные темы на форуме
 
Для быстрой установки необходимых атрибутов можно воспользоваться данным скриптом.
==Полезные темы на форуме==
Установка на Ubuntu
 
Установка Системы Majordomo на Raspberry pi
Для быстрой установки необходимых атрибутов можно воспользоваться [http://smartliving.ru/forum/viewtopic.php?f=3&t=2&start=10#p84 данным скриптом].
Установка на FreeBSD
 
[РЕШЕНО] Проблема с установкой и настройкой на Ubuntu 13.04
[http://smartliving.ru/forum/viewtopic.php?f=3&t=298 Установка на Ubuntu]
Установка на Debian подробная инструкция
 
CubieBoard - попытка №1
[http://smartliving.ru/forum/viewtopic.php?f=3&t=573 Установка Системы Majordomo на Raspberry pi]
 
[http://smartliving.ru/forum/viewtopic.php?f=3&t=371 Установка на FreeBSD]
 
[http://smartliving.ru/forum/viewtopic.php?f=3&t=630 (РЕШЕНО) Проблема с установкой и настройкой на Ubuntu 13.04]
 
[http://smartliving.ru/forum/viewtopic.php?f=3&t=424 Установка на Debian подробная инструкция]
 
[http://smartliving.ru/forum/viewtopic.php?f=3&t=740 CubieBoard - попытка №1]

Текущая версия от 11:52, 23 мая 2023


Альтернативные варианты

Скрипт installmd, установка почти на все виды плат и полноценный Linux

Скрипт установки на Ubuntu Server 18, 20, 22 и Mint 19, 20, 21

Внимание!!!

Инструкция была написана под операционную систему Ubuntu 18.10 и тестировалась только на ней! В случае если у Вас установлена другая операционная система Linux то возможно, на каком-то из шагов, у Вас возникнут ошибки. В данном случае, рекомендуется сообщить об этих ошибках в чат в Telegram или же на форум.

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

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

sudo

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

bash: sudo: command not found

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

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

su -

Будет запрошен пароль пользователя от которого выполняется команда.

Важно!!! При вводе пароля символы не будут отображены на экране!

После успешного ввода пароля, в случае если вид консоли изменился и принял подобный вид:

root@localhost:~#

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

apt install sudo

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

usermod -aG sudo USERNAME

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

exit

Затем необходимо перелогиниться, для этого введем

sudo service systemd-logind restart

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

pi@localhost:~$

Если вы разворачиваете сервер на ноутбуке вам пригодится отключение режима засыпания при закрытии крышки. для этого набираем

sudo nano /etc/systemd/logind.conf

Находим строчку #HandleLidSwitch=suspend и меняем её на

HandleLidSwitch=ignore

И опять же перелогиниться

sudo service systemd-logind restart

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

sudo apt-get update
sudo apt-get upgrade

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

sudo apt-get install nano wget unzip -y

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

sudo apt-get install openssh-server openssh-client -y

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

sudo apt-get install mysql-server mysql-client -y

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

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

sudo mysql_secure_installation

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

В Debian 10 в качестве альтернативы MySQL по умолчанию используется форк проекта, MariaDB, который поддерживается сообществом.

sudo apt-get install mariadb-server -y

---

Создание пользователя и БД MySQL:

Для начала создадим БД командой:

sudo mysql -uroot -p -e "CREATE DATABASE db_terminal;"

После выполнения этой команды, и далее по параграфу, MySQL будет просить ввести пароль пользователя root, который мы указывали выше. Вводим его где будет необходимо и нажимаем Enter.
Важно!!! При вводе пароля символы не будут отображены на экране.

Далее создаём пользователя для работы с этой БД:

sudo mysql -uroot -p -e "CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';"

password - необходимо заменить на ваш пароль, который тоже необходимо запомнить. Этот пароль будет использоваться для работы MajorDoMo с БД, а так же для входа в phpMyAdmin ниже по инструкции.
Важно!!! Рекомендуется использовать сложный пароль, так как в случае если будет открыт доступ к MajorDoMo и phpMyAdmin извне, то есть вероятность того, что простой пароль будет взломан и тот, кто это сделает, сможет получить доступ к важным данным в Вашей MajorDoMo.

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

sudo mysql -uroot -p -e "GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';"

И в завершение, необходимо обновить привилегии:

sudo mysql -uroot -p -e "FLUSH PRIVILEGES;"

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

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

sudo apt-get install apache2 apache2-utils -y

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

sudo nano /etc/apache2/sites-available/default

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

000-default.conf

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

<Directory />

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

AllowOverride None

на

AllowOverride All

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

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

<VirtualHost *:80>
  DocumentRoot /var/www/html
  <Directory />
    Options FollowSymLinks
    AllowOverride All
  </Directory>
  <Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  <Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Удаляем стандартный index.html файл командой:

sudo rm -f /var/www/html/index.html

И перезапускаем Апач:

sudo apache2ctl restart

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

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

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

sudo nano /etc/apache2/apache2.conf

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

ServerName localhost

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

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

sudo apache2ctl restart

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

sudo nano /etc/apache2/sites-available/default.conf
sudo nano /etc/apache2/httpd.conf

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

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

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

sudo apt-get install curl libcurl3 libcurl3-dev php7.3-curl -y

В Debian 10

sudo apt-get install curl libcurl4 libcurl3-dev php7.3-curl -y

---

  • Для apache
sudo apt-get install libapache2-mod-php7.3 -y
  • Для последних версий Апача необходимо включить работу с коротким тегом <? /?> для этого откройте файл php.ini командой: (внимательно смотрите какая версия PHP установилась у вас, и поменяйте 7.3 на свои версии. здесь и далее по инструкции)
sudo nano /etc/php/7.3/apache2/php.ini

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

short_open_tag = On

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

sudo apt-get install phpmyadmin -y

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

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

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

Включаем mod_rewrite

sudo a2enmod rewrite

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

sudo apache2ctl restart


В Debian 10

PhpMyAdmin не включен в репозиторий программного обеспечения Debian 10, поэтому мы должны загрузить его с phpmyadmin.net

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

sudo apt install php7.3-mbstring php7.3-zip php7.3-gd wget -y
cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip

или вставляем ссылку на последнюю версию с сайта https://www.phpmyadmin.net/downloads/

Распаковываем, копируем в /usr/share/phpmyadmin и назначаем права:

unzip phpMyAdmin-5.1.1-all-languages.zip
sudo mv phpMyAdmin-5.1.1-all-languages/ /usr/share/phpmyadmin
sudo chown -R www-data:www-data /usr/share/phpmyadmin

Теперь нам нужно войти в консоль MariaDB и создать базу данных и пользователя для phpMyAdmin.

sudo mysql -u root
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'your_preferred_password';
grant all privileges on *.* to admin@localhost with grant option;
FLUSH PRIVILEGES;
EXIT;

Где your_preferred_password будет пароль для входа в phpMyAdmin

Затем перезапустите Apache:

sudo systemctl restart apache2

Создайте файл phpmyadmin.conf:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Вставьте следующий текст в файл phpmyadmin.conf:

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        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/
        php_admin_value mbstring.func_overload 0
    </IfModule>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        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/
        php_admin_value mbstring.func_overload 0
    </IfModule>

</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>

Для сохранения нажмите CTRL+O ENTER для выхода CTRL+X

Включим этот фрагмент конфигурации:

sudo a2enconf phpmyadmin.conf

Создаем временную папку:

sudo mkdir -p /var/lib/phpmyadmin/tmp
sudo chown www-data:www-data /var/lib/phpmyadmin/tmp

Перезагрузите Apache, чтобы изменения вступили в силу:

sudo systemctl reload apache2

Создаём файл config.inc.php из примера:

sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Необходимо задать парольную фразу, открываем файл config.inc.php

sudo nano /usr/share/phpmyadmin/config.inc.php

ищем строчку $cfg['blowfish_secret'] и задаём между кавычками какую-нибудь парольную фразу длиннее 32-х символов, например,

$cfg['blowfish_secret'] = '12345678901234567890123456789012'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Так-же сохраняем CTRL+O ENTER и выходим CTRL+X Теперь вы можете получить доступ к веб-интерфейсу phpMyAdmin по адресу, введя имя 'admin' и пароль 'your_preferred_password', которые задали на шаге при создании базы данных и пользователя для phpMyAdmin:

http://ip_адрес/phpmyadmin

Теперь в панели управления phpMyAdmin вы можете увидеть предупреждающее сообщение.

PhpMyAdmin не полностью настроено.png

Переходим по ссылке "Узнайте причину". Видим сообщение:

Создать базу данных с именем.png

Переходим по ссылке "Создать".

---

Настройка PHP

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

sudo nano /etc/php/7.3/apache2/php.ini

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

sudo nano /etc/php/7.3/cli/php.ini

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

error_reporting  =  E_ALL & ~E_NOTICE

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

max_execution_time - С 30 меняем на 90
max_input_time - С 60 на 180
post_max_size - С 8M на 200M
upload_max_filesize - С 2M на 50M
max_file_uploads - С 20 на 150

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

sudo /etc/init.d/apache2 restart

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

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

mkdir ~/majordomo
cd ~/majordomo
wget https://github.com/sergejey/majordomo/archive/master.zip
unzip master.zip
sudo cp -rp ~/majordomo/majordomo-master/* /var/www/html
sudo cp -rp ~/majordomo/majordomo-master/.htaccess /var/www/html
rm -rf ~/majordomo

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

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

Для файлов:

sudo find /var/www/html/ -type f -exec chmod 0644 {} \;

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

sudo find /var/www/html/ -type d -exec chmod 0755 {} \;

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

ls -lh /var/www/html

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

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

drwxr-xr-x

Для файлов:

-rw-r--r--

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

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

sudo chown -R www-data:www-data /var/www/html

Проверяем:

ls -lh /var/www/html

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

-rw-r--r--  1 www-data www-data  12K May 26 22:19 cycle.php

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

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

sudo usermod -a -G audio www-data

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

cat /etc/group | grep audio

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

audio:x:29:www-data

Дальнейшие команды в этом разделе нужно использовать только в случае если у Вас по какой-то причине система не работает совсем или не работает частично.

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

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

sudo find /var/www/html/ -type f -exec chmod 0666 {} \;

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

sudo find /var/www/html/ -type d -exec chmod 0777 {} \;

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

ls -lh /var/www/html

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

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

drwxrwxrwx

Для файлов:

-rw-rw-rw-

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

Команда выглядит так:

sudo chmod -R 777 /var/www/html

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

Импорт базы данных

Заходим по адресу:

http://localhost/phpmyadmin

Или:

http://localhost/phpmyadmin4

При входе будет запрошен логин, его необходимо указать как: majordomo, и пароль который который был задан на шаге: "Создание пользователя и БД MySQL".

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

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

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


Импорт db terminal успешно завершён.png

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

Импорт успешно завершён, выполнено 192 запроса. (db_terminal.sql)

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

sudo wget -O /tmp/db_terminal.sql https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql

И импортируйте его:

sudo mysql -umajordomo -p db_terminal < /tmp/db_terminal.sql

Будет запрошен пароль пользователя majordomo, который был задан на шаге: "Создание пользователя и БД MySQL".

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

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

sudo cp /var/www/html/config.php.sample /var/www/html/config.php

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

sudo chown www-data: /var/www/html/config.php

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

sudo nano /var/www/html/config.php

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

Define('DB_USER', 'majordomo');
Define('DB_PASSWORD', '');

Где:

  • DB_USER - пользователь majordomo который был создан на шаге: "Создание пользователя и БД MySQL".
  • DB_PASSWORD - пароль от этого пользователя, который был задан на том же шаге.

Сохраняем файл, и выходим из редактора.

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

http://localhost/

Или:

http://sever_ip/

Если установка выполняется не на локальную машину.

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

В случае если такая страница не отобразилась, открыть её можно по ссылке:

http://localhost/popup/first_start.html

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

Код юнита:

[Unit]
Description=Majordomo cycles service
Requires=network.target mysql.service apache2.service
After=mysql.service apache2.service

[Service]
Type=simple
User=www-data
Group=www-data
ExecStart=/usr/bin/php /var/www/html/cycle.php
ExecStop=/usr/bin/pkill -f cycle_*

KillSignal=SIGKILL
KillMode=control-group
RestartSec=1min
Restart=on-failure

[Install]
WantedBy=multi-user.target

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

sudo nano /etc/systemd/system/majordomo.service

И вставляем в него код, который представлен выше.

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

sudo systemctl enable majordomo

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

sudo systemctl start majordomo

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

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

sudo crontab -e -u www-data

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

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

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

Сохраняем и перезапускаем компьютер:

sudo reboot

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

http://localhost/

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

Или:

http://IP_ADDRESS/

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

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

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

127.0.0.1 domain.com

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

На этом статья об установке MajorDoMo на Linux Ubuntu закончена.


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

Для быстрой установки необходимых атрибутов можно воспользоваться данным скриптом.

Установка на Ubuntu

Установка Системы Majordomo на Raspberry pi

Установка на FreeBSD

(РЕШЕНО) Проблема с установкой и настройкой на Ubuntu 13.04

Установка на Debian подробная инструкция

CubieBoard - попытка №1