Установка сервера MajorDomo на Raspberry-PI с чистого листа.

Наш телеграмм канал

Приветствую вас. Всех тех кто только начал изучать тему “Безумного дома” и всех тех кто уже давно в теме. В этой статье я хочу поделиться своим опытом установки и настройки сервера с самого начала на raspberry. Начиная с установки образа системы Debian и заканчивая входом на уже установленный но не настроенный сервер используя web интерфейс.

Для работы нам понадобится:

  1. Raspberry pi 3 b+
  2. Программа для записи образа  Debian на SD карту скачать.
  3. Образ Debian без графического интерфейса! Скачать.
  4. Mikro-SD карта 10-го класса.
  5. И конечно же хоть какие то познания в ОС Linux.

Первый запуск, настройка debian на вашей малинке.

Вставляем нашу Mikro-SD карту в компьютер, стартуем программу Etcher. Нажимаем кнопку Select image и выбираем наш образ debian который вы скачали по ссылке выше. Далее нажимаем кнопку Select drive  и выбираем нашу Mikro-SD карту. Ну и в конце нажимаем кнопку Flash! Начнётся процесс форматирования и после запись образа debian на вашу карту памяти.

Ну вот образ записан теперь приступаем к настройке raspberry. Вставляем карту памяти в малинку, подключаем её к монитору или телевизору используя HDMA кабель. Подключаем клавиатуру и подаем питание на наш одноплатник. На экране вы увидите как будет загружаться ОС debian. После некоторого времени нам буде предложено ввести логин и пароль.

Login – pi

Pasword- raspberry

Далее давайте договоримся о следующем синтаксисе. Всё что будет написано вот с таким форматированием

sudo raspi-config

это команды, которые нужно вводит в окне терминала удалённого подключения к нашей Raspberri-PI. Текст с таким форматированием 

будет означать работу в редакторе nano. Любое другое форматирование – это оформление данной статьи. Ну вот и договорились 🙂 .

И так, сначала нам необходимо настроить удалённое подключение по SSH. Для этого вводим логин и пароль в нашей debian и пишем следующее

sudo raspi-config

Попадаем в программу конфигурации.

выбираем стрелками пункт меню номер 3.

нажимаем enter и попадаем в другое окно. В этом окне выбираем пункт меню P2 и жмём enter.

Попадаем в окно активации SSH.

Стрелками выбираем YES и жмём enter.

Теперь увеличим основной раздел на весь объем карты памяти. Выбираем стрелками пункт меню номер 6. Жмём enter.

попадаем в следующее окно где мы выбираем пункт меню А1.

Клавишей Tab выбираем кнопку Select. Жмём enter.

Далее вводим команду перезагрузки нашей малинки.

sudo reboot

Вот и всёс настройкой удалённого подключения по SSH. Теперь нам как то нужно подключиться удалённо к нашей малине. Для этого нам нужно знать её IP адресс. Вводим команду:

ifconfig eth0

В появившейся информации мы получаем наш IP.

Теперь переходим на ваш PC. Малинку можно смело отключать от внешнего монитора/телевизора. Я использую ОС linux вы можете использовать всё, что вам удобно. Для Windows нужно установить программу PuTTY. Для linux нужен только терминал который уже по умолчанию находиться в системе. Не зависимо от того, что вы будете использовать всё написаное далее ни чем друг от друга не отличаеться.

Настройка статического IP адреса

sudo nano /etc/dhcpcd.conf

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

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

Перегружаемся:

sudo reboot

установка и настройка Web-сервера

Обновляем программные пакеты до актуального состояния.

sudo apt update && sudo apt upgrade

установку и настройку Web-сервера будем делать на базе Apache. Так же нужно установить систему управления базами данных — MySQL.
Для установки Apache, в командную строку консоли вводим команду:

sudo apt-get install apache2 apache2-utils -y

запретим вывод версии Apache. Для этого откроем в редакторе Nano файл по пути:

sudo nano /etc/apache2/conf-enabled/security.conf

находим:

меняем на:

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

Далее вносим изменения в его конфигурационный файл.

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

Я просто удалил все записи из конфигурационного файла, и вставил в него следующее:

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

Изменим следующий конфигурационный файл:

sudo nano /etc/apache2/apache2.conf

В самом его конце добавим вот такую строку:

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

Перезагрузим Apache:

sudo apache2ctl restart

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

Для установки языка программирования PHP вводим следующую команду:

sudo apt-get install php php-cgi php-cli php-pear php-mysql php-mbstring php-xml -y

Устанавливаем CURL и его библиотеки:

sudo apt-get install curl libcurl4 libcurl3-dev php-curl -y

Устанавливаем PHP-модуль для веб-сервера Apache 2:

sudo apt-get install libapache2-mod-php -y

Включаем конфигурацию php7.3-cgi следующей командой:

sudo a2enconf php7.3-cgi

Перезапускаем сервис Apache:

sudo service apache2 reload

В редакторе nano создаем файл index.php в папке /var/www/html/

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

Вводим в созданный файл следующие строки:

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

В этой же папке у нас находится файл index.html. Удалим его командой:

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

Включаем работу коротким тегом <? /?> (для последних версий Apache). Для этого редактируем файл php.ini в папке /etc/php/7.3/apache2/

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

находим строчку:

и меняем на:

Если такой строчки нет, то просто вставляем в конце файла:

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

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

Ууууускоряемся:

sudo apt-get install mariadb-server-10.0 mariadb-client-10.0 -y

Далее необходимо сделать первоначальную конфигурацию MySQL сервера. К этой процедуре нужно отнестись более внимательно и обязательно нужно записать данные которые вы сейчас будете вводить.
Вводим в командную строку следующее:

sudo mysql_secure_installation

  1. Так как мы только что установили MySQL, пароля у нас нет, он пустой. На этом шаге просто нажимаем Enter.
  2. Далее нам будет предложено изменить этот пароль. Нажимаем Y и вводим пароль (ЗАПИСЫВАЕМ ЕГО!!!)
  3. После ввода пароля нам будет предложено его повторить. Повторяем. Обратите внимание на то, что при вводе пароля на экране ничего не буде происходить, символов, звёздочек, подчёркиваний вы не уведите.
  4. Далее нам буде предложено удалить анонимного пользователя который был создан при установке MySQL в тестовых целях. Соглашаемся введя буку Y.
  5. Далее скрипт предложит запретить вход в систему удаленно.
    Вводим букву Y.
  6. На следующем шаге скрипт предлагает удалить тестовую базу данных: Соглашаемся Y.

  7. Далее будет предложено сохранить внесенные в скрипт изменения:
    Здесь вводим Y, после чего происходит выход из скрипта и возвращение к командной строке.

Вот и вся предварительная настройка MySQL.

Правим конфигурационный файл 50-server.cnf

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Найдем в этом файле строчку:

и поменяем ее на следующую

Перед строчкой, которая следует сразу же за только что поменянной, поставим знак решетки # (закомментируем), она должна принять следующий вид:

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

Устанавливаем PhpMyAdmin:

Произошли изменения с момента написания статьи. оригинал изменений я нашёл вот тут Перед тем как прочитать статью по ссылке которую я позже красиво и понятно оформлю нужно в репозиторий добавить две ссылки. Делаем следующие операции:

sudo nano /etc/apt/sources.list
 

Нужно внести следующие строки в конец файла:

После этого обновите репозиторий командой

apt-get update
 
Далее в браузере проверьте рпаботу PhpMyAdmin. Введите адресс
 
 
Введите логин “root” и пароль который вы установили при установке MYSQL.
 
Если у вас появилась ошибка #1698 — Access denied for user ‘root’@’localhost’ тогда вам
 
нужно сделать следующее:
 
Для получения доступа к базе данных MySQL/MariaDB обычному пользователю без
 
использования sudo привилегий, зайдите в приглашение командной строки MySQL

sudo mysql

и запустите следующие команды:

Затем перезапустите службу MySQL и попробуйте войти в базу данных без sudo, как показано ниже.

sudo systemctl restart mysql.service

теперь проверяем сначала работу phpmyadmin. localhost/phpmyadmin

Затем нужно обновить все пакеты в системе:

sudo apt full-upgrade

PhpMyAdmin – это веб-приложение, которое позволяет через браузер осуществлять администрирование сервера MySQL. Устанавливается оно командой:

sudo apt-get install phpmyadmin php-mbstring php-gettext -y

В процессе установки нам нужно будет ответить на ряд вопросов. Сначала нам будет предложено выбрать версию web-сервера:

Поскольку у нас установлен Apache, то выбираем пункт apache2, нажимаем пробел (чтобы в выбранном пункте отобразилась звездочка), и нажимаем Enter.

Далее нам будет предложено сконфигурировать базы данных при помощи “dbconfig-common”: Здесь мы выбираем Нет!

Теперь нам нужно разрешить пользователю root подключаться к MySQL без sudo. Для этого нужно перейти в командную строку MySQL из под root:

sudo mysql -u root -p mysql

После ввода этой команды у нас будет запрошен пароль. Вводим пароль, который был создан при установке MySQL, и попадаем в командную строку MySQL.
В командной строке последовательно вводим следующие команды:

update user set plugin=” where user=’root’;

flush privileges;

exit

После ввода последней команды происходит выход из командной строки MySQL.

Далее нам нужно подправить конфигурационный файл apache.conf

sudo nano /etc/phpmyadmin/apache.conf

В открывшемся файле, после строчки DirectoryIndex index.php вставляем строчку:

В этой строчке ip 127.0.0.1 оставляем неизменным, а 192.168.1.0 меняем на ip вашей сети. Адресс моей сети 192.168.1.0

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

Включаем mod_rewrite:

mod_rewrite – один из самых часто используемых модулей веб-сервера Apache. Этот модуль предоставляет гибкий и мощный способ манипулирования URL-адресами, используя неограниченное количество правил. Включается он следующей командой:

sudo a2enmod rewrite

Перезагрузим Apache:

sudo apache2ctl restart

Настройка PHP:

Вносим одинаковые изменения в два конфигурационных файла. Сначала мы внесем изменения в файл находящийся по пути /etc/php/7.3/apache2/php.ini

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

ищем в этом файле строку error_reporting, и приводим ее к следующему виду:

Так же меняем:

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

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

Внесем точно такие же изменения в конфигурационный файл, находящийся по пути /etc/php/7.3/cli/php.ini

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

Вносим изменения которые находяться выше.

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

Для применения всех изменений нам снова нужно перезапустить Apache

sudo /etc/init.d/apache2 restart

На этом установку и настройку Web-сервера можно считать законченной.

Установка MajorDoMo

Создадим папку в которой будет находиться наш MajorDoMo.

sudo mkdir /home/majordomo

переходим в эту папку:

cd /home/majordomo

Скачиваем дистрибутив MajorDoMo c githab.

sudo wget https://github.com/sergejey/majordomo/archive/master.zip

распакуем дистрибутив командой:

sudo unzip master.zip

Далее переносим распакованную систему MajorDomo в директорию Web-сервера командой:

sudo cp -rp /home/majordomo/majordomo-master/* /var/www

Теперь надо скопировать и скрытый файл .htaccess. Указываем его явно:

sudo cp -rp /home/majordomo/majordomo-master/.htaccess /var/www

Далее настраиваем права пользователей на файлы и директори.

Файлам устанавливаем права 0644

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

Директориям даём права 0755

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

Проверяем как распределились права:

ls -lh /var/www

должно быть так:

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

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

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

sudo usermod -a -G audio www-data

Проверить, что пользователь www-data появился в группе audio можно командой:

cat /etc/group | grep audio

Создание базы данных.

Открывем любой браузер и вводим IP адрес нашего сервера следующего формата http://IP_адрес_сервера/phpmyadmin где IP_адрес_сервера – это ip адрес вашей малинки. В моём случае 192.168.1.130
попадаем вот на такую форму ввода. Так как я уже создал базу данных то скриншоты будут немного отличаться от тех которые будете видеть вы на своих экранах. Имейте это в виду при дальнейшем ознакомлении со статьёй.

Вводим пользователя root пароль тот (rootpsw), который мы создали и запомнили при установке MySQL. Нажимаем кнопку Вперед, и попадаем в панель управления PhpMyAdmin: Теперь нам нужно создать базу данных db_terminal. Чтобы ее создать, нажимаем “Создать БД” в левой части окна. Затем, в поле Имя базы данных вводим db_terminal и нажимаем кнопку Создать:

После нажатия кнопки Создать, мы переходим в созданную нами базу данных db_terminal.

В верхней части окна ищем кнопку Импорт, и нажимаем её.

И вот тут возникнут проблеммы. БОЛЬШИЕ ПРОБЛЕММЫ ( я так думал в первые сутки). Но решаються они довольно таки просто. От вас требуется максимум внимания и концентрации. Но только на этом этапе. И так о каких же проблеммах я говорю, об ошибках которые посыпяться на вас в огромном количестве в виде так называемой “красной простыни” Я не могу точно передать суть ошибки но вы должны посмотреть на строчку примерно вот такого вида:

Вас должно интересовать номер строки который указан после знака #. В нашем случае это строка с номером #601 (у меня была строка с номером 553). Номер строки с указанием на ошибку может быть разный. Наша задача открыть файл в редакторе nano и найти там нужную строчку. И так поехали исправлять:

sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php

Нажимаем комбинацию клавиш Ctrl+W (это поиск по файлу) вставляем в строку поиска вот это:

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

Обратите внимание на скобки.

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

И так первый файл мы изменили. Теперь нам нужно измень ещё один файл.

sudo nano /usr/share/phpmyadmin/libraries/plugin_interface.lib.php

Точно так же нажимаем комбинацию клавиш Ctrl+W вставляем в строку поиска вот это:

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

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

Вот и всё. Ах да, для чего же нам нудно было знать номер строки указанной в ошибке. Да просто в ваших файлах может быть добавлен какй то пробел лишний или что то в этом роже и поиском который я описал по комбинации клавиш Ctrl+W вы простно не смогли бы найти нужную строчку. А так можно открыть редактируемый файт в любом рекстовом редакторе кте отображаеться номер строки, найти визуально эту строчку и потом выше описаным способой сделать изменения.

Ну да ладно, продолжаем далее настраивать наш сервер. На чём это я остановился…. ааа… В верхней части окна ищем кнопку Импорт, и нажимаем её.

Теперь нам нужен сам файл базы данных db_terminal.sql, из которого мы импортируем все данные. Скачаем дистрибудив MajorDomo на свой компьютер и разархивируем его. Нажимаем кнопку Обзор: и выбираем из распакованного архива вот этот файл db_terminal.sql. Перематываем это окно в самый низ, и нажимаем кнопку Вперед. Всё, наша база данных заполнилась нужными таблицами.

Правка основного конфигурационного файла MajorDoMo

Переходим в терминал или PuTTY и поехали далее:

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

Далее пользователя www-data нужно сделать владельцем конфигурационного файла config.php

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

файл config.php в редакторе Nano

sudo nano /var/www/config.php

Прописываем имя пользователя и пароль в нужных строчках:

 

DB_USER – это пользователь

DB_PASSWORD – пароль

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

Основной цикл

Создадим файл описание сервиса для запуска основного цикла системы.

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

Заполним его вот этим кодом:

Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.

Отключаем режим “Strict mode” для MySQL. Для этого создадим конфигурационный файл:

sudo nano /etc/mysql/conf.d/disable_strict_mode.cnf

Заполняем его этими двумя строками:

Добавляем главный цикл в автозагрузку.

sudo systemctl enable majordomo

Запускаем основной цикл системы:

sudo systemctl start majordomo

Перезапускаем наш Raspberry:

sudo reboot

Переключаемся на наш брацзер и вводим адрес нашего сервера “Безумного дома”. Радуемся и читаем в моих статьях как же теперь из этого сервера сделать классные вещи!.

Всем удачи в настройке и конфигурировании ваших серверов. Не забудте читать мои статьи о настройке системы MajorDomo в очередных статьях.

Добавить комментарий