Установка MajorDoMo на OrangePi Prime
Установка MajorDoMo на OrangePi Prime
Обновление кеша пакетов и обновление установленных пакетов (в случае если для них есть обновления)
apt-get update
apt-get upgrade
Устанавливаем SSH
apt-get install ssh -y
Вместо
apt-get install mysql-server mysql-client -y
Выполняем команду:
apt-get install mariadb-server mariadb-client -y
Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните. Этот пароль понадобится в дальнейшем.
Важно!!! Если установщик не запросил пароль, то выполните в консоли команду:
mysql_secure_installation
И пройдите по всем шагам. И в этих шагах укажите пароль пользователя root.
Создание пользователя и БД MySQL:
Для начала создадим БД командой:
mysql -uroot -p -e "CREATE DATABASE db_terminal;"
После выполнения этой команды, и далее по параграфу, MySQL будет просить ввести пароль пользователя root, который мы указывали выше.
Вводим его где будет необходимо и нажимаем Enter.
Важно!!! При вводе пароля символы не будут отображены на экране.
Далее создаём пользователя для работы с этой БД:
mysql -uroot -p -e "CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';"
password - необходимо заменить на ваш пароль, который тоже необходимо запомнить. Этот пароль будет использоваться для работы MajorDoMo с БД, а так же для входа в phpMyAdmin ниже по инструкции.
Важно!!! Рекомендуется использовать сложный пароль, так как в случае если будет открыт доступ к MajorDoMo и phpMyAdmin извне, то есть вероятность того, что простой пароль будет взломан и тот, кто это сделает, сможет получить доступ к важным данным в Вашей MajorDoMo.
Для предоставления только что созданному пользователю привилегий, необходимо выполнить команду:
mysql -uroot -p -e "GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';"
И в завершение, необходимо обновить привилегии:
mysql -uroot -p -e "FLUSH PRIVILEGES;"
В качестве web сервера можно поставить разные пакеты.
Установка на основе Apache.
apt-get install apache2 apache2-utils -y
Правим конфиг Апача
nano /etc/apache2/sites-available/default
Если такого файла нет, он может называться по-другому. Например:
nano /etc/apache2/sites-available/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 файл командой:
rm -f /var/www/html/index.html
И перезапускаем Апач:
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
nano /etc/apache2/apache2.conf
Вставив в него такую строку:
ServerName localhost
Сохраняемся и выходим: Ctrl-O Ctrl-X
Перезапускаем Апач
apache2ctl restart
Если ваша версия Apache отличается от рассматриваемой, то пути к файлам конфигурации могут быть такими:
nano /etc/apache2/sites-available/default.conf
nano /etc/apache2/httpd.conf
Сохраните и закройте файл.
Обновление кеша пакетов и обновление установленных пакетов (в случае если для них есть обновления)
apt-get update
apt-get upgrade
Устанавливаем SSH
apt-get install ssh -y
Устанавливаем MySQL
Вместо
apt-get install mysql-server mysql-client -y
Выполняем команду:
apt-get install mariadb-server mariadb-client -y
Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните. Этот пароль понадобится в дальнейшем.
Важно!!! Если установщик не запросил пароль, то выполните в консоли команду:
mysql_secure_installation
И пройдите по всем шагам. И в этих шагах укажите пароль пользователя root.
Создание пользователя и БД MySQL:
Для начала создадим БД командой:
mysql -uroot -p -e "CREATE DATABASE db_terminal;"
После выполнения этой команды, и далее по параграфу, MySQL будет просить ввести пароль пользователя root, который мы указывали выше.
Вводим его где будет необходимо и нажимаем Enter.
Важно!!! При вводе пароля символы не будут отображены на экране.
Далее создаём пользователя для работы с этой БД:
mysql -uroot -p -e "CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';"
password - необходимо заменить на ваш пароль, который тоже необходимо запомнить. Этот пароль будет использоваться для работы MajorDoMo с БД, а так же для входа в phpMyAdmin ниже по инструкции.
Важно!!! Рекомендуется использовать сложный пароль, так как в случае если будет открыт доступ к MajorDoMo и phpMyAdmin извне, то есть вероятность того, что простой пароль будет взломан и тот, кто это сделает, сможет получить доступ к важным данным в Вашей MajorDoMo.
Для предоставления только что созданному пользователю привилегий, необходимо выполнить команду:
mysql -uroot -p -e "GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';"
И в завершение, необходимо обновить привилегии:
mysql -uroot -p -e "FLUSH PRIVILEGES;"
Установка WEB сервера
В качестве web сервера можно поставить разные пакеты.
Установка на основе Apache.
apt-get install apache2 apache2-utils -y
Правим конфиг Апача
nano /etc/apache2/sites-available/default
Если такого файла нет, он может называться по-другому. Например:
nano /etc/apache2/sites-available/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 файл командой:
rm -f /var/www/html/index.html
И перезапускаем Апач:
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
nano /etc/apache2/apache2.conf
Вставив в него такую строку:
ServerName localhost
Сохраняемся и выходим: Ctrl-O Ctrl-X
Перезапускаем Апач
apache2ctl restart
Если ваша версия Apache отличается от рассматриваемой, то пути к файлам конфигурации могут быть такими:
nano /etc/apache2/sites-available/default.conf
nano /etc/apache2/httpd.conf
Устанавливаем PHP
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
Что бы установить старую версию PHP: 7.4 для Debian, нужно добавить сторонний репозиторий, PHP repository от Ondřej Surý.
Выполните следующие команды, чтобы добавить репозиторий:
sudo apt install -y apt-transport-https lsb-release ca-certificates wget
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
Затем обновите систему, чтобы отразить добавление нового репозитория.
sudo apt-get update
sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline
Устанавливаем curl и его библиотеки
sudo apt install php7.4-curl php7.4-memcached php7.4-mysql php7.4-pgsql php7.4-gd php7.4-imagick php7.4-intl php7.4-mcrypt php7.4-xml php7.4-zip php7.4-mbstring
---------------------------------------------------------------------------------
Установка последней версии PHP
apt-get install php php-cgi php-cli php-pear php-mysql php-mbstring php-xml -y
Важно!!! Во время установки PHP обратите внимание на номер версии (8.1 или выше), позже понадобится.
Устанавливаем curl и его библиотеки:
apt-get install curl libcurl4 libcurl3-dev php-curl -y
Для apache
apt-get install libapache2-mod-php -y
---------------------------------------------------------------------------------
Для последних версий Апача необходимо включить работу с коротким тегом <? /?> для этого откройте файл php.ini командой:
Важно!!! 7.4 или 8.1 заменить на свою версию php
nano /etc/php/7.4/apache2/php.ini
Необходимо заменить или вставить строку:
short_open_tag = On
Для поиска строки жмем Ctrl+W, вводим short_open_tag, Enter.
Сохраняемся и выходим: Ctrl-O, Enter, Ctrl-X
Устанавливаем PHPMYADMIN
Загрузите phpMyAdmin на сервере Debian 10
phpMyAdmin не включен в репозиторий программного обеспечения Debian 10, поэтому мы должны вручную загрузить программное обеспечение.
Перейдите на страницу загрузки phpMyAdmin, чтобы проверить последнюю стабильную версию.
Затем выполните следующую команду, чтобы загрузить его.
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.zip
Подсказка: Вы всегда можете использовать вышеуказанный формат URL для загрузки последней стабильной версии phpMyAdmin.
Просто замените 5.2.0 на номер последней версии.
Распакуйте.
apt install unzip
unzip phpMyAdmin-5.2.0-all-languages.zip
Переместите phpMyadmin в /usr/share/каталог.
mv phpMyAdmin-5.2.0-all-languages /usr/share/phpmyadmin
Затем сделайте веб-сервером user ( www-data) в качестве владельца этого каталога.
chown -R www-data:www-data /usr/share/phpmyadmin
Если вы хотите получить доступ к веб-интерфейсу phpMyAdmin из подкаталога, создайте фрагмент конфигурации с помощью следующей команды.
sudo nano /etc/apache2/conf-available/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>
Сохраните и закройте файл. Затем включите этот фрагмент конфигурации.
a2enconf phpmyadmin.conf
Нам также нужно создать временную папку phpMyAdmin.
mkdir -p /var/lib/phpmyadmin/tmp
chown www-data:www-data /var/lib/phpmyadmin/tmp
Перезагрузите Apache, чтобы изменения вступили в силу.
systemctl reload apache2
phpMyAdmin не включен в репозиторий программного обеспечения Debian 10, поэтому мы должны вручную загрузить программное обеспечение.
Перейдите на страницу загрузки phpMyAdmin, чтобы проверить последнюю стабильную версию.
Затем выполните следующую команду, чтобы загрузить его.
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/phpMyAdmin-5.2.0-all-languages.zip
Подсказка: Вы всегда можете использовать вышеуказанный формат URL для загрузки последней стабильной версии phpMyAdmin.
Просто замените 5.2.0 на номер последней версии.
Распакуйте.
apt install unzip
unzip phpMyAdmin-5.2.0-all-languages.zip
Переместите phpMyadmin в /usr/share/каталог.
mv phpMyAdmin-5.2.0-all-languages /usr/share/phpmyadmin
Затем сделайте веб-сервером user ( www-data) в качестве владельца этого каталога.
chown -R www-data:www-data /usr/share/phpmyadmin
Создание конфигурации Apache для phpMyAdmin
Если вы хотите получить доступ к веб-интерфейсу phpMyAdmin из подкаталога, создайте фрагмент конфигурации с помощью следующей команды.
sudo nano /etc/apache2/conf-available/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>
Сохраните и закройте файл. Затем включите этот фрагмент конфигурации.
a2enconf phpmyadmin.conf
Нам также нужно создать временную папку phpMyAdmin.
mkdir -p /var/lib/phpmyadmin/tmp
chown www-data:www-data /var/lib/phpmyadmin/tmp
Перезагрузите Apache, чтобы изменения вступили в силу.
systemctl reload apache2
Включаем mod_rewrite
a2enmod rewrite
Перезапускаем Апач
apache2ctl restart
Настройка PHP
В обоих конфигурационных файлах для web сервера:
(Важно!!! 7.4 заменить на свою версию php)
nano /etc/php/7.4/apache2/php.ini
И файл запуска php скриптов из командной строки:
nano /etc/php/7.4/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:
/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
cp -rp ~/majordomo/majordomo-master/* /var/www/html
cp -rp ~/majordomo/majordomo-master/.htaccess /var/www/html
rm -rf ~/majordomo
Настройка прав на файлы и директории
Установка рекомендуемых прав выполняется следующими командами:
Для файлов:
find /var/www/html/ -type f -exec chmod 0644 {} \;
Для директорий:
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.
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:
usermod -a -G audio www-data
Проверяем, что он появился в группе:
cat /etc/group | grep audio
Если всё в порядке, то вывод будет подобный:
audio:x:29:www-data
Далее пользователю www-data предоставляем доступ к выполнению команд через sudo.
Открываем файл visudo
sudo visudo
И добавляем строку
www-data ALL=(ALL) NOPASSWD:ALL
Сохраните и закройте файл.
Импорт базы данных
Заходим по адресу:
Или:
Если phpadmin не открывается, замените localhost на IP вашего сервера, к примеру http://192.168.178.22/phpmyadmin
При входе будет запрошен логин, его необходимо указать как: majordomo, и пароль который который был задан на шаге: "Создание пользователя и БД MySQL".
В созданную ранее БД необходимо импортировать файл db_terminal.sql из директории с дистрибутивом. Скачать его можно по ссылке: db_termina.sql. Для скачивания нажмите правой кнопкой мыши на ссылку и выберите: "Сохранить ссылку как...".
Далее выполняем последовательность действий в phpMyAdmin для импорта sql файла.
В левой части окна выбрать БД db_terminal, путём нажатия один раз на её название.
В верхней части окна найти кнопку "Импорт".
В загрузившейся странице, в разделе "Импортируемый файл" нажать "Выберите файл" или "Обзор".
В открывшемся окне, выбрать ранее сохраненный файл "db_terminal.sql".
В нижней части окна нажать "Вперёд".
После успешного импорта должна отобразится зелёная строка с подобным текстом:
Импорт успешно завершён, выполнено 171 запросов. (db_terminal.sql)
В случае если возникли проблемы с импортом БД используя phpMyAdmin, есть возможность импортировать дамп БД используя командную строку. Для этого скачайте дамп файл командой:
wget -O /tmp/db_terminal.sql https://raw.githubusercontent.com/sergejey/majordomo/master/db_terminal.sql
И импортируйте его:
mysql -umajordomo -p db_terminal < /tmp/db_terminal.sql
Будет запрошен пароль пользователя majordomo, который был задан на шаге: "Создание пользователя и БД MySQL".
Правим основной конфиг
Изначально копируем пример конфига в рабочий конфиг:
cp /var/www/html/config.php.sample /var/www/html/config.php
Установим собственника и группу для конфига:
chown www-data: /var/www/html/config.php
И открываем конфиг для редактирования:
nano /var/www/html/config.php
Прописываем имя пользователя и пароль пользователя БД.
Для этого нужно исправить строки:
Define('DB_USER', 'majordomo');
Define('DB_PASSWORD', '');
Где: DB_USER - пользователь majordomo который был создан на шаге: "Создание пользователя и БД MySQL".
DB_PASSWORD - пароль от этого пользователя, который был задан на том же шаге.
Сохраняем файл, и выходим из редактора.
Все, теперь можно зайти на веб интерфейс Majordomo.
Или: Если установка выполняется не на локальную машину.
При первом входе должна быть отображена страница: "Hello, world! :)" на которой необходимо выбрать тайм зону, язык системы и цветовую тему. По завершении нажать кнопку "Continue".
В случае если такая страница не отобразилась, открыть её можно по ссылке:
Основной цикл Вариант 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
Для этого открываем файл:
nano /etc/systemd/system/majordomo.service
И вставляем в него код, который представлен выше.
Для автозапуска MajorDoMo при старте системы, необходимо выполнить команду:
systemctl enable majordomo
И для запуска MajorDoMo необходимо выполнить:
systemctl start majordomo
Осталось только перезапустить систему командой:
sudo shutdown -r now
Перезапустил систему, а вместо стартовой страницы открылась стандартная страница Apache.
Выполнил ещё раз команду удаления стандартной страницы и запустился Majordomo.
rm -f /var/www/html/index.html
Всем успеха! Материал взят и малость переделан под свои нужды с сайта Majordomo.
Комментарии
Отправить комментарий