9. Основы CMS WordPress, устанавливаем саму систему
Наконец то мы добрались непосредственно до вопроса установки самой CMS WordPress. Всё, что мы излагали до этого, предназначалось для того, чтобы подготовить для этой установки необходимые условия.
Первое, что нужно будет сделать на этом пути, так это скачать дистрибутив WordPress с официального сайта и положить его в корень созданного нами в предыдущей статье сайта http://site1.sysadmin.bz. Самым грамотным способом это реализовать, будет, также как и для случая MySQL, использование команды sudo wget -c https://wordpress.org/latest.zip
в Linux Shell:
Важно заметить, что действуя таким образом мы сразу получаем последнюю версию zip-архива с дистрибутивом в корневом каталоге нашего сайта. Далее его нужно будет распаковать. Распаковку архива делаем командой: sudo unzip latest.zip
Здесь следует заметить, что тяжёлые архивы всегда желательно распаковывать сразу именно в то место, где они должны лежать, ибо иначе перемещение их в распакованном виде может занять очень много времени даже в рамках файловых систем Linux, и уж тем более это касается передачи файлов через сеть по протоколу sftp: то есть сначала копируем архив, а потом его распаковываем на месте, а не наоборот – распаковываем, а потом копируем.
После распаковки в корневом каталоге сайта появится подкаталог WordPress. Наша следующая задача вытащить всю внутреннюю структуру этого подкаталога в корень сайта, а сам подкаталог (папку, директорию, кто как называет) WordPress после этого удалить. Сделать это лучше всего при помощи Midnight Commander, выделив всё содержимое папки WordPress (клавишей “+” на цифровой панели) и перенеся его при помощи клавиши F6:
Теперь можно удалить пустой каталог WordPress, а также исходный архив latest.zip и файл index.html, который мы создавали в предыдущей статье под номером 8. Сделать это можно как с помощью Midnight Commander, так и с помощью последовательного выполнения двух команд:
rm -d wordpress
rm -f latest.zip index.html
Таким образом, первый шаг мы сделали и у нас в корне нашего сайта развёрнута структура дистрибутива WordPress.
Теперь, на втором шаге нужно немного повозиться с правами к файлам дистрибутива, ибо иначе либо система будет слишком уязвима, либо наоборот, прав будет не хватать. Сначала надо сделать владельцем всех файлов дистрибутива пользователя www-data и группу с тем же именем. Далее, в соответствии с трёхзвенной структурой прав UNIX-подобных систем нам нужно дать полные права владельцу и группе на все каталоги (папки, директории) дистрибутива, но лишить права записи в них всех остальных пользователей (код в нотации триады rwx: 755). Что касается файлов, то для пользователя и группы www-data нужно дать все права, кроме права выполнения, а для всех остальных только право чтения (код 644). Самый важный и уязвимый файл wp-config.php не должен содержать вообще никаких прав для посторонних (т.е. никто, кроме пользователей группы root и www-data, а также перечисленных в файле /etc/sudoers не должен иметь даже право читать его). Делается это следующей последовательностью команд:
sudo chown -R www-data:www-data ./
sudo find . -type d -exec chmod 755 {} +
sudo find . -type f -exec chmod 644 {} +
sudo mv wp-config-sample.php wp-config.php
sudo chmod 640 wp-config.php
Пришло время заняться третьим шагом, после чего можно будет запускать установку системы через www-браузер. Шаг большой и сложный. Конечная цель – отредактировать файл wp-config.php в соответствие с нужными нам параметрами.
Если открыть этот файл, то можно увидеть, что в первую очередь надо задать ряд параметров базы данных сайта, ибо без этого установка не начнётся:
- адрес сервера, где находится база данных (у нас она тут же, поэтому оставляем localhost, но нужно понимать, и это объяснялось в статье по MySQL, что это не обязательно и можно указать любой ip-адрес, где находится ваша СУБД и соответствующий порт, если он отличается от 3306);
- имя базы данных;
- имя пользователя;
- пароль пользователя;
- кодировка базы данных;
- правила сопоставления (collation)
Для того, чтобы понять дальнейший материал вам лучше перечитать статью 6 о MySQL. Нашей локальной задачей будет создание базы данных site-1.sysadmin.bz (название может быть любое, но для избежания путаницы лучше называть базу данных и пользователя точно так же, как и сам сайт, для которого они предназначены), заведение специального пользователя базы данных (что крайне желательно, но не обязательно, так как можно использовать и созданного нами в статье 6 универсального пользователя), предоставление этому пользователю всех прав на созданную базу данных (если мы будем использовать не специального пользователя, то у него будет доступ ко многим базам данных, что ухудшает безопасность).
Итак, приступим к реализации нашего плана. Запускаем MySQL Workbench и соединяемся с СУБД. Выбираем среднюю вкладку “Schemas” в левом столбце, жмём на правую кнопку мыши, после чего выбираем левой кнопкой из контекстного меню пункт “Create Schema”:
В появившемся новом окне вводим имя базы данных, кодироку символов (Charset) и правила сопоставления (collation) оставляем по умолчанию, далее жмём на кнопку “Apply (Применить)”:
Результатом этих действий будет генерация простейшего sql-скрипта, который можно было бы написать самому. но нам здесь важно было показать, как это делается при помощи MySQL Workbench, ибо далее будут действия, приводящие к скриптам посложней. В данном случае в появившемся новом окне нам остаётся согласиться с выполнением скрипта:
После этого создастся схема база данных с заданным нами именем site1-sysadmin.bz. Далее нам лучше тут же ответить себе на вопрос о кодировке и сопоставлении. Для этого нажимаем на кнопку со второй пиктограммой напротив имени нашей схемы базы данных:
и видим в соответствующем поле, что по умолчанию у нас база данных создалась с кодировкой utf8mb4, а правило сопоставления символов в ней имеет код utf8mb4_0900_ai_ci. Эту информацию можно было бы получить и при помощи sql-запроса:
Полученную информацию мы будем вводить в соответствующее место файла wp-config.php. Напомним, что для того, чтобы приступить к этому нам осталось ещё получить имя пользователя базы данных и его пароль, а для этого надо его создать, к чему и приступим. Переходим на вкладку “Administration” в левом столбце MySQL Workbench и выбираем меню “Users and Privileges”, где нажимаем кнопку “Add Account”:
Здесь в поле “Login name” заменяем “newuser” на “site-1.sysadmin.bz”, в поле “Authentication Type” оставляем “Standard” (ещё раз отметим, что это очень важно для WordPress), в поле “Limit to Hosts Matching” – localhost, а в полях Password и “Confirm Password” вводим одинаковый достаточно сложный пароль. Остаётся нажать кнопку “Apply” и пользователь создастся.
В этом месте возможны проблемы. Если вы используете не MySQL, а MariaDB, то при запуске
MySQL Workbench вы получите вот такое
И проявляется она, эта несовместимость, в частности в процедуре создания пользователя. Поэтому этот момент для MariaDB нужно будет осуществить с командной строки самой MariaDB (предварительно, естественно, её активировав, запустив в linux shell команду: mariadb
):
CREATE USER 'site-1.sysadmin.bz'@'localhost' IDENTIFIED BY 'ваш пароль';
В остальном всё одинаково с MySQL.
Вернёмся к основному повествованию. Далее нам останется дать права нашему новому пользователю на базу данных. Делается это следующим образом. Выбираем вкладку “Schema Privileges”, далее жмём копку “Add Entry”, выбираем переключа́тель “Selected Schema”, и в ниспадающем меню находим имя нашей базы:
Нам остаётся нажать на кнопку “OK”, стать курсором на добавленную базу данных и нажать внизу справа на кнопку “Select All” (при этом выделятся все права, кроме GRANT OPTION, что нам и надо):
Всё, нажимаем на “Apply” и переходим к редактированию файла wp-config.php, для чего закрываем MySQL WorkBench (если мы всё сделали верно, то он нам больше не понадобится), открываем наш Midnight Commander, подводим курсор к файлу и нажимаем F4:
Здесь заменяем все параметры ровно так, как указано на нашем снимке с экрана и сохраняем файл (в случае редактора GNU nano жмём комбинацию клавиш {Ctrl,O} и выходим из редакторв комбинацией {Ctrl, X}). На этом всё. и если вы не совершили ни одной ошибки, то установка WordPress произойдёт без единого предупреждения практически в режиме “silent setup”.
Запуск установки осуществляется с web-браузера открыванием сайта по ссылке http://site-1.sysadmin.bz (так как мы удалили файл index.html, то отрабатывать теперь будет index.php).
Поля следующего экрана заполняем в соответствии с нашими договорённостями, задаём сложный логин и пароль администратору системы и нажимаеми на кнопку “Установить WordPress”:
Всё, если ваша виртуальная машина не слишком медленная, то через несколько секунд (в любом случае не больше чем через минуту) вы получите такой завершающий процедуру установки CMS WordPress экран:
Остаётся нажать на кнопку и войти в административную консоль вашего сайта на WordPress для того, чтобы начать его настраивать и заполнять, но об этом уже в следующих статьях:
7. Основы CMS WordPress, завершение установки LAMP
Итак, как было сказано ранее, для того, чтобы завершить подготовку необходимого для WordPress операционного окружения, нам осталось установить серверный язык PHP. Давайте приступим к этой задаче.
Вообще говоря, PHP можно установить одной командой: apt install php
, но тогда поиск пакетов будет осуществляться в основном репозитории Debian GNU/Linux 11, а там самой последней версией будет 7.4.
Пакеты же реально последней существующей на данный момент версии PHP размещаются в отдельном репозитории, который ведёт Ondřej Surý, по адресу: https://packages.sury.org/php/dists/bullseye/main/debian-installer/binary-amd64/ и они подписаны цифровой подписью GnuPG (GNU Privacy Guard) версии 2, поддержку которой мы в нашей системе ещё не ставили, поэтому, первым делом запускаем команду установки соответствующего модуля (пакета):
apt install gnupg2
Далее нам нужно скачать файл ключа https://packages.sury.org/php/apt.gpg:
после чего переходим с помощью {Ctrl, O} в наш менеджер файлов, переименовываем файл на deb.sury.org-php.gpg, так чтобы было понятно, к какому пакету он относится и перекидываем в каталог /etc/apt/trusted.gpg.d, предназначенный специально для доверенных gpg-ключей:
Далее нам потребуется в локальный репозиторий нашей системы Debian GNU/Linux 11 вписать ссылку на репозиторий Surý, то есть как бы интегрировать его, но для того, чтобы сделать это автоматически и безошибочно, нужно будет запустить скрипт, определяющий код реальной версии Debian GNU/Linux, работающей у вас на машине с помощью модуля “lsb-release”, поэтому сначала нужно будет установить его и некоторые другие разрешающие зависимости пакеты командой:
apt install -y lsb-release ca-certificates apt-transport-https software-properties-common
Теперь можно запустить и сам shell-скрипт:
sh -c 'echo "deb [signed-by=/etc/apt/trusted.gpg.d/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
выглядящий несколько замысловато, но проделывающий очень простую работу по добавлению нового файла php.list с одной строкой в каталог /etc/apt/sources.list.d:
В принципе, если вы уверены, что у вас именно bullseye, то проще создать такой файл вручную с помощью того же Midnigh Commander. Заметим, что узнать, какая именно версия Linux у вас стоит проще всего с помощью команлы hostnamectl
(без указания каких либо параметров).
Как бы всё, подготовка к установке закончена, запускаем теперь обязательно команду: apt update
, а затем apt upgrade
(если предыдущая команда указала на возможность что-то реально обновить), после чего apt install php8.1
, и если вы всё до этого делали правильно, то пакет установится без ошибок и предупреждений.
Установка поддержки самого PHP очень важна, но недостаточна. Для подавляющего большинства приложений нужны будут модули расширений. Мы продемонстрируем здесь установку некоторых наиболее важных из них, так чтобы было понятно, как, в случае необходимости, устанавливать другие.
Вопрос расширений php, которые могут потребоваться для WordPress, обсуждается на следующей странице официальной документации CMS https://make.wordpress.org/hosting/handbook/server-environment/, где рекомендуется установить как минимум 23 расширения. Мы считаем, что некоторые из них вам могут никогда не понадобиться, однако помните, что если WordPress ведёт себя неадекватно, то первое, что должно мелькнуть в ваших мыслях, а не нуждается ли он в каком-либо расширении php, которое ещё не установлено.
Давайте, для примера, сначала установим одно расширение, позволяющее работать с zip-архивами. Делается это простой командой: apt install php8.1-zip
. На следующем снимке с экрана мы проверяем на всякий случай, всё ли хорошо у нас было с установкой сервера PHP 8.1 командой: php -v
, убеждаемся что всё нормально, после чего запускаем установку расширения:
Далее установим ещё одно расширение mbstring, от которого зависит ряд других, с использованием ключа “-y”, позволяющего избавиться от назойливого вопроса: “Хотите продолжить? [д/н]”:
Как видите, всё прошло гладко. Теперь научимся устанавливать целый ряд крайне важных расширений одной командой:
apt install php8.1-xml php8.1-intl php8.1-imagick
Здесь мы, что естественно, привели на снимке с экрана не всю выдаваемую информацию, однако главное в том, что расширения установились без единой ошибки, о чём свидетельствует отсутствие красных строк.
И последнее, что нам нужно обязательно сделать, так это установить расширение pdo_mysql. Убедимся на всякий случай, что его ещё нет среди установленных модулей. Сделать это можно несколькими способами. Например, с помощью команды Unix Shell: php -v
или с помощью команды, выдающей более подробную информацию о конфигурации php -i
. Для того, чтобы не искать в выдаче mysql глазами, лучше воспользоваться конвейерным фильтром php -i | grep mysql
:
Если вам сложно или не удобно работать в Unix Shell, то можно создать в корне сайта специальный файл с именем phpinfo.php (он всегда пригодится) со следующим содержимым:
После этого вы в любой момент сможете получить полную информацию о параметрах PHP в вашей системе, просто запустив с браузера на выполнение этот простейший php-код по ссылке http://site-1.sysadmin.bz/phpinfo.php. При этом, что немаловажно, вы получите всю информацию, что и по команде php -i, но в значительно более привлекательном графическом виде, который легче визуально разбирать.
Здесь нужно отметить, что если какое-то расширение PHP действительно установлено, то оно появится в отдельной секции выдаваемой большой таблицы, например информация об интересующем нас расширении pdo_mysql будет содержаться в таком виде:
Кроме этого, информацию о том, задействовано ли то или иное расширение PHP в вашей конфигурации, можно получить с помощью анализа файла /etc/php/8.1/apache2/php.ini. Если в секции “Dynamic Extensions” перед записью “extension=pdo_mysql” стоит признак комментария “;”, то это значит, что оно не задействовано. Этот файл вам в дальнейшем придётся неоднократно править увеличивая значения тех или иных параметров, поэтому запомните. где он находится!
Итак, мы убедились, что нужно установить расширение pdo_mysql. Поскольку расширение затрагивает довольно много компонентов системы, то сначала запускаем обязательно apt update
и apt upgrade
, а потом уже непосредственно команду, осуществляющую все необходимые нам действия в комплексе apt install php8.1-mysql
:
После этого не забываем перезагрузить Apache командой service apache2 reload
, и убеждаемся, что в выдаче командв php -i | grep mysql
появилось всё, что нам было нужно:
На этом статью об установке и настройке PHP, как о компоненте LAMP, казалось, можно было бы и закончить. Однако, довольно часто на практике требуется иметь на одном сервере Apache как минимум две версии php! Поэтому мы далее рассмотрим, как это реализовать.
Отметим здесь сразу, что в Linux есть специальная команда update-alternatives
, предназначенная для того, чтобы настраивать запуск вообще говоря разных программ под неким общим названием. Их называют альтернативами. Простейший пример – это различные редакторы текстов. Например, для выбора редактора текста по умолчанию нужно запустить команду sudo update-alternatives --config editor
.
Давайте установим ещё и PHP 7.4. Для этого (если мы всё вышеописанное делали верно) достаточно запустить команду sudo apt -y install php7.4
. Если теперь запустить команду sudo update-alternatives --config php
, то в списке выбора появится и эта версия.
Но это ещё не всё. В стандартном вариантие использования LAMP мы, хотя и имеем установленными разные версии PHP, использовать можем только ту, которая задана по умолчанию. Для того, чтобы одновременно использовать для разных приложений разные версии PHP их нужно будет каким-то образом развести, чем мы ниже и займёмся.
Для начала установим для версии 7.4 минимально необходимый набор расширений для организации одновременной работы с другими версиями командой sudo apt -y install php7.4-fpm php7.4-mysql libapache2-mod-php7.4 libapache2-mod-fcgid
. Соответствующей командой нужно будет установить эти же расширения (за исключением уже установленных ранее) и для нашей основной версии 8.1 apt -y install php8.1-fpm libapache2-mod-php8.1
.
Установка того или иного модуля ещё не означает, что он работает. Приступим к процедуре активации. Для этого сначала запустим службы FastCGI Process Manager, реализующие функцию интерпретаторов PHP для соответствующих версий командами: service php7.4-fpm start
и service php8.1-fpm start
. Если команды выполнились безмолвно, то скорее всего сервис запустился, но для пущей убедительности можно проверить это соответствующими командами: service php7.4-fpm status
и service php8.1-fpm status
.
Следующий шаг – активация необходимых дополнительных модулей Apache командой: sudo a2enmod actions fcgid alias proxy_fcgi
, и последующий полный перезапуск сервера командой: sudo systemctl restart apache2
, ну или как мы больше привыкли, командой service apache2 restart
.
Ну и последний, можно сказать, самый главный момент, который определяет, что данный конкретный сайт будет использовать отличную от используемой по умолчанию версию PHP, заключается в добавлении в конфигурацию виртуального хоста сервера Apache специального блока:<FilesMatch \.php$>
после блока <Directory> .. </Directory>.
# For Apache version 2.4.10 and above, use SetHandler to run PHP as a fastCGI process server
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
В этом разделе нам осталось упомянуть, как включать или отключать ту или иную установленную версию PHP для сервера Apache. Для этого у него имеются специальные команды: a2dismod
и a2enmod
. Например, чтобы отключить модуль php7.4 нужно выполнить команду a2dismod php7.4
, после чего перезагрузить Apache командой service apache2 reload
.
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, что позволяет зайти нам на сервер под логином root (здесь имеется ввиду пользователь MySQL, а не Linux) и получить полный доступ к выполнению всех команд 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.
5. Основы CMS WordPress, установка www-сервера
Итак, после того, как мы установили Linux, следующей нашей целью является web-сервер Apache.
Однако, прежде чем его устанавливать, нам нужно будет потрудиться установить и настроить себе простейшее окружение для работы с Linux. В предыдущей статье мы показали, что к командной строке Linux shell можно получить доступ с помощью Менеджера Hyper-V, однако делать это мы будем только тогда. когда по той или иной причине не будут доступны другие средства. Если вы были внимательны, то заметили, что наряду с ядром Linux и основными утилитами, мы установили ещё и ssh-сервер. Пришло время этим воспользоваться. Вы можете установить любой ssh-клиент, который вам по душе и к которому вы привыкли, например, мы предпочитаем обычно старый добрый PuTTY, однако здесь мы покажем, как использовать родные средства Windows:
Если наша виртуальная машина выключена, то запускаем её как показывалось в предыдущей статье (Кнопкой “Пуск” во вкладке “Действия”), при этом кнопку “Подключить” нажимать не нужно;
-
- Нажимаем на комбинацию клавиш {Windows,R}, набираем cmd, нажимаем на Enter (или мышью на кнопку “ОК”), после чего проверяем связь с виртуальной машиной, набрав и выполнив в появившемся окне на чёрном экране команду
ping ip-адрес-виртуальной-машины
- Если команда ping отработала (то есть от гостевой ОС Linux есть ответ), то набираем следующую команду:
ssh ваш-логин-в-Linux@ip-адрес-виртуальной-машины
: - На появившийся вопрос отвечаем утвердительно, то есть набираем yes и жмём Enter;
- Теперь достаточно ввести верно ваш пароль и вы в командной строке Debian/GNU Linux 11:
- Операционная система Debian GNU/Linux постоянно развивается, поэтому, даже если вы ещё вчера установили её, то уже сегодня имеет смысл получить информацию о доступных обновлениях пакетов программ, и делается это при помощи команды:
sudo apt update
,а результатом её работы может быть совет по запуску обновления того или иного пакета или нескольких пакетов, что можно сделать посредством команды:sudo apt upgrade
- В принципе, уже после этого можно приступить к установке сервера Apache, однако потом нам придётся много работать с файлами и чтобы не делать это каждый раз с командной строки, имеет смысл поставить файловый менеджер, а поскольку мы не будем ставить никаких систем поддержки графических интерфейсов (они попросту не нужны для наших целей), то выбор невелик и ставить нужно Midnight Commander, который распространяется по той же лицензии GNU GPL и позволяет нам сильно упростить многие операции с файлами, в том числе их просмотр и редактирование, при всём при этом, что самое замечательное, не отвергая возможности использования командной строки, так как всегда можно перейти к ней при помощи комбинации клавиш {Ctrl, O}, не запуская отдельного процесса и тем самым выполняя команды в привилегированном режиме не вводя их каждый раз в виде параметра команды “sudo”
- Итак, запускаем установленный Midnight Commander командой:
sudo mc
, вводим последний раз (по крайней мере до его закрытия) пароль и любуемся стандартным синим двухоконным менеджером файлов с интерфейсом, известным нам ещё с 1986 года благодаря Norton Commander. Далее, поскольку менеджер файлов сейчас нам не нужен, нажимаем {Ctrl, O} и попадаем снова в командную строку Unix shell (стоит заметить, что нажав в любой момент на эту же комбинацию клавиш, мы снова можем быстро вернуться к Midnight Commander, что крайне удобно) - Теперь мы готовы к установке web-сервера, но прежде чем его установить, для того, чтобы был очевидней результат попробуйте в любом интернет-браузере вашей локальной сети ввести адрес: “http://192.168.1.11” и убедитесь, что будет выдана диагностика “Попытка соединения не удалась”, что естественно, так как нет сервера, который должен отвечать на http-запросы.
- Всё, набираем в командной строке:
apt install apache2
- На вопрос отвечаем утвердительно, набрав букву “д” и нажав на Ввод (Enter), что приведёт к тому, что необходимые пакеты установятся в вашу систему и Linux shell будет готов принимать очередные команды.
- Если вы всё сделали правильно, то на этом процесс установки web-сервера Apache заканчивается, а для проверки нужно найти страницу браузера. где вам выдавалась ошибка соединения, нажать {Ctrl, F5} и увидеть такую картинку:
- Обратите внимание на то, что к серверу пока можно обращаться только по протоколу http: и только по ip-адресу, а о том, как настроить сервер для работы с https, а также так, чтобы он откликался на имена доменов поговорим в одной из следующих статей, где будет обсуждаться тема создания и настройки сайтов на web-сервере Apache установленной нами ветки 2.4.x
- У нас всё прошло гладко, сервер установился и запустился без единого сообщения, однако на практике, в зависимости от тех или иных обстоятельств, установленный вами сервер может выдать предупреждение или даже сообщение об ошибке запуска, и тут нужно будет изучать журнал ошибок, для чего нажимаем на комбинацию клавиш {Ctrl, O), заходим в каталог varlogapache2, находим в нём файл error.log, жмём F3, изучаем ошибку по её номеру, ищем варианты решения проблемы в Интернет (или на сленге “гуглим проблему”), решаем её, а затем проверяем решение при помощи следующей команды:
systemctl status apache2.service -l --no-pager
и только если она не выдаёт никаких красных строк, можно считать, что вы завершили установку web-сервера.
- Нажимаем на комбинацию клавиш {Windows,R}, набираем cmd, нажимаем на Enter (или мышью на кнопку “ОК”), после чего проверяем связь с виртуальной машиной, набрав и выполнив в появившемся окне на чёрном экране команду