Перейти к основному содержимому
Вернуться в категорию

Установка и оптимизация WordPress: руководство для VPS

Руководство по установке и оптимизации WordPress на VPS. Настройка LEMP стека, параметры wp-config.php, права доступа к файлам, SSL, оптимизация производительности OPcache и усиление безопасности.

Время чтения: 20 мин Веб-хостинг / Приложения
wordpressvpslempnginxphp-fpmmysqlsslopcacheбезопасность
Автор
REXE Teknoloji Network & Security Team
Редактор
REXE Teknoloji Technical Editorial
Первая публикация
Последнее обновление

Установка и оптимизация WordPress: руководство для VPS

WordPress — самая распространённая система управления контентом в мире. Запуск WordPress на VPS вместо общего хостинга даёт больше контроля, лучшую производительность и возможности настройки. В этом руководстве рассматривается установка, настройка и оптимизация WordPress на стеке LEMP.

Предварительные требования: LEMP стек

hljs bash
# Обновление системы
sudo apt update && sudo apt upgrade -y

# Установка Nginx
sudo apt install nginx -y
sudo systemctl enable nginx

# Установка MariaDB
sudo apt install mariadb-server -y
sudo systemctl enable mariadb
sudo mysql_secure_installation

# Установка PHP 8.2 и необходимых расширений для WordPress
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-xml php8.2-curl \
  php8.2-mbstring php8.2-zip php8.2-gd php8.2-imagick php8.2-intl \
  php8.2-bcmath php8.2-soap -y
sudo systemctl enable php8.2-fpm

Создание базы данных WordPress

hljs sql
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'надёжный-пароль';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Загрузка и установка WordPress

hljs bash
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
sudo mv wordpress /var/www/mysite.com

# Установка прав доступа
sudo chown -R www-data:www-data /var/www/mysite.com
sudo find /var/www/mysite.com -type d -exec chmod 755 {} \;
sudo find /var/www/mysite.com -type f -exec chmod 644 {} \;

Конфигурация wp-config.php

hljs php
// Настройки базы данных
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'надёжный-пароль' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );

// Отключить редактирование файлов (безопасность)
define('DISALLOW_FILE_EDIT', true);

// Принудительный SSL
define('FORCE_SSL_ADMIN', true);

// Лимит памяти
define('WP_MEMORY_LIMIT', '256M');

Конфигурация Nginx (для WordPress)

hljs nginx
server {
    listen 80;
    server_name mysite.com www.mysite.com;
    root /var/www/mysite.com;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location = /xmlrpc.php { deny all; }
    location = /wp-config.php { deny all; }
    location ~ /\. { deny all; }

    location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|svg)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }

    client_max_body_size 64M;
}
hljs bash
sudo ln -s /etc/nginx/sites-available/mysite.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

SSL-сертификат

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

Оптимизация PHP (OPcache)

hljs ini
opcache.enable = 1
opcache.memory_consumption = 256
opcache.max_accelerated_files = 10000
opcache.revalidate_freq = 2
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_vars = 3000

Усиление безопасности WordPress

hljs bash
# Защита wp-config.php
sudo chmod 600 /var/www/mysite.com/wp-config.php

Установите права доступа к wp-config.php на 600. Этот файл содержит пароль от базы данных.

На серверах REXE для WordPress рекомендуется минимум 2 ГБ ОЗУ. Для сайтов с высоким трафиком предпочтительнее 4 ГБ+ ОЗУ и SSD-диск.

Заключение

Ваш сайт WordPress теперь работает на стеке LEMP на VPS, защищён SSL и оптимизирован с OPcache. Поддерживайте сайт в рабочем состоянии с помощью регулярных резервных копий, обновлений безопасности и мониторинга производительности.

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

При установке WordPress получаю ошибку 'Error establishing a database connection'.

Проверьте значения DB_NAME, DB_USER, DB_PASSWORD и DB_HOST в wp-config.php. Убедитесь, что MySQL работает: 'sudo systemctl status mariadb'. Проверьте права доступа пользователя к базе данных SQL-командой 'SHOW GRANTS FOR wpuser@localhost;'.

Не могу войти в панель администратора WordPress, что делать?

Проверьте правильность директивы try_files в конфигурации Nginx. Убедитесь, что PHP-FPM работает: 'sudo systemctl status php8.2-fpm'. Просмотрите журнал ошибок Nginx: 'sudo tail -f /var/log/nginx/mysite.com.error.log'.

Не могу загружать изображения в WordPress, получаю ошибку размера файла.

Увеличьте upload_max_filesize и post_max_size в php.ini (например, 64M). Также увеличьте client_max_body_size в Nginx до того же значения. Перезапустите PHP-FPM и Nginx. Добавьте 'define("WP_MAX_MEMORY_LIMIT", "256M");' в wp-config.php.

Сайт WordPress работает медленно, как его ускорить?

Включите OPcache, используйте Nginx FastCGI Cache. Установите плагин W3 Total Cache или WP Super Cache. Используйте CDN (Cloudflare). Добавьте плагин Smush или ShortPixel для оптимизации изображений. Регулярно оптимизируйте базу данных с помощью WP-CLI.

Связанные статьи

Деплой Node.js приложения: PM2 и Nginx

Полное руководство по развёртыванию Node.js приложений на VPS. Установка Node.js через nvm, менеджер процессов PM2, обратный прокси Nginx, SSL-сертификат и управление переменными окружения.

15 мин
nodejspm2nginx

Деплой PHP приложения: LAMP и LEMP стек

Полное руководство по развёртыванию PHP приложений на VPS. Сравнение LAMP и LEMP, настройка Apache/Nginx + PHP-FPM + MySQL, конфигурация виртуальных хостов и управление версиями PHP.

18 мин
phplamplemp

Деплой Python/Django: продакшен с Gunicorn и Nginx

Руководство по развёртыванию Python/Django приложений на VPS. Настройка virtualenv, производственные настройки Django, WSGI-сервер Gunicorn, обратный прокси Nginx, systemd-сервис и управление статическими файлами.

18 мин
pythondjangogunicorn
Сетевой трафикВходящий GbpsИсходящий Gbps