Гид по технологиям

Установка WordPress на AlmaLinux 8 с Apache и Let's Encrypt

• 5 min read • Linux • Обновлено 23 Nov 2025
Установка WordPress на AlmaLinux 8 с Apache и SSL
Установка WordPress на AlmaLinux 8 с Apache и SSL

Иллюстрация: установка WordPress на AlmaLinux

О чём этот гид

Этот материал описывает полный процесс установки WordPress на AlmaLinux 8 с использованием Apache и автоматическим получением сертификата SSL от Let’s Encrypt (через Certbot). Подойдёт системным администраторам и разработчикам, которые настраивают сайты вручную на собственной инфраструктуре.

Важно — термины в одной строке:

  • LAMP: стек Linux, Apache, MariaDB, PHP.
  • Certbot: клиент для автоматической выдачи/обновления сертификатов Let’s Encrypt.

Требования перед началом

  • Сервер с AlmaLinux 8 и доступом по root (или sudo).
  • Доменное имя, указывающее на IP сервера (A-запись).
  • Открытые порты 80 и 443 в провайдерском/виртуальном брандмауэре.

Шаг 1 — Установка LAMP

WordPress требует веб‑сервер, СУБД и PHP. Выполните на сервере:

dnf install httpd mariadb-server php php-mysqlnd php-dom php-simplexml php-xml php-xmlreader php-curl php-exif php-ftp php-gd php-iconv php-json php-mbstring php-posix php-sockets php-tokenizer unzip -y

Запустите и включите сервисы при старте системы:

systemctl start mariadb
systemctl start httpd
systemctl enable mariadb
systemctl enable httpd

Примечание: если на сервере включён SELinux, убедитесь, что контекст web‑директорий и модулей PHP настроен корректно (раздел «Усиление безопасности» ниже).

Шаг 2 — Настройка MariaDB

Запустите встроенный скрипт безопасности MariaDB:

mysql_secure_installation

Ответьте утилите, задав root‑пароль и отказавшись от анонимных и тестовых баз. Затем войдите в MariaDB:

mysql -u root -p

Создайте базу данных и пользователя для WordPress (замените пароль на длинную случайную строку):

MariaDB [(none)]> CREATE DATABASE wordpress;
MariaDB [(none)]> CREATE USER `wordpress`@`localhost` IDENTIFIED BY 'password';
MariaDB [(none)]> GRANT ALL ON wordpress.* TO `wordpress`@`localhost`;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Критерии приёмки: при подключении к базе под этим пользователем можно создавать и читать таблицы.

Шаг 3 — Загрузка WordPress

Перейдите в корень веб‑сервера и скачайте официальный архив:

cd /var/www/html
wget https://wordpress.org/latest.tar.gz

Распакуйте и подготовьте конфигурацию:

tar -xvzf latest.tar.gz
cd wordpress
mv wp-config-sample.php wp-config.php
nano wp-config.php

В файле wp-config.php задайте параметры доступа к базе:

/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

/** MySQL database username */
define( 'DB_USER', 'wordpress' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

Сохраните и назначьте правильного владельца каталогу:

chown -R apache:apache /var/www/html/wordpress

Совет по безопасности: используйте уникальную случайную строку для DB_PASSWORD и обновите ключи безопасности в wp-config.php (сервис: https://api.wordpress.org/secret-key/1.1/salt/).

Шаг 4 — Настройка виртуального хоста Apache

Создайте файл конфигурации для сайта:

nano /etc/httpd/conf.d/wordpress.conf

Вставьте (отредактируйте ServerName и адреса логов):


   ServerAdmin [email protected]
   DocumentRoot "/var/www/html/wordpress"
   ServerName wordpress.example.com
   ErrorLog "/var/log/httpd/example.com-error_log"
   CustomLog "/var/log/httpd/example.com-access_log" combined


   DirectoryIndex index.html index.php
   Options FollowSymLinks
   AllowOverride All
   Require all granted

Перезапустите Apache и проверьте статус:

systemctl restart httpd
systemctl status httpd

Если статус active (running), продолжайте.

Шаг 5 — Получение SSL от Let’s Encrypt

Установите Certbot и плагин для Apache:

dnf install epel-release -y

dnf install certbot python3-certbot-apache -y

Запросите и автоматически установите сертификат (замените домен):

certbot --apache -d wordpress.example.com

Следуйте интерактивным подсказкам: укажите email, согласитесь с условиями. Certbot обновит виртуальный хост и предложит редирект 80→443.

Важная заметка: certbot создает файлы в /etc/letsencrypt/live/DOMAIN/. Для автоматического обновления добавьте в crontab или systemd‑таймер: certbot renew.

Шаг 6 — Настройка брандмауэра

Разрешите HTTP и HTTPS через firewalld:

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Проверьте, что порты открыты: ss -tnlp | grep httpd.

Шаг 7 — Доступ к панели администратора

Откройте браузер https://wordpress.example.com и пройдите визуальную установку.

Выбор языка при установке WordPress

Выберите язык и нажмите Продолжить. Введите данные сайта:

Страница ввода данных сайта WordPress

После успешной установки увидите подтверждение:

Успешная установка WordPress

Войдите в админку:

Вход в WordPress

Панель администратора должна открыться по адресу /wp-admin:

Панель управления WordPress

Усиление безопасности (основные шаги)

  • Используйте сильные пароли и двухфакторную аутентификацию для админов.
  • Ограничьте доступ по IP к /wp-admin, если это возможно.
  • Регулярно обновляйте ядро, темы и плагины.
  • Резервное копирование: файлы + дамп базы не реже, чем раз в сутки для активных сайтов.
  • Настройте SELinux: если включён, установите контекст: restorecon -Rv /var/www/html/wordpress и при необходимости setsebool -P httpd_can_network_connect on.

Экспертная мысль: «Правильная комбинация обновлений, ограничений доступа и регулярных бэкапов минимизирует большинство эксплуатационных рисков.»

Алгоритм отката (короткий план)

  1. Отключить сайт в Apache: переименовать конфиг или удалить symlink.
  2. Восстановить файлы из последней резервной копии.
  3. Восстановить дамп БД: mysql -u root -p wordpress < backup.sql.
  4. Проверить логи /var/log/httpd/* и /var/log/messages.
  5. При проблемах со SSL — временно снять редирект в конфигурации и перезапустить httpd.

Когда этот способ не подходит

  • У вас плановый хостинг с собственной панелью (используйте её инструменты).
  • Нужна горизонтальная масштабируемость и автоматическая конфигурация — рассмотрите Docker/Kubernetes и разделение файлов/БД.
  • Если вы используете Nginx, инструкции для Apache не применимы напрямую.

Альтернативные подходы

  • Nginx + PHP‑FPM: более экономно расходует память при большом количестве соединений.
  • Docker: контейнеризация упрощает миграцию и масштабирование (официальный образ WordPress + отдельный контейнер для MariaDB).
  • Управляемый WordPress‑хостинг: для автообновлений и резервного копирования без ручной настройки сервера.

Чек‑лист ролей

  • Системный администратор:
    • Установил пакеты, настроил Apache и MariaDB, настроил брандмауэр и SELinux.
    • Настроил автоматическое обновление сертификатов.
  • Разработчик/DevOps:
    • Настроил wp-config.php, проверил права доступа и интеграцию с CI/CD.
  • Контент‑редактор:
    • Проверил доступ к /wp-admin, загрузил тестовую запись и изображение.

Тесты и критерии приёмки

  • Сайт отвечает по HTTPS без предупреждений браузера.
  • Веб‑страница главной открывается и отображает вкладку администратора.
  • Подключение к базе работает под учётной записью wordpress и можно создать таблицу.
  • Certbot имеет запись о сертификате в /etc/letsencrypt/live/DOMAIN/.

Краткие определения (глоссарий)

  • LAMP: базовый стек для PHP‑приложений — Linux, Apache, MariaDB, PHP.
  • Certbot: клиент для работы с ACME‑сервером Let’s Encrypt.
  • SELinux: механизм мандатного контроля доступа в ядре Linux.

Частые ошибки и их устранение

  • 403 Forbidden: проверьте права/владельца файлов и директиву AllowOverride All, а также SELinux‑контекст.
  • 500 Internal Server Error: посмотрите логи Apache и PHP, временно включите WP_DEBUG в wp-config.php.
  • Проблемы с renew: настройте cron/systemd‑таймер и проверяйте логи /var/log/letsencrypt/letsencrypt.log.

Локальные советы для России и СНГ

  • Проверьте, что ваш регистратор/провайдер DNS не кэширует старые записи; при смене A‑записи учитывайте TTL.
  • Если провайдер блокирует исходящие порты, Certbot может не пройти валидацию — используйте DNS‑challenge как вариант.

Итог

Вы установили WordPress на AlmaLinux 8 с Apache и настроили бесплатный SSL от Let’s Encrypt. Дальше: настройте резервное копирование, автоматические обновления и мониторинг.

Важно: используйте уникальные пароли и регулярно обновляйте компоненты.

Краткое резюме в конце:

  • Установили LAMP, создали базу, загрузили WordPress.
  • Настроили Apache и Certbot для HTTPS.
  • Добавлены рекомендации по безопасности, откату и альтернативы.

Если нужны команды для автоматизации, примеры systemd‑таймера для certbot или Docker‑compose‑шаблон — могу подготовить отдельно.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро