Цель урока: Пройти полный цикл развертывания реального веб-приложения "с нуля". Мы установим и настроим WordPress - самую популярную в мире систему управления контентом (CMS) - на нашем сервере, используя стек технологий, который мы подготовили: Linux, Nginx (E), MariaDB, PHP (LEMP).

Часть 1: Теория и план действий. Что мы будем делать?

WordPress - это динамическое приложение, написанное на PHP, которое хранит все свои данные (статьи, пользователей, настройки) в базе данных MySQL/MariaDB.

Наш пошаговый план:

  1. Подготовка базы данных: Создать отдельную базу данных и пользователя для WordPress (как в Уроке 48).

  2. Загрузка и распаковка: Скачать последнюю версию WordPress и разместить ее файлы в правильном каталоге на сервере.

  3. Настройка прав доступа: Установить правильные права на файлы, чтобы веб-сервер мог с ними работать.

  4. Конфигурация WordPress: Создать конфигурационный файл wp-config.php и прописать в нем данные для подключения к нашей базе.

  5. Финальная настройка Nginx: Внести небольшие, но важные изменения в конфиг Nginx, чтобы он корректно работал с "красивыми" ссылками (ЧПУ) в WordPress.

  6. Установка через веб-интерфейс: Завершить установку в браузере.

Часть 2: Практика. Шаг 1: Подготовка базы данных

Для каждого сайта - своя база и свой пользователь. Это золотое правило.

  1. Войдем в консоль MariaDB под root:

    mariadb
  2. Создадим базу данных. Назовем ее wordpress_db.

    CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    • CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci: Это очень важная часть. Она говорит базе данных использовать современную кодировку UTF-8, которая корректно поддерживает все символы, включая эмодзи.

  3. Создадим пользователя wordpress_user с надежным паролем. Обязательно замените 'your_strong_password' на свой собственный сложный пароль!

    CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'your_strong_password';
  4. Выдадим этому пользователю все права только на его базу данных wordpress_db.

    GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
  5. Применим изменения и выйдем.

    FLUSH PRIVILEGES;
    exit;

Часть 3: Практика. Шаг 2: Загрузка и распаковка WordPress

  1. Перейдем в каталог /tmp. Это стандартное место для временных файлов.

    cd /tmp
  2. Скачаем последнюю версию WordPress. Утилита wget (или curl -O) идеально подходит для скачивания файлов из командной строки.

    wget https://wordpress.org/latest.tar.gz
  3. Распакуем архив. Мы используем команду tar, которую изучали.

    # x - extract, z - gzip, v - verbose, f - file
    tar -xzvf latest.tar.gz

    После распаковки появится каталог wordpress.

  4. Скопируем файлы на место. Нам нужно скопировать содержимое каталога /tmp/wordpress в корневой каталог нашего сайта. Напоминаю, он у нас находится в /var/www/your_domain.com/html.

    # Ключ -a у команды cp рекурсивно копирует файлы, сохраняя права доступа
    cp -a /tmp/wordpress/. /var/www/your_domain.com/html/
    • Обратите внимание на /. в конце пути источника! Это специальный синтаксис, который означает "скопировать все содержимое каталога, но не сам каталог".

Часть 4: Практика. Шаг 3 и 4: Права доступа и конфигурация

  1. Установим правильного владельца. Файлы сайта должны принадлежать пользователю, от имени которого работает веб-сервер. В Debian/Ubuntu это www-data.

    # chown -R рекурсивно меняет владельца для каталога и всех вложенных файлов
    chown -R www-data:www-data /var/www/your_domain.com/html
  2. Создадим конфигурационный файл. WordPress ищет файл wp-config.php. В дистрибутиве есть пример wp-config-sample.php. Скопируем его.

    cd /var/www/your_domain.com/html
    cp wp-config-sample.php wp-config.php
  3. Отредактируем конфиг. Откроем его в 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+OEnter) и выйдите (Ctrl+X).

Часть 5: Практика. Шаг 5: Финальная настройка Nginx

Чтобы "красивые" ссылки в WordPress (вида https://your_domain.com/my-post/) работали, нужно немного доработать наш конфиг Nginx.

  1. Откройте конфиг вашего сайта:

    nano /etc/nginx/sites-available/your_domain.com
  2. Найдите блок location / { ... } и замените его содержимое. Было: try_files $uri $uri/ =404;Стало:

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    • Что это значит? "Сначала попробуй найти файл ($uri), потом попробуй найти каталог ($uri/). Если ничего не найдено, не отдавай ошибку 404, а передай управление файлу index.php". Именно так работает маршрутизация в WordPress.

  3. Проверяем и перезагружаем Nginx:

    nginx -t
    systemctl reload nginx

Часть 6: Практика. Шаг 6: Установка через веб-интерфейс

Все готово!

  1. Откройте в браузере ваш сайт: https://your_domain.com

  2. Вы увидите знаменитый пятиминутный установщик WordPress.

  3. Выберите язык, придумайте название сайта, логин и пароль для администратора WordPress (не путайте с системными пользователями!).

  4. Нажмите "Установить WordPress".

Поздравляю! Вы только что с нуля развернули полноценный, работающий сайт на WordPress на вашем собственном сервере!

Часть 7: Заключение

Этот урок стал кульминацией всего, что мы изучили в третьем блоке. Вы не просто выполнили набор команд, вы прошли весь путь профессионального системного администратора по развертыванию веб-приложения.

Вы применили на практике:

  • Управление базами данных: Создали изолированную базу и пользователя.

  • Работу с файлами и архивами: Скачали, распаковали и разместили файлы сайта.

  • Управление правами доступа: Настроили правильного владельца для файлов.

  • Настройку Nginx: Адаптировали конфигурацию виртуального хоста для корректной работы с PHP-приложением.

  • Настройку PHP и SSL: Убедились, что весь стек работает вместе.

Теперь вы обладаете всеми базовыми навыками для администрирования хостинга.

На следующем, 53-м уроке, мы сделаем наш сервер еще более безопасным. Мы установим и настроим утилиту fail2ban, которая будет автоматически отслеживать попытки подбора паролей к SSH и другим службам и блокировать IP-адреса атакующих.

Перейти к просмотру - УРОК №53.

подарок Промо-код: PROMO15 - скидка 15%! огонь

Введите при оформлении первого заказа на сайте: Hosting-VDS.com

авторское право цифровые решения

Помог ли вам данный ответ? 0 Пользователи нашли это полезным (0 голосов)