Установка WordPress на Ubuntu с Nginx - Пошаговая инструкция 2024 | AdminWiki

Установка WordPress на Ubuntu с Nginx: Полное руководство для разработчиков

17 декабря 2025 7 мин. чтения #devops #linux #nginx #ubuntu #wordpress #веб-разработка

Представь, что тебе нужно развернуть быстрый и безопасный WordPress-сайт на Ubuntu сервере. В этом руководстве я, как Senior DevOps, покажу тебе профессиональный подход к установке WordPress на Ubuntu с использованием Nginx вместо Apache. Мы разберем каждый шаг — от настройки сервера до оптимизации производительности.

Что тебе понадобится перед началом

  • Сервер Ubuntu 20.04 или 22.04 LTS
  • Доступ по SSH с правами sudo
  • Зарегистрированное доменное имя (или IP-адрес)
  • Базовые знания командной строки Linux
Важно: Все команды в этом руководстве выполняются от имени пользователя с правами sudo. Если ты используешь root, убери "sudo" из команд.

Шаг 1: Обновление системы и установка базовых пакетов

Давай начнем с подготовки системы. Сначала обновим пакеты и установим необходимые инструменты:

bash
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl wget gnupg2 software-properties-common

Шаг 2: Установка и настройка Nginx для WordPress

Nginx — наш выбор для высокой производительности. Установим его и настроим базовую конфигурацию:

bash
sudo apt install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx

Настройка Nginx для WordPress

Создадим конфигурационный файл для нашего сайта. Замени example.com на твой домен:

bash
sudo nano /etc/nginx/sites-available/wordpress

Добавь следующую конфигурацию:

nginx
server {
    listen 80;
    listen [::]:80;
    
    server_name example.com www.example.com;
    root /var/www/wordpress;
    index index.php index.html index.htm;
    
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
    location ~ /\.ht {
        deny all;
    }
    
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }
    
    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }
    
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }
}
Внимание: Не забудь заменить example.com на твой реальный домен и путь к PHP-FPM сокету в соответствии с установленной версией PHP.

Активируем конфигурацию и проверяем синтаксис:

bash
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Шаг 3: Установка MySQL/MariaDB и создание базы данных

WordPress требует базу данных. Установим MariaDB (совместимую с MySQL) и создадим БД:

bash
sudo apt install -y mariadb-server mariadb-client
sudo mysql_secure_installation

Создадим базу данных и пользователя для WordPress:

bash
sudo mysql -u root -p
# В консоли MySQL выполни:
CREATE DATABASE wordpress_db;
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Шаг 4: Установка PHP и необходимых расширений

WordPress требует PHP с определенными расширениями. Установим PHP 8.1 (или актуальную версию):

bash
sudo apt install -y php8.1-fpm php8.1-mysql php8.1-curl \
php8.1-gd php8.1-mbstring php8.1-xml php8.1-xmlrpc \
php8.1-zip php8.1-opcache php8.1-intl

Настройка PHP-FPM для оптимальной производительности

Отредактируем настройки PHP-FPM для лучшей производительности WordPress:

bash
sudo nano /etc/php/8.1/fpm/php.ini

Найди и измени следующие параметры:

ini
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 300
bash
sudo systemctl restart php8.1-fpm

Шаг 5: Установка WordPress

Теперь установим сам WordPress. Создадим директорию и скачаем последнюю версию:

bash
sudo mkdir -p /var/www/wordpress
cd /var/www/wordpress
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz --strip-components=1
sudo rm latest.tar.gz

Настроим права доступа:

bash
sudo chown -R www-data:www-data /var/www/wordpress
sudo chmod -R 755 /var/www/wordpress
sudo find /var/www/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/wordpress -type f -exec chmod 644 {} \;

Настройка wp-config.php

Создадим файл конфигурации WordPress:

bash
cd /var/www/wordpress
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php

Обнови следующие строки с твоими данными:

php
define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wordpress_user');
define('DB_PASSWORD', 'StrongPassword123!');
define('DB_HOST', 'localhost');

Добавь уникальные ключи безопасности (сгенерируй новые на https://api.wordpress.org/secret-key/1.1/salt/):

php
define('AUTH_KEY',         'вставь_свой_уникальный_ключ');
define('SECURE_AUTH_KEY',  'вставь_свой_уникальный_ключ');
define('LOGGED_IN_KEY',    'вставь_свой_уникальный_ключ');
define('NONCE_KEY',        'вставь_свой_уникальный_ключ');
define('AUTH_SALT',        'вставь_свой_уникальный_ключ');
define('SECURE_AUTH_SALT', 'вставь_свой_уникальный_ключ');
define('LOGGED_IN_SALT',   'вставь_свой_уникальный_ключ');
define('NONCE_SALT',       'вставь_свой_уникальный_ключ');

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

Открой браузер и перейди по адресу твоего домена (или IP-адресу сервера). Ты увидишь мастер установки WordPress:

Данные для входа в мастер установки:

  • Название сайта: Придумай название
  • Имя пользователя: Не используй "admin"
  • Пароль: Сгенерируй сложный пароль
  • Email: Твой реальный email

Шаг 7: Настройка SSL/TLS (HTTPS)

Для безопасности настроим SSL с помощью Let's Encrypt:

bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

Настрой автоматическое обновление сертификатов:

bash
sudo certbot renew --dry-run

Оптимизация производительности WordPress на Nginx

Кэширование в Nginx

Добавь кэширование статики в конфигурацию Nginx:

nginx
# Добавь в server блок:
open_file_cache max=1000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;

Настройка кэширования в WordPress

Установи плагины для кэширования:

  • WP Rocket (премиум)
  • W3 Total Cache (бесплатный)
  • WP Super Cache (бесплатный)

Мониторинг и обслуживание

Задача Команда Частота
Обновление системы sudo apt update && sudo apt upgrade Еженедельно
Обновление WordPress Через админ-панель При выходе обновлений
Проверка логов sudo tail -f /var/log/nginx/error.log При проблемах
Резервное копирование sudo tar -czf backup.tar.gz /var/www/wordpress Ежедневно

Часто задаваемые вопросы (FAQ)

Почему выбирать Nginx вместо Apache для WordPress?

Nginx лучше обрабатывает высокие нагрузки, эффективнее использует память и имеет более простую конфигурацию для кэширования. Для WordPress с большим трафиком Nginx показывает лучшую производительность.

Как настроить мультисайтовость WordPress на Nginx?

Используй директиву server_name с wildcard: server_name ~^(www\\.)?(.+)\\.example\\.com$; и настрой соответствующие правила rewrite в location блоках.

Как оптимизировать загрузку изображений в WordPress на Nginx?

Используй модуль ngx_pagespeed или настрой сжатие gzip/brotli в Nginx. Также установи плагины для ленивой загрузки (lazy load) и оптимизации изображений (например, Imagify или ShortPixel).

Как защитить WordPress от брутфорс атак на Nginx?

Настрой rate limiting в Nginx: limit_req_zone $binary_remote_addr zone=wpadmin:10m rate=1r/s; и примени к location /wp-admin и /wp-login.php. Также используй плагины безопасности вроде Wordfence.

Профессиональный совет: Для продакшн-среды настрой мониторинг (Prometheus + Grafana) и алертинг. Используй CI/CD для автоматического развертывания обновлений WordPress.

Заключение

Ты успешно установил WordPress на Ubuntu с Nginx. Помни, что это базовая настройка. Для продакшн-среды обязательно:

  • Настрой брандмауэр (UFW)
  • Внедри систему резервного копирования
  • Настрой мониторинг ресурсов сервера
  • Регулярно обновляй WordPress и плагины
  • Используй CDN для статического контента

Эта конфигурация обеспечит тебе быстрый, безопасный и масштабируемый WordPress сайт. Для высоконагруженных проектов рассмотри возможность добавления кэширующего прокси (Varnish) и балансировщика нагрузки.

Поделиться:
Сохранить гайд? В закладки браузера