Согласно обновлённому рейтингу лучших систем управления контентом (CMS) известного сервиса W3Techs, WordPress занимает уверенные лидирующие позиции как в общем списке (43,1%), так и среди хорошо известных CMS (63,0%). Такая популярность способствует широкому использованию системы для самых разнообразных веб-проектов, начиная от блога и заканчивая Интернет-магазином. Как известно, для работы любого из проектов необходима установка WordPress на VPS (Virtual Private Server) или виртуальный хостинг в зависимости от ресурсоёмкости сайта. Рассмотрим детальнее весь процесс установки WordPress на VPS под управлением Ubuntu, начиная от подготовки программной среды и заканчивая запуском Консоли управления WordPress.
Необходимые условия для установки WordPress
Перед установкой системы программная среда сервера должна быть подготовлена таким образом, чтобы обеспечить слаженную работу стёка технологий типа LAMP, в который входят:
- Linux-подобная операционная система (ОС);
- Веб-сервер Apache;
- Сервер баз данных MySQL;
- Препроцессор гипертекста PHP.
Только при наличии этой связки технологий возможна полноценная и условно безопасная работа WordPress. Ниже будет рассмотрен процесс их установки и / или проверки наличия в действующей системе.
Подготовка среды LAMP
Для управления нашим VPS-сервером используется ОС Ubuntu 22.04, которая, как известно, относится к семейству Linux-подобных ОС, а значит одно из условий выполнено.
Перейдём к установке сервера баз данных MySQL.
Установка MySQL сервера
Для начала, обновим индекс пакетов на сервере с помощью следующей команды:
$ sudo apt update
Видим, что 8 программных пакетов могут быть обновлены в системе.
Теперь выполним установку серверного пакета MySQL. В этом случае установка будет выполнена без запроса на внесение изменений в конфигурацию, включая и изменение пароля. Наберём в терминале:
$ sudo apt install mysql-server
Подтвердим запрос на выделение 243 MB дополнительного дискового пространства, после чего процесс установки продолжится.
Как видим, установка прошла успешно: «Setting up mysql-server (8.0.34-0ubuntu0.22.04.1)». Его версия 8.0.34.
При первичном развёртывании сервера MySQL необходим запуск скрипта безопасности, который позволит изменить значения некоторых опций, установленных по умолчанию. Это, например, касается беспрепятственного доступа к серверу анонимных (тестовых) пользователей, что напрямую влияет на уровень безопасности системы. Суть работы со скриптом заключается в формировании ответов на ряд последовательно выводимых в терминале вопросов. Запуск скрипта можно произвести с помощью следующей команды:
$ sudo mysql_secure_installation
Подтверждаем разрешение на автоматическую валидацию (проверку) пароля входа, в зависимости от выбранного уровня безопасности, варианты которых представлены ниже.
Выбираем уровень MEDIUM, при котором пароль должен будет содержать не менее 8-ми символов, включающих цифры, латинские буквы в верхнем и нижнем регистре, а также специальные символы.
Запрещаем доступ к системе анонимных пользователей.
Оставляем возможность удалённого доступа к системе root пользователя.
Запрещаем доступ пользователей к тестовому варианту базы.
Подтверждаем перезагрузку таблицы привилегий для вступления в силу внесённых нами изменений.
В результате, установка сервера успешно завершена: «All done!».
Для входа в командную строку управления сервером нужно авторизоваться. Здесь необходимо иметь ввиду, что, начиная с версии MySQL 5.7, аутентификация для пользователей с правами root происходит в автоматическом режиме с помощью модуля auth_socket, что исключает использование пароля. В этом случае подключение к серверу для root пользователя производится следующим образом:
$ sudo mysql
Тут же можно проверить, какая версия сервера установлена в системе: «Server version: 8.0.34».
Рассмотренный вариант аутентификации является наиболее удобным и надёжным, однако в некоторых случаях может понадобиться доступ по паролю. Тогда нужно поменять модуль аутентификации на другой, к примеру, caching_sha2_password.
Проверить, какой модуль аутентификации установлен можно с помощью следующей команды:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Можно убедиться, что действующим для root пользователя является модуль auth_socket, как и предполагалось.
Для того, чтобы изменить его, нужно ввести следующую команду в строке управления сервером:
ALTER USER 'root'@'dedicated' IDENTIFIED WITH caching_sha2_password BY 'password';
где password – новый пароль root пользователя.
Для этого метода аутентификации команда подключения к серверу будет следующей:
$ mysql -u root -p
Администраторские права теперь можно получить только после введения пароля. Выйдем из оболочки MySQL. Для этого наберём в терминале:
$ exit
В итоге, компонент MySQL нами был успешно установлен.
Установка PHP
Для начала, проверим какая из версий PHP на данный момент является текущей в официальном репозитории Ubuntu. Это можно сделать с помощью следующей команды:
$ sudo apt show php
Видим, что текущей является: «PHP version (currently 8.1)».
Установим версию 8.1 из репозитория:
$ sudo apt install php
Подтверждаем выделение 29,5 MB дискового пространства и процесс установки продолжается.
Установка успешно завершена: «Setting up php 8.1».
Узнать установленную версию можно так:
$ php -v
Для возможности работы препроцессора PHP с веб-сервером Apache необходимо дополнительно установить ещё один пакет. Для этого введём в терминале:
$ sudo apt install libapache2-mod-php
Таким образом, очередной компонент связки LAMP успешно установлен и подготовлен для работы с веб-сервером.
Установка веб-сервера Apache
Веб-сервер всегда доступен для установки из репозиториев Ubuntu. Для начала, необходимо обновить индекс локальных пакетов, как мы уже делали раньше:
$ sudo apt update
После этого установим нужный пакет:
$ sudo apt install apache2
Как видим, данный компонент LAMP уже был установлен ранее на нашей машине. Его версия – 2.4.52.
Во время своей установки веб-сервер автоматически регистрируется в UFW (Uncomplicated Firewall), предоставляя несколько своих профилей для настройки доступа к серверу через брандмауэр.
Выведем список доступных профилей. Для этого наберём в терминале:
$ sudo ufw app list
В списке представлено три разных профиля:
- Apache;
- Apache Full;
- Apache Secure.
Последние два из них наиболее защищены и требуют наличия SSL сертификата. Подключим профиль Apache, который открывает порт 80 без использования шифрования передаваемых данных. Для этого введём следующую команду:
$ sudo ufw allow 'Apache'
В результате, правила брандмауэра были обновлены и действующим стал профиль Apache.
Проверить статус веб-сервера всегда можно с помощью следующей команды:
$ sudo systemctl status apache2
Таким образом, наш веб-сервер установлен и готов к работе.
Развёртывание CMS Wordpress
Процесс развёртывания системы можно разбить на несколько этапов:
- Создание базы данных;
- Создание нового пользователя и настройка его прав;
- Выбор версии программы и её закачка на сервер;
- Распаковка архива и установка прав к основному каталогу Wordpress;
- Продолжение установки в браузере;
- Авторизация в Консоли управления Wordpress.
Переходим к практической реализации указанных этапов развёртывания системы.
Создание базы данных
Для возможности выполнения любых действий по управлению MySQL, необходимо авторизоваться в ней. Для root пользователя это могут быть следующие команды, в зависимости от установленного метода аутентификации:
$ mysql -u root –p (вход по паролю)
$ sudo mysql (вход по сокету)
Создадим базу данных под названием bazawp. Это можно сделать с помощью следующей команды:
> CREATE DATABASE bazawp;
База успешно создана.
Создание нового пользователя и настройка его прав
Пользователя для управления базой можно создать с помощью следующей команды:
> CREATE USER 'inhosting'@'dedicated' IDENTIFIED BY 'newparol75N!';
где inhosting – имя пользователя; newparol75N! – его пароль для доступа к системе.
Здесь стоит напомнить, что пароль должен соответствовать установленному нами ранее при развёртывании MySQL уровню безопасности MEDIUM. Только в этом случае валидатор системы «пропустит» пароль.
Установим разрешения для любых действий с базой данных для созданного пользователя. Для этого наберём в командной строке:
> GRANT ALL PRIVILEGES ON bazawp.* TO 'inhosting'@'dedicated';
Сохраним установленные права с помощью следующей команды:
> FLUSH PRIVILEGES;
Права успешно сохранены.
Выходим из MySQL и возвращаемся к командной строке оболочки bash:
> exit
Далее необходимо перезагрузить веб-сервер Apache, чтобы подключить настройки. Для этого используется следующая конструкция:
$ /etc/init.d/apache2 restart
Выбор версии программы и её закачка на сервер
Для выбора версии программы необходимо перейти на сайт разработчиков Wordpress по следующей ссылке. Ниже показана страница выбора версии.
Выбираем свежую русскоязычную версию из ветки 6.3, которая активно поддерживается. Ссылку можно получить, кликнув правой кнопкой мыши в крайнем правом столбце с названием архива tar.gz.
Перейдём в каталог для хранения файлов и введём команду для скачивания файла:
$ cd /var/www/html
$ wget https://ru.wordpress.org/wordpress-6.3.2-ru_RU.tar.gz.sha1
Файл wordpress-6.3.2-ru_RU.tar.gz.sha1 был успешно загружен на сервер.
Распаковка архива и установка прав к основному каталогу Wordpress
Распакуем скачанный архив с помощью архиватора tar.gz. Для этого введём в терминале:
$ tar –xzvf wordpress-6.3.2-ru_RU.tar.gz.sha1
Архив программы успешно распакован.
Установим права к каталогу wp-content с помощью следующей конструкции:
$ chmod -R 777 /var/www/html/wordpress/wp-content
Права успешно установлены!
Для применения новых настроек перезагружаем веб-сервер Apache:
$ /etc/init.d/apache2 restart
Продолжение установки в браузере
Для продолжения установки программы необходимо в адресной строке браузера ввести ссылку, которая имеет следующий формат:
http://ip_адрес_vps_сервера/wordpress/wp-admin/setup-config.php
После нажатия на кнопку Вперёд нам необходимо будет ввести данные, которые мы получили ранее: имя пользователя, пароль и т.д.
В случае, если автоматическое создание файла wp-config.php не удалось, можно создать его в ручном режиме с помощью редактора nano. Для этого нужно перейти в каталог html и ввести команду вызова редактора:
$ cd /var/www/html
$ nano wp-config.php
Во вновь созданный файл необходимо вставить код, выведенный в браузере (см. ниже), сохранить внесённые изменения и выйти из редактора. Только после этого можно вернуться к браузеру для продолжения установки и кликнуть по кнопке Запустить установку.
Авторизация в Консоли управления Wordpress
После введения всех данных и завершения установки, Wordpress предложит войти в Консоль управления системой, для чего необходимо будет авторизоваться, как показано ниже.
В результате, пользователь получает полный доступ к Консоли управления Wordpress (см. ниже).
Таким образом, WordPress был успешно установлен на VPS-сервер под управлением Ubuntu 22.04.