Приветствую вас. Всех тех кто только начал изучать тему “Безумного дома” и всех тех кто уже давно в теме. В этой статье я хочу поделиться своим опытом установки и настройки сервера с самого начала на raspberry. Начиная с установки образа системы Debian и заканчивая входом на уже установленный но не настроенный сервер используя web интерфейс.
Для работы нам понадобится:
- Raspberry pi 3 b+
- Программа для записи образа Debian на SD карту скачать.
- Образ Debian без графического интерфейса! Скачать.
- Mikro-SD карта 10-го класса.
- И конечно же хоть какие то познания в ОС 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
- Так как мы только что установили MySQL, пароля у нас нет, он пустой. На этом шаге просто нажимаем Enter.
- Далее нам будет предложено изменить этот пароль. Нажимаем Y и вводим пароль (ЗАПИСЫВАЕМ ЕГО!!!)
- После ввода пароля нам будет предложено его повторить. Повторяем. Обратите внимание на то, что при вводе пароля на экране ничего не буде происходить, символов, звёздочек, подчёркиваний вы не уведите.
- Далее нам буде предложено удалить анонимного пользователя который был создан при установке MySQL в тестовых целях. Соглашаемся введя буку Y.
- Далее скрипт предложит запретить вход в систему удаленно.
Вводим букву Y. -
На следующем шаге скрипт предлагает удалить тестовую базу данных: Соглашаемся Y.
- Далее будет предложено сохранить внесенные в скрипт изменения:
Здесь вводим Y, после чего происходит выход из скрипта и возвращение к командной строке.
Вот и вся предварительная настройка MySQL.
Правим конфигурационный файл 50-server.cnf
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Найдем в этом файле строчку:
и поменяем ее на следующую
Перед строчкой, которая следует сразу же за только что поменянной, поставим знак решетки # (закомментируем), она должна принять следующий вид:
Сохраним изменения Ctrl+O, Enter, Ctrl+X, Enter.
Устанавливаем PhpMyAdmin:
Произошли изменения с момента написания статьи. оригинал изменений я нашёл вот тут Перед тем как прочитать статью по ссылке которую я позже красиво и понятно оформлю нужно в репозиторий добавить две ссылки. Делаем следующие операции:
Нужно внести следующие строки в конец файла:
После этого обновите репозиторий командой
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 в очередных статьях.