Используемые термины: WordPress , NGINX , PHP , MariaDB , Rocky .
Рассмотрим простой пример, как быстро развернуть веб-сервер для запуска WordPress. Наша система будет работать с использованием следующих компонентов:
Установка и настройка данных компонентов будет выполнено под операционной системой Rocky Linux версии 9.
Предварительная настройка
Развертывание NGINX + PHP + MariaDB
Установка и запуск WordPress
Настройка шифрования для http
Дополнительные материалы
Прежде чем перейти к развертыванию системы, выполним подготовительные работы.
На сайте WordPress изучаем системные требования . Необходимо убедиться, что наш сервер будет соответствовать версиям программных продуктов, которые требуются для его работы. Обращаем внимание на:
Фиксируем данные требования. Нам понадобится данная информация позже.
В нашем примере будет рассмотрена связка NGINX, PHP 8.0 и MariaDB 10.5.
Для работы веб-сервера нам понадобится порт 80. Открываем его командой:
firewall-cmd —permanent —add-service=http
Применяем настройку:
firewall-cmd —reload
Предполагается, что мы будем использовать веб-сервер NGINX, PHP и MariaDB. Рассмотрим установку данных компонентов по очереди.
Выполняем установку:
dnf install nginx
Стартуем сервис nginx и разрешаем его автозапуск:
systemctl enable nginx —now
Проверим работу веб-сервера. Открываем браузер и вводим в адресной строке http://<IP-адрес сервера> . В итоге мы должны увидеть заголовок «Welcome to nginx!»:
* в зависимости от версии и типа Linux, данная страница может отличаться. Однако, это должна быть приветственная страница nginx, указывающая, что веб-сервер в рабочем состоянии.
Устанавливаем PHP и необходимые для работы WordPress компоненты:
dnf install php php-fpm php-curl php-dom php-imagick php-mbstring php-zip php-gd php-intl
В моем случае была выполнена установке PHP версии 8.0. При желании, мы можем посмотреть это командой:
php -v
Вывод будет, примерно, такого вида:
PHP 8.0.30 (cli) (built: Aug 3 2023 17:13:08) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies
with Zend OPcache v8.0.30, Copyright (c), by Zend Technologies
Разрешаем и запускаем php-fpm:
systemctl enable php-fpm —now
Настроим виртуальный домен в NGINX и связку последнего с PHP. Предположим, что у нас сайт будет wordpress.remontka.com.
Создадим конфигурационный файл для настройки домена:
vi /etc/nginx/conf.d/wordpress.remontka.com.conf
upstream php {
server unix:/run/php-fpm/www.sock;
}
server {
listen 80;
server_name wordpress.remontka.com ;
root /var/www/wordpress.remontka.com ;
access_log /var/log/nginx/wordpress.remontka.com_access_log ;
error_log /var/log/nginx/wordpress.remontka.com_error_log ;
index index.php;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
* за основу данной конфигурации взят пример с официальной страницы wordpress. Необходимо обратить внимание на следующее (выделено желтым):
Проверяем конфигурацию nginx и перечитываем ее:
nginx -t && nginx -s reload
Создаем каталог, в котором должны находиться файлы WordPress (то, что мы указали в директиве root ):
mkdir -p /var/www/wordpress
Создадим в данном каталоге скрипт index.php :
echo «<?php phpinfo(); ?>» > /var/www/wordpress/index.php
* скрипт будет выводить информацию о PHP.
Открываем браузер и вводим адрес сайта (тот, что указан в директиве server_name ). В итоге мы должны увидеть полную информацию об интерпретаторе PHP:
Так как в нашем примере создан виртуальный домен, необходимо обратиться к порталу, именно, по его имени. Данное имя должно разрешаться в IP-адрес сервера, где мы развернули веб-сервер. Для этого необходимо настроить DNS или использовать локальный файл hosts.
Устанавливаем СУБД и расширение для PHP:
dnf install mariadb-server php-mysqli
Разрешаем автозапуск сервиса mariadb и стартуем его:
systemctl enable mariadb —now
Также перезапустим php-fpm, чтобы появилась информация о расширении работы с mysql:
systemctl restart php-fpm
Заходим в оболочку SQL:
mysql
Создаем базу данных:
> CREATE DATABASE `wordpress` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
* в данном примере создастся база с названием wordpress . Однако, если сайтов на одном сервере будет несколько, лучше давать имена базам в соответствии с названием сайта.
Создадим пользователя и предоставим ему доступ к базе данных wordpress:
> CREATE USER ‘wordpress’@’localhost’ IDENTIFIED BY ‘wordpress123’;
> GRANT ALL PRIVILEGES ON `wordpress`.* TO ‘wordpress’@’localhost’;
* мы создадим пользователя wordpress , которому разрешено подключаться только с локального хоста ( @localhost ) и паролем wordpress123 .
Выходим из SQL:
> quit
Проверим, что php видит расширение mysqlnd:
php -i | grep mysqlnd
Среди всего вывода мы должны увидеть такую строку:
mysqlnd => enabled
Веб-сервер готов для установки wordpress.
Скачиваем самый свежий архив CMS:
curl -sLO https://ru.wordpress.org/latest-ru_RU.tar.gz
Распаковываем его в каталог, созданный для wordpress:
tar -zxf latest-ru_RU.tar.gz -C /var/www/wordpress/ —strip-components 1
Зададим владельца на распакованные файлы:
chown -R apache:apache /var/www/wordpress
Открываем снова браузер и переходим на страницу сайта. Мы должны увидеть приветственное сообщение от wordpress. Нажимаем кнопку Вперед :
На следующей странице заполняем данные для подключения к базе данных:
* нами были созданы база данных wordpress , пользователь wordpress и пароль wordpress123 . Мы не создавали отдельного сервера баз данных, поэтому в качестве его адреса указываем localhost . Префикс базы можно не менять.
Кликаем по Отправить . Если мастер установки успешно подключится к базе, мы должны увидеть следующую страницу. Нажимаем на ней Запустить установку :
Укажем название нашего сайта, а также зададим имя пользователя и пароль для доступа к панели управления:
Готово. Мастер сообщаем, что установка завершена. Переходим по ссылке Войти , чтобы оказаться на странице входа в панель управления:
Вводим логин и пароль для входа в CMS. Переходим на страницу Инструменты — Здоровье сайта :
Необходимо убедиться, что нет критических ошибок. При желании, можно выполнить рекомендации системы.
Для настройки https нам нужно:
Заходим в панель администрирования CMS. Переходим в Настройки — Общие :
Меняем настройки для:
Необходимо заменить http на https . Нажимаем Сохранить .
Получаем сертификат одним из способов:
Файлы сертификата должны быть скопированы на сервер. После открываем конфигурационный файл nginx:
vi /etc/nginx/conf.d/wordpress.remontka.com.conf
Вносим изменения (выделено желтым):
…
server {
listen 80;
listen 443 ssl;
…
if ($scheme = ‘http’) {
return 301 https://$host$request_uri;
}
ssl_certificate /etc/letsencrypt/live/wordpress.remontka.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wordpress.remontka.com/privkey.pem;
…
* мы добавили директиву прослушивания 443 порта ( listen ), настроили редирект с http на https и прописали пути до файлов сертификатов (в вашем случае пути будут другими).
Проверяем корректность настройки nginx и перечитываем конфигурацию:
nginx -t && nginx -s reload
Открываем порт для https:
firewall-cmd —permanent —add-service=https
Применяем настройку:
firewall-cmd —reload
Готово.
Другие полезные инструкции:
1. Как вручную обновить WordPress .
2. Получение бесплатного SSL сертификата Let’s Encrypt .
3. Развертывание WordPress в Docker и установка его в командной строке .
4. Создание или редактирование администратора в различных CMS через базу данных .
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…