6. Основы CMS WordPress, установка и настройка СУБД MySQL
Настал черёд установки MySQL, предпоследнего элемента нашей LAMPы. Дело это непростое и кропотливое, так что налейте себе чашку ароматного кофе и приготовьтесь к длинной беседе.
В дальнейшем мы теперь всегда будем считать, что установленная нами в предыдущих статьях виртуальная машина с гостевой ОС Debian Linux 11 (bullseye) запущена и у вас открыт сеанс работы с ней по протоколу ssh, в котором запущен менеджер файлов Midnight Cоmmander (помним, что в любой момент можно с помощью комбинации клавиш {Ctrl, O} переключаться в режим командной строки и обратно).
Первое, что нам нужно будет сделать, это скачать последний стабильный дистрибутив (apt-репозиторий) СУБД MySQL с официального сайта проекта, зайдя на него по адресу: https://dev.mysql.com/downloads/repo/apt:
Обращаем внимание на то, что указано на этой странице касательно проверки целостности пакета и понимаем, что нам нужно установить пакет GnuPG, что и делаем в первую очередь с помощью команды: apt install gnupg
Скачать дистрибутив можно при помощи веб-браузера в Windows, но тогда он попадёт к вам на хост-машину, а потом его придётся перекидывать по протоколу SFTP на гостевую (например, при помощи очень полезной утилиты WinSCP), поэтому здесь мы применим более правильный в данной ситуации подход и скачаем файл прямо из командной строки Linux командой: wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.23-1_all.deb
Теперь полученный файл нужно будет распаковать при помощи команды: dpkg -i mysql-apt-config_0.8.23-1_all.deb
, запуск которой приводит к появлению следующего экрана:
где можно выбрать другой (кластерный) вариант установки сервера, но мы оставляем всё как есть, выбираем “ОК” и нажимаем “Enter”:
Результатом работы команды dpkg является появление нового файла mysql.list в локальном репозитории apt, расположееном в каталоге /etc/apt/sources.list
:
Всё, теперь можно устанавливать СУБД MySQL при помощи команды: apt install mysql-server
, предварительно запустив на всякий случай сначала: apt update
и apt upgrade
, если это окажется необходимым:
Заметим здесь, что мощнейшая современная утилита APT (Advanced Packaging Tool). пришедшая на смену apt-get, на самом деле как бы сама может скачивать и распаковывать пакеты Debian при помощи специальных ключей, и многие даже не знают, что делает она это обращаясь к тем же wget и dpkg. Наша цель показать вам как можно глубже анатомию процессов и думается, что на примере устанвоки MySQL нам это удастся.
Итак, запускаем установку и на предупреждение о том, готовы ли вы к тому, что этот процесс отнимет у вас 290 мегабайт на жёстком диске, конечно же отвечаем согласием “д”:
На вопрос о пароле для пользователя root придумываете и вводите сложный пароль и подтвержаете его, а на вопрос о методе аутентификации по умолчанию соглашаетесь с использованием плагина, работающего на основе более безопасного алгоритма хеширования, версии 2 (SHA-256), хотя WordPress и не поддерживает его. Позже мы объясним, как решать это вопрос.
Всё, если в процессе установки на чёрном экране не появилось никаких строк другого цвета, кроме белого, то на этом установка MySQL завершается и всё выгдядит относительно просто, однако дьявол, как говорится, в деталях, а именно в настройке MySQL, к которой и приступим.
Для начала проверим, всё ли действительно хорошо с нашей установкой:
Если у вас также, как и у нас, значит всё отлично, если нет, то смотрим журнал ошибок, находящийся в файле /var/log/mysql/error.log. Если там указана проблема, то ищем её решение в интернет.
Заметим, что при нормальном завершении установки журнал должен выглядеть следующим образом:
Итак, мы установили MySQL и убедились, что установилось всё корректно. Теперь нам будет нужен удобный инструмент, заменяющий (а точнее дополняющий) возможности стандартного клиента mysql, работающего из командной строки. В последних версиях СУБД в состав дистрибутива входит MySQL Workbench – мощная программа с графическим интерфейсом, пользоваться которой можно с любой машины, откуда доступен установленный нами сервер по нужному порту (по умолчанию 3306).
Давайте скачаем MySQL Workbench, скопируем скачанный файл mysql-workbench-community-8.0.30-winx64.msi
в наш каталог дистрибутивов D:\Distrib.dsk
после чего запустим и проведём установку по умолчанию в режиме complete (полная установка) на нашей host-машине. Результатом будет следующее окно, где будет сказано, что MySQL Workbench не смог найти ни одного запущенного MySQL-сервера и это правильно, так как по умолчанию к серверу есть доступ только с той машины, на которой он установлен и, кроме того, к нему нельзя соединяться удалённо при помощи логина root:
Первое, что нам нужно будет сделать для того, чтобы преодолеть данные препятствия (а они необходимы для улучшения безопасности), так это открыть доступ к серверу с хост-машины, а можно и вообще с вашей внутренней сети 192.168.1/24, если вы уверены в том, что в ней не будут работать злоумышленники (здесь, в случае домашней сети, речь о ваших домочадцах, а в случае рабочей – о ваших сотрудниках). Для этого с помощью Midnight Commander находим на сервере файл /etc/mysql/mysql.conf.d/mysqld.cnf, нажимаем F4 для вызова редактора, добавляем в конец файла строку: bind-address=0.0.0.0
и сохраняем изменения:
Второе, что нужно будет сделать – это завести с помощью утилиты командной строки другой логин, который не такой очевидный, как root, и дать ему все права на управление СУБД. Делается это следующей последовательностью действий:
1) запускаем команду linux shell: mysql --user=root --password
, что позволяет зайти нам на сервер под логином root и получить доступ к выполнению команд MySQL;
2) запускаем уже sql-команду : create user 'ваш-логин'@'%' identified by 'ваш-пароль';
3) проверяем, появился ли пользователь sql-командой: SELECT User, Host FROM mysql.user;
4) даём все права на все базы sql-командой: grant all privileges on *.* to 'ваш-логин'@'%' with grant option;
5) инициируем права sql-командой: flush privileges;
6) возвращаемся в linux-shell командой exit
;
Отметим, что излагаемый здесь материал подразумевает, что вы находитесь в DMZ (то есть к вам с внешней сети невозможно зайти по любому порту, кроме 80) и вам нет смысла устанавливать и настраивать Firewall (Брэндмауэр), однако, если он у вас всё же стоит, то нужно будет обязательно открыть порт 3306.
Теперь перезапускаем MySQL-сервер командой: service mysql restart
и возвращаемся к окну MySQL Workbench, где нужно будет выбрать меню Database-Connect to Database или сразу нажать комбинацию клавиш {Ctrl,U}:
В открывшемся окне нужно ввести правильно логин, который вы создавали вышеприведённой sql-командой create user и адрес виртуальной машины (у нас 192.168.1.11), а далее в следующем окне пароль пользователя, и если всё, что описано выше, было сделано верно, то вы успешно соединитесь с СУБД и получите основное рабочее окно MySQL Workbench:
Здесь можно видеть, что у нас ещё нет созданных баз данных (схем), но если нажать на кнопку “Users and Privileges”, то появится список пользователей, среди которых будут созданные нами и автоматически созданные системой. Для нас тут будет представлять интерес разница между пользователем root и пользователем, под именем которого мы соединились с MySQL:
Как видите, у пользователя root разрешение только на вход с localhost, а у созданного вами пользователя %, что означает отовсюду.
Кроме того, когда мы будем создавать пользователей для конкретных баз данных, то будем выбирать Authentification Type: “Standard”, поскольку, как уже говорилось, WordPress не поддерживает SHA 2.
Обратим ещё ваше внимание но то, что если нажать на кнопку “Server Status”, то можно увидеть подробную информацию о состоянии сервера MySQL, что бывает очень полезным.
Также заметим, что MySQL Workbench – достаточно новая программа-клиент MySQL и пока ещё сыровата, что проявляется в разного рода “странностях” при работе с ней. Если у вас такое произошло, произведите обновление вида или пересоединитесь. Коме того, рекомендуется постоянно обновлять это приложение. В любом случае, не забывайте, что у вас всегда есть в распоряжении инструменты командной строки.
На этом мы заканчиваем статью об установке и настройке СУБД MySQL, но к материалу, изложенному здесь будем ещё не раз возвращаьться, когда речь пойдёт об установке конкретных сайтов, построенных на CMS WordPress.
4. Основы CMS WordPress, ставим гостевую ОС
Итак, настала пора перейти к нашей практической цели: установке WordPress, а, как мы писали в первой статье, первым шагом к достижению этой цели является установка Linux.
Мы будем устанавливать Debian Linux 11 с кодовым именем bull’s-eye (яблочко). Почему именно эту версию?
Во-первых это самый последний на момент написания статьи устойчивый (стабильный, проверенный) свободно-распространяемый официальный дистрибутив Debian Linux.
Во-вторых Debian Linux – операционная система, проверенная временем, обладающая самым мощным набором пакетов программ и, в силу всего этого, наиболее подходящая для нашей цели, однако это не значит, что вы обязательно должны ставить именно её – если у вас есть опыт и уверенность, то можете ставить любую Unix-подобную ОС, главное чтобы вы смогли поднять на ней web-сервер, php и MySQL. Можно даже установить Windows, поднять MySQL на нём и заставить работать PHP c Internet Information Services, причём автор имеет опыт в этом направлении и именно поэтому предлагает не искать приключений, а пойти по первому пути.
Таким образом, начинаем действовать:
- заходим по ссылке;
- находим кнопку скачивания нужного нам дистрибутива для архитектуры AMD64:
- нажатие на неё приведёт к скачиванию необходимого iso-образа дистрибутива:
- находим этот файл в каталоге “Загрузки” и переносим его в ваш каталог дистрибутивов, например, как мы в каталог (директорию, папку) “D:\Distrib.dsk”;
- запускаем Диспетчер Hyper-V описанным в предыдущей статье способом: нажатием комбинации клавиш {Windows, R}, набором virtmgmt.msc и нажатием Enter;
- в появившемся окне Диспетчер Hyper-V (Hyper-V Manager в английском варианте) видим установленную нами в предыдущей статье виртуальную машину с именем WordPress-01 и любым способом выбираем пункт меню “Параметры” этой виртуальной машины (например, через контекстное меню, как на снимке ниже, или через меню “Действия” или правую вкладку “Действия”:
- здесь нам нужно будет установить DVD-привод, в который мы будем “вставлять” скачанный образ дистрибутивного DVD-диска, для чего нажимаем кнопку “Добавить”:
- выбираем DVD-дисковод и снова жмём на “Добавить”
- далее указываем полный путь к скачанному нами файлу образа устанавливаемой операционной системы Debian 11 либо найдя и выбрав его с помощью кнопки “Обзор”, либо просто набрав D:\Distrib.dsk\debian-11.4.0-amd64-netinst.iso
- теперь определяем порядок просмотра устройств для загрузки – нам нужно, чтобы DVD-дисковод был первым:
- следующим крайне важным моментом является отключение режима безопасной загрузки, ибо иначе у вас не получится установить Linux, так как он её не поддерживает (снимаем птичку):
- всё, подготовительный этап на этом завершён, теперь возвращаемся в меню Диспетчер Hyper-V, выбираем нашу виртуальную машину и сначала запускаем её кнопкой “Пуск”,
а затем подключаемся к ней кнопкой “Подключить”, в результате чего у вас должно появиться новое окно с запущенной установкой ОС Debian 11: - если оно не появилось, то проверьте, выбрали ли вы верный порядок просмотра устройств при загрузке виртуальной машины, первым должен быть DVD-привод со смонтированным iso-образом дистрибутива Debian GNU/Linux 11, после чего инициируйте перезагрузку симулируя нажатие комбинации (Ctrl, Alt, Del} с помощью меню “Действие”:
- Итак, уже можно установить ОС, выбрав пункт меню “Install”, однако если вы хотите иметь возможность выбрать именно такую конфигурацию, которая вам нужна, то всегда выбирайте “Advanced options …”, а затем “… Expert install”, что приведёт вас к большому числу промежуточных меню, большая часть из которых интуитивно понятна и позволяет вам специфицировать многие параметры системы, но некоторые меню требуют пояснения, чем мы сейчас и займёмся, предварительно обратив ваше внимание на то, что для перехода от поля к полю здесь нужно будет использовать клавишу табуляции, а для подтверждения выбора клавишу “Enter”:
- пункт “Загрузка компонентов с установочного носителя” вызовет следующее новое окно:
где нам не нужно ничего выбирать, а просто нажать на Enter, перейдя на кнопку “Продолжить” при помощи клавиши табуляции; - пункт “Настройка сети”
предполагает запрос на разрешение автоматически назначить ip-адрес через dhcp, на что нужно ответить отказом, после чего последуют обычные вопросы об ip-адресе, маске сети, шлюзе и dns-сервере, на которые мы в нашем случае внешнего виртуального коммутатора должны отвечать таким образом, как если бы к тому же коммутатору, к которому подключена ваша физическая машина с основной операционной системой, была бы подключена ещё одна машина, например стандартным ответом будет следующий:- ip-адрес: 192.168.1.11
- маска подсети: 255.255.255.0
- шлюз: 192.168.1.1
- dns-серверы: 192.168.1.1
- настройка сети заканчивается просьбой ввести имя компьютера (у нас WordPress-1):
и имя домена (имеется ввиду dns-имя), в который вы хотите включить эту машину - далее последует группа вопросов, связанных с пунктом меню “Настройка учётных записей пользователей и паролей”, где мы подтверждаем использование теневых паролей, запрещаем вход в систему под логином “root”, придумываем и вводим логин и пароль;
- настройку времени делаем так, как предлагает система, то есть подтверждаем использование NTP и выбираем ваш часовой пояс;
- далее остановимся на разметке дисков, где выбираем второй вариант (шифрование нам ни к чему, так как мы не собираемся хранить файлы с документами в системе)
а, в новом окне выбираем для простоты “Все файлы в одном разделе” - теперь нужно будет задать имя (например WordPress-1-Volumes) и размер (max) группы томов:
- на следующий важный вопрос отвечаем утвердительно, несмотря на предупреждение:подтверждаем запись изменений на диск и переходим к этапу установки базовой системы и пакетов программ, где соглашаемся со всеми предложениями системы, то есть по сути всё время жмём на Enter, кроме экрана выбора ПО, где проставляем птички следующим образом:
- остался последний шаг, установка загрузчика, на что мы соглашаемся:
после чего может последовать вопрос, на который важно ответить утвердительно, иначе система может не загрузиться; - всё, после этого будет ещё всего два экрана, один информационный:
и один, требующий действия, суть которого ясна из контекста: - Если всё, что написано выше было сделано верно, то переходим в окно “Параметры” Диспетчера Hyper-V и вновь смотрим на верный порядок загрузки, где микропрограмма загрузки EFI находится в отдельном файле и он указан первым для просмотра (если у вас не так, то система может не загрузиться),
после чего инициируем запуск гостевой операционной системы кнопкой “Пуск” и соединяемся с ней кнопкой “Подключить” из вкладки “Действия” Диспетчера Hyper-V, и если всё было сделано верно, то должно появиться новое окно со следующим содержимым:
которое означает не что иное, как успешное завершение процесса установки Debian GNU/Linux в минимально необходимой нам конфигурации.
- пункт “Загрузка компонентов с установочного носителя” вызовет следующее новое окно: