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 для того, чтобы начать его настраивать и заполнять, но об этом уже в следующих статьях: