
Цель урока: Пройти полный цикл развертывания реального веб-приложения "с нуля". Мы установим и настроим WordPress - самую популярную в мире систему управления контентом (CMS) - на нашем сервере, используя стек технологий, который мы подготовили: Linux, Nginx (E), MariaDB, PHP (LEMP).
Часть 1: Теория и план действий. Что мы будем делать?
WordPress - это динамическое приложение, написанное на PHP, которое хранит все свои данные (статьи, пользователей, настройки) в базе данных MySQL/MariaDB.
Наш пошаговый план:
-
Подготовка базы данных: Создать отдельную базу данных и пользователя для WordPress (как в Уроке 48).
-
Загрузка и распаковка: Скачать последнюю версию WordPress и разместить ее файлы в правильном каталоге на сервере.
-
Настройка прав доступа: Установить правильные права на файлы, чтобы веб-сервер мог с ними работать.
-
Конфигурация WordPress: Создать конфигурационный файл wp-config.php и прописать в нем данные для подключения к нашей базе.
-
Финальная настройка Nginx: Внести небольшие, но важные изменения в конфиг Nginx, чтобы он корректно работал с "красивыми" ссылками (ЧПУ) в WordPress.
-
Установка через веб-интерфейс: Завершить установку в браузере.
Часть 2: Практика. Шаг 1: Подготовка базы данных
Для каждого сайта - своя база и свой пользователь. Это золотое правило.
-
Войдем в консоль MariaDB под root:
mariadb -
Создадим базу данных. Назовем ее wordpress_db.
CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;-
CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci: Это очень важная часть. Она говорит базе данных использовать современную кодировку UTF-8, которая корректно поддерживает все символы, включая эмодзи.
-
-
Создадим пользователя wordpress_user с надежным паролем. Обязательно замените 'your_strong_password' на свой собственный сложный пароль!
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'your_strong_password'; -
Выдадим этому пользователю все права только на его базу данных wordpress_db.
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost'; -
Применим изменения и выйдем.
FLUSH PRIVILEGES; exit;
Часть 3: Практика. Шаг 2: Загрузка и распаковка WordPress
-
Перейдем в каталог /tmp. Это стандартное место для временных файлов.
cd /tmp -
Скачаем последнюю версию WordPress. Утилита wget (или curl -O) идеально подходит для скачивания файлов из командной строки.
wget https://wordpress.org/latest.tar.gz -
Распакуем архив. Мы используем команду tar, которую изучали.
# x - extract, z - gzip, v - verbose, f - file tar -xzvf latest.tar.gzПосле распаковки появится каталог wordpress.
-
Скопируем файлы на место. Нам нужно скопировать содержимое каталога /tmp/wordpress в корневой каталог нашего сайта. Напоминаю, он у нас находится в /var/www/your_domain.com/html.
# Ключ -a у команды cp рекурсивно копирует файлы, сохраняя права доступа cp -a /tmp/wordpress/. /var/www/your_domain.com/html/-
Обратите внимание на /. в конце пути источника! Это специальный синтаксис, который означает "скопировать все содержимое каталога, но не сам каталог".
-
Часть 4: Практика. Шаг 3 и 4: Права доступа и конфигурация
-
Установим правильного владельца. Файлы сайта должны принадлежать пользователю, от имени которого работает веб-сервер. В Debian/Ubuntu это www-data.
# chown -R рекурсивно меняет владельца для каталога и всех вложенных файлов chown -R www-data:www-data /var/www/your_domain.com/html -
Создадим конфигурационный файл. WordPress ищет файл wp-config.php. В дистрибутиве есть пример wp-config-sample.php. Скопируем его.
cd /var/www/your_domain.com/html cp wp-config-sample.php wp-config.php -
Отредактируем конфиг. Откроем его в nano.
nano wp-config.phpВам нужно найти и отредактировать три строки, подставив в них данные от нашей базы данных:
// ** Database settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define( 'DB_NAME', 'wordpress_db' ); /** Database username */ define( 'DB_USER', 'wordpress_user' ); /** Database password */ define( 'DB_PASSWORD', 'your_strong_password' );Также очень рекомендуется добавить уникальные "соли" (ключи безопасности). Для этого просто перейдите по ссылке https://api.wordpress.org/secret-key/1.1/salt/, скопируйте сгенерированный там блок и замените им соответствующий блок в вашем wp-config.php.
Сохраните (Ctrl+O, Enter) и выйдите (Ctrl+X).
Часть 5: Практика. Шаг 5: Финальная настройка Nginx
Чтобы "красивые" ссылки в WordPress (вида https://your_domain.com/my-post/) работали, нужно немного доработать наш конфиг Nginx.
-
Откройте конфиг вашего сайта:
nano /etc/nginx/sites-available/your_domain.com -
Найдите блок location / { ... } и замените его содержимое. Было: try_files $uri $uri/ =404;. Стало:
location / { try_files $uri $uri/ /index.php?$args; }-
Что это значит? "Сначала попробуй найти файл ($uri), потом попробуй найти каталог ($uri/). Если ничего не найдено, не отдавай ошибку 404, а передай управление файлу index.php". Именно так работает маршрутизация в WordPress.
-
-
Проверяем и перезагружаем Nginx:
nginx -t systemctl reload nginx
Часть 6: Практика. Шаг 6: Установка через веб-интерфейс
Все готово!
-
Откройте в браузере ваш сайт: https://your_domain.com
-
Вы увидите знаменитый пятиминутный установщик WordPress.
-
Выберите язык, придумайте название сайта, логин и пароль для администратора WordPress (не путайте с системными пользователями!).
-
Нажмите "Установить WordPress".
Поздравляю! Вы только что с нуля развернули полноценный, работающий сайт на WordPress на вашем собственном сервере!
Часть 7: Заключение
Этот урок стал кульминацией всего, что мы изучили в третьем блоке. Вы не просто выполнили набор команд, вы прошли весь путь профессионального системного администратора по развертыванию веб-приложения.
Вы применили на практике:
-
Управление базами данных: Создали изолированную базу и пользователя.
-
Работу с файлами и архивами: Скачали, распаковали и разместили файлы сайта.
-
Управление правами доступа: Настроили правильного владельца для файлов.
-
Настройку Nginx: Адаптировали конфигурацию виртуального хоста для корректной работы с PHP-приложением.
-
Настройку PHP и SSL: Убедились, что весь стек работает вместе.
Теперь вы обладаете всеми базовыми навыками для администрирования хостинга.
На следующем, 53-м уроке, мы сделаем наш сервер еще более безопасным. Мы установим и настроим утилиту fail2ban, которая будет автоматически отслеживать попытки подбора паролей к SSH и другим службам и блокировать IP-адреса атакующих.
Перейти к просмотру - УРОК №53.
Промо-код: PROMO15 - скидка 15%!
Введите при оформлении первого заказа на сайте: Hosting-VDS.com

