Debian 10.х (PHP7.3) + MajorDoMo скрипт установки

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

Ответить
kostyanuch
Сообщения: 9
Зарегистрирован: Пт сен 02, 2016 10:49 am
Благодарил (а): 0
Поблагодарили: 3 раза

Debian 10.х (PHP7.3) + MajorDoMo скрипт установки

Сообщение kostyanuch » Пн ноя 16, 2020 9:04 pm

Добрый вечер, любители и профессионалы.
Я как любитель системы Debian не мог успокоиться, пока не разобрался со скриптами установки из этой темы https://mjdm.ru/forum/viewtopic.php?f=3&p=92843#p92843 и не написал аналогичный для Debian 10 x64 English. Правда пока я переписал только один из 3 скриптов majordomo.sh - установка основной системы, остальные допишу позже. Данный скрипт тестировался и успешно установил систему на чистой 64-битной Debian 10 (язык системы по умолчанию английский, но локали скриптом меняются). Перед запуском скрипта, желательно проверить последнюю версию пакета на https://www.phpmyadmin.net/files/ и поправить ссылку в 62-й строке скрипта для wget. Сам скрипт скопировал уже из Debian, но поскольку правил все под виндой, то перед запуском откройте скрипт в редакторе (под Debian) и убедитесь, что в конце каждой строки нет символов ^M, такое происходит, если файл редактировался в Windows и был скопирован в *nix систему. Дело в том, что в Windows системах перенос строки обозначается двумя символами — CR и LF, а в Linux-е только CR (возврат каретки). Правится файл следующим образом (исходный остаётся):

Код: Выделить всё

cat majordomo_deb10.sh | col -b > majordomo_deb10.sh
Запустить скрипт необходимо командой:

Код: Выделить всё

sudo bash majordomo_deb10.sh
Сам скрипт (также приложил архивом):

Код: Выделить всё

#!/bin/bash
# Codepage UTF-8

sudo apt update
loc2=ru_RU.UTF-8
echo $loc2
loc=$(locale -a | grep ru_RU)
echo $loc
if [[ $loc == *"ru"* ]]; then
    echo "Русская локализация в системе присутствует"
    echo "Установка не требуется, пропуск!"
else
    echo "Русская локализация отсутствует"
    echo "Запуск установки"
    # в Debian не работает sudo apt install -y language-pack-ru
    sudo apt install -y locales
    sudo cp /etc/locale.gen /etc/locale.gen-$(date +%Y-%m-%d:%k:%M:%S)
    sudo sed -i '/ru_RU.UTF-8 UTF-8/s/# ru_RU.UTF-8 UTF-8/ru_RU.UTF-8 UTF-8/' /etc/locale.gen
    sudo locale-gen
fi


# Устанавливаем необходимые пакеты
sudo apt install -y git
sudo apt install -y apache2
sudo apt install -y apache2-bin
sudo apt install -y apache2-data
sudo apt install -y apache2-utils
sudo apt install -y libapache2-mod-php7.3
sudo apt install -y libcurl4 # ошибка не хочет устанавливать
sudo apt install -y php7.3-mysql
sudo apt install -y php7.3-common
sudo apt install -y php7.3-json
sudo apt install -y php7.3-opcache
sudo apt install -y php7.3-readline
sudo apt install -y php7.3-bz2
sudo apt install -y php7.3-cli
sudo apt install -y php7.3-curl
sudo apt install -y php7.3-gd
sudo apt install -y php7.3-mbstring
sudo apt install -y php7.3-xml
sudo apt install -y php7.3-bcmath
sudo apt install -y php-pear
sudo apt install -y php7.3-dev
sudo apt install -y libmcrypt-dev
sudo apt install -y gcc
sudo apt install -y make
sudo apt install -y autoconf
sudo apt install -y libc6-dev
sudo apt install -y pkg-config
sudo pecl update-channels
sudo pear update-channels
echo "\033[1;32m на ожидании ввода libmcrypt prefix - просто нажмите ENTER \033[0m"
# будет ожидать ввода libmcrypt prefix - просто нажать ENTER
sudo pecl install mcrypt-1.0.3
sudo apt install -y dbconfig-mysql
sudo apt install -y mariadb-common
sudo apt install -y mariadb-client-10.3
sudo apt install -y mariadb-server-10.3
#вместо sudo apt install -y phpmyadmin. Перед запуском скрипта желательно проверить
#последнюю версию пакета на https://www.phpmyadmin.net/files/ и поправить ссылку для wget
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip
sudo apt install unzip
unzip phpMyAdmin-5.0.4-all-languages.zip
sudo mv phpMyAdmin-5.0.4-all-languages /var/www/phpmyadmin
sudo chown -R www-data:www-data /var/www/phpmyadmin/
# Настраиваем PHP для Apache
echo "extension=mcrypt.so" | sudo tee -a /etc/php/7.3/apache2/conf.d/mcrypt.ini
sudo sed -i '/short_open_tag/s/Off/On/' /etc/php/7.3/apache2/php.ini
sudo sed -i '/error_reporting/s/~E_DEPRECATED & ~E_STRICT/~E_NOTICE/' /etc/php/7.3/apache2/php.ini
sudo sed -i '/max_execution_time/s/30/90/' /etc/php/7.3/apache2/php.ini
sudo sed -i '/max_input_time/s/60/180/' /etc/php/7.3/apache2/php.ini
sudo sed -i '/post_max_size/s/8/200/' /etc/php/7.3/apache2/php.ini
sudo sed -i '/upload_max_filesize/s/2/50/' /etc/php/7.3/apache2/php.ini
sudo sed -i '/max_file_uploads/s/20/150/' /etc/php/7.3/apache2/php.ini
# Настраиваем PHP для коммандной строки
sudo sed -i '/short_open_tag/s/Off/On/' /etc/php/7.3/cli/php.ini

# Создаем симлинк для PHPMyAdmin
sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
# Настраиваем Apache
sudo sed -i 's/None/All/g' /etc/apache2/apache2.conf
echo "ServerName localhost" | sudo tee -a /etc/apache2/apache2.conf
sudo sed -i 's/\/html//' /etc/apache2/sites-available/000-default.conf
# Включаем мод rewrite для Apache
sudo a2enmod rewrite
# Обновляем и перезапускаем службы
sudo systemctl daemon-reload
sudo apache2ctl restart
sudo service mysql restart

# Скачиваем систему MajorDoMo с GitHab
cd /usr/src
sudo git clone https://github.com/sergejey/majordomo.git
# Переносим систему в директорию WEB-сервера
sudo cp -rp /usr/src/majordomo/* /var/www
sudo cp -rp /usr/src/majordomo/.htaccess /var/www
# Создаем конфигурационный файл для системы
sudo cp /var/www/config.php.sample /var/www/config.php
# Назначаем права и владельца для директории с системой
sudo chown -R www-data:www-data /var/www
find /var/www/ -type f -exec sudo chmod 0666 {} \;
find /var/www/ -type d -exec sudo chmod 0777 {} \;
# Создаем описание сервиса для запуска основного цикла системы
sudo tee /etc/systemd/system/majordomo.service << EOF
[Unit]
Description=MajorDoMo
Requires=network.target mysql.service apache2.service
After=dhcpcd.service mysql.service apache2.service

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

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

[Install]
WantedBy=multi-user.target
EOF
# Отключаем режим "Strict mode" для MySQL (для избавления от наследственных ошибок)
sudo tee /etc/mysql/conf.d/disable_strict_mode.cnf << EOF
[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
EOF

# Добавляем главный цикл системы в автозагрузку
sudo systemctl enable majordomo

# Запрашиваем у пользователя пароль для MySQL
echo "\033[1;32m Настраиваем БД, введите пароль root MySQL \033[0m"
echo -n "Enter MySQL password > "
read pass

# Настраиваем подключение к БД для системы
sudo sed -i "/DB_PASSWORD/s/''/'$pass'/" /var/www/config.php
# Создаем БД db_terminal и импортируем содержимое из дистрибутива
mysql -u root << EOF
CREATE DATABASE db_terminal CHARACTER SET utf8 COLLATE utf8_general_ci;
USE db_terminal;
EOF

mysql -u root db_terminal < /var/www/db_terminal.sql

# Настраиваем доступ root к MariaDB и устанавливаем начальные настройки интерфейса MajorDoMo 
mysql -u root -p$pass << EOF
use mysql;
update user set password=PASSWORD("$pass") where User='root';
flush privileges;
update user set plugin='' where User='root';

use db_terminal;
update settings set VALUE='dark' where NAME='THEME';
#update settings set VALUE='Europe/Moscow' where NAME='SITE_TIMEZONE';
#update layouts set HIDDEN='1' where TITLE='<#LANG_WELCOME_GREETING#>';
#insert into settings (TITLE,NAME,TYPE,VALUE,DEFAULTVALUE) VALUES ('Language','SITE_LANGUAGE','text','ru','ru');
insert into settings (TITLE,NAME,TYPE,NOTES,VALUE,DEFAULTVALUE,DATA) VALUES ('Language','SITE_LANGUAGE','text','','ru','ru','');
insert into settings (TITLE,NAME,TYPE,NOTES,VALUE,DEFAULTVALUE,DATA) VALUES ('Time zone','SITE_TIMEZONE','text','','Europe/Moscow','Europe/Moscow','');
EOF

sudo service mysql restart

# Запускаем основной цикл
sudo systemctl start majordomo
#обновляем систему
wget -q http://localhost/modules/saverestore/update_iframe.php
wget -q http://localhost/modules/market/update_iframe.php?mode2=update_all
find . -name '*update_iframe*' -delete
# Система готова к работе, но желательно все же перезапустить железо коммандой sudo shutdown -r now
echo "\033[1;32m Базовая система установлена, продолжите установку sh rhvoice.sh \033[0m"
Upd. 22-11-2020. Части rhvoice.sh и vlc.sh я устанавливал пошагово, все команды отработали успешно, у меня звук завелся, но не до конца, ниже в топике мой пост об этой проблеме, позже объединю все в один скрипт протестирую на чистой системе и добавлю в топик. Пока добавил в архив к основному скрипты которые я протестировал.
Вложения
majordomo_deb10.rar
(4.86 КБ) 38 скачиваний
Последний раз редактировалось kostyanuch Вс ноя 22, 2020 8:35 am, всего редактировалось 2 раза.
За это сообщение автора kostyanuch поблагодарили (всего 3):
skysilver (Пн ноя 16, 2020 9:21 pm) • Divan (Вт ноя 17, 2020 2:12 am) • prmres (Чт ноя 19, 2020 8:37 pm)
Рейтинг: 3.66%
Аватара пользователя
prmres
Сообщения: 255
Зарегистрирован: Пт ноя 24, 2017 2:24 am
Откуда: оттуда
Благодарил (а): 69 раз
Поблагодарили: 68 раз

Re: Debian 10.х (PHP7.3) + MajorDoMo скрипт установки

Сообщение prmres » Чт ноя 19, 2020 8:41 pm

kostyanuch писал(а):
Пн ноя 16, 2020 9:04 pm
Остальные части rhvoice.sh и vlc.sh я устанавливал, без особого бубна, но гарантий дать не могу, что все пройдёт гладко, позже протестирую и выложу эти скрипты именно под Debian.
это будет здорово
когда я "пытался" допилить скрипты под Debian - именно со звуком у меня не заладилось
Алиса не хотела разговаривать нивкакую

если у вас все получится, и звук с Алисой будут фунциклировать, я буду просить вашего одобрения на включение вашего кода в "мои" скрипты для расширения "поддержтваемых" ОСей.
Не только лишь все!
kostyanuch
Сообщения: 9
Зарегистрирован: Пт сен 02, 2016 10:49 am
Благодарил (а): 0
Поблагодарили: 3 раза

Re: Debian 10.х (PHP7.3) + MajorDoMo скрипт установки

Сообщение kostyanuch » Вс ноя 22, 2020 2:47 am

Со звуком пока разбираюсь. Не пойму что работает, а что нет. При запуске из консоли команды

Код: Выделить всё

mplayer /var/www//cms/sounds/dingdong.mp3
- звук есть. При запуске в majordomo из браузера в панели управления команды:

Код: Выделить всё

say("Проба звука",2);
звук также имеется. А вот при запуске там же в панели управления в консоли команды:

Код: Выделить всё

say(timeNow());
ничего не происходит, но на главной странице в истории событий Алиса печатает текущее время.
Altsky
Сообщения: 8
Зарегистрирован: Вс май 24, 2020 9:24 am
Благодарил (а): 0
Поблагодарили: 1 раз

Re: Debian 10.х (PHP7.3) + MajorDoMo скрипт установки

Сообщение Altsky » Вс ноя 22, 2020 3:42 pm

попробуй так

Код: Выделить всё

say(timeNow(),5);
Armbian Bionic with Linux 5.7.15-sunxi на cubietruck
kostyanuch
Сообщения: 9
Зарегистрирован: Пт сен 02, 2016 10:49 am
Благодарил (а): 0
Поблагодарили: 3 раза

Re: Debian 10.х (PHP7.3) + MajorDoMo скрипт установки

Сообщение kostyanuch » Пн ноя 23, 2020 11:07 am

Altsky писал(а):
Вс ноя 22, 2020 3:42 pm
попробуй так

Код: Выделить всё

say(timeNow(),5);
Тоже самое, на главном экране Алиса печатает время, но ничего не говорит. Правда у меня debian на виртуалке под vmware на windows работает, но звук пробрасывается нормально, все звуки работают.
Ответить