Автоматическая установка WordPress на VPS за 5 минут (Скрипт под ключ)

Готовый bash-скрипт для автоматической установки WordPress на VPS за 5 минут. Nginx + PHP 8.2 + MariaDB + SSL + WP-CLI. Копируй, запускай, работает

🩺 Диагноз: Ты снова тратишь час на то, что делается за 5 минут

Итак, у тебя есть свежий VPS. Ubuntu 22.04, чистый, как слеза. И задача — поднять WordPress. Казалось бы, дело нехитрое. Но ты уже третий раз гуглишь «установка WordPress на Ubuntu», читаешь четыре разных туториала с противоречивыми командами, и где-то на шаге с правами на папку wp-content всё ломается.

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

Что будет в этом рецепте
  • Причины, по которым ручная установка — это боль
  • Готовый bash-скрипт: ставит Nginx, PHP, MariaDB и WordPress одной командой
  • Настройка SSL (HTTPS) — бесплатно, через Let’s Encrypt
  • Автоматическая установка WordPress через WP-CLI (с нужными плагинами)
  • Чеклист «что делать, если всё равно сломалось»
  • Что делать после установки WordPress, чтобы не выстрелить себе в ногу

Обещание: после этой статьи у тебя будет один скрипт, который ты копируешь на сервер, запускаешь и уходишь пить кофе. WordPress поднимется сам. С базой, с Nginx, с SSL и с базовым набором плагинов.

💊 Почему ручная установка WordPress — это страдание

Давай без соплей — вот почему установка CMS WordPress вручную каждый раз превращается в квест:

1. Несоответствие версий PHP

Ubuntu по умолчанию суёт тебе PHP 8.1 или 8.3, а старый шаблон WordPress, который ты тащишь с прошлого проекта, дружит только с 7.4. Итог: белый экран смерти после установки WordPress.

2. Права на файлы выставлены криво

Классика. chmod 777 — это не решение, это приглашение для всех желающих. А правильная схема прав запоминается примерно на третий раз факапа.

3. Конфиг Nginx написан наугад

Скопировал с Stack Overflow, поменял домен — не работает. Потому что там был Apache-конфиг, а ты не заметил. Nginx и Apache — разные существа с разной логикой.

4. База данных создаётся вручную с опечатками

Пароль с пробелом, кодировка не utf8mb4, пользователь без нужных прав — и вот тебе ошибка установки соединения с базой данных WordPress прямо в момент установки. Привет, wp-config.php.

5. SSL настраивается отдельно и потом ломает редиректы

Certbot поставил, сертификат получил, а сайт всё равно открывается по HTTP. Или хуже — бесконечный редирект. Потому что в wp-config.php забыл прописать FORCE_SSL_ADMIN.

По факту: всё это решается один раз — правильным скриптом. Дальше ты просто запускаешь его на каждом новом сервере и не думаешь об этом.

💉 Рецепт: Скрипт автоматической установки WordPress на Ubuntu VPS

Подготовка: что нужно до старта

Перед тем как запускать скрипт, проверь три вещи:

  1. Чистый VPS на Ubuntu 20.04 или 22.04 (рекомендую 22.04 LTS). Другие дистрибутивы — меняй менеджер пакетов, всё остальное то же самое.
  2. Root-доступ по SSH. Или sudo-пользователь — но тогда добавляй sudo перед командами.
  3. Домен, направленный на IP сервера. A-запись должна уже резолвиться. Проверь: ping yourdomain.com должен отвечать с IP твоего VPS. Без этого Let’s Encrypt сертификат не выдаст.
Минимальные требения к VPS
  • ОС: Ubuntu 20.04 / 22.04 LTS
  • RAM: от 1 GB (рекомендую 2 GB, если планируешь больше 3 плагинов)
  • Диск: от 20 GB SSD
  • CPU: 1 vCPU минимум
  • Открытые порты: 22, 80, 443
[СХЕМА: стрелочная схема — VPS → Nginx → PHP-FPM → MariaDB → WordPress, сверху стрелка «Let’s Encrypt SSL»]

Шаг 1: Подключись к серверу и обнови систему

Открой терминал, подключись по SSH и первым делом обнови пакеты. Не пропускай этот шаг — старые пакеты это источник боли номер один.

ssh root@YOUR_SERVER_IP

apt update && apt upgrade -y

Шаг 2: Создай скрипт установки

Скопируй блок ниже целиком. Это основной скрипт. Он делает всё: ставит Nginx, PHP 8.2, MariaDB, создаёт базу, скачивает WordPress, настраивает конфиг, выставляет права, ставит WP-CLI и разворачивает сайт.

Создай файл:

nano /root/install_wordpress.sh

Вставь содержимое (замени переменные в самом начале на свои):

#!/bin/bash
# =============================================
# Доктор IT Аптека — Скрипт установки WordPress
# Версия: 2.0 | Ubuntu 20.04 / 22.04
# =============================================

set -e  # Стоп при любой ошибке

# ========== ПЕРЕМЕННЫЕ — МЕНЯЙ ЗДЕСЬ ==========
DOMAIN="yourdomain.com"                  # Твой домен (без www)
DB_NAME="wordpress_db"                   # Имя базы данных
DB_USER="wp_user"                        # Пользователь БД
DB_PASS="SuperSecretPass123!"            # Пароль БД (поменяй!)
WP_ADMIN_USER="admin"                    # Логин администратора WP
WP_ADMIN_PASS="WpAdmin@2024!"            # Пароль администратора WP (поменяй!)
WP_ADMIN_EMAIL="your@email.com"          # Email администратора
WP_SITE_TITLE="Мой WordPress Сайт"       # Название сайта
PHP_VERSION="8.2"                        # Версия PHP
WP_DIR="/var/www/${DOMAIN}"              # Директория сайта
# ==============================================

echo "====== Доктор IT Аптека: Начало установки WordPress ======"
echo "Домен: $DOMAIN"
echo "PHP: $PHP_VERSION"
echo "Директория: $WP_DIR"

# ----- 1. Обновление системы -----
echo "[1/10] Обновление системы..."
apt update -qq && apt upgrade -y -qq

# ----- 2. Установка Nginx -----
echo "[2/10] Установка Nginx..."
apt install -y nginx
systemctl enable nginx
systemctl start nginx

# ----- 3. Установка PHP и нужных расширений -----
echo "[3/10] Установка PHP ${PHP_VERSION}..."
apt install -y software-properties-common
add-apt-repository -y ppa:ondrej/php
apt update -qq
apt install -y \
    php${PHP_VERSION}-fpm \
    php${PHP_VERSION}-<a class="wpil_keyword_link" href="https://it-apteka.com/tag/mysql/" target="_blank"  rel="noopener" title="MySQL" data-wpil-keyword-link="linked"  data-wpil-monitor-id="1117">mysql</a> \
    php${PHP_VERSION}-curl \
    php${PHP_VERSION}-gd \
    php${PHP_VERSION}-mbstring \
    php${PHP_VERSION}-xml \
    php${PHP_VERSION}-zip \
    php${PHP_VERSION}-bcmath \
    php${PHP_VERSION}-intl \
    php${PHP_VERSION}-imagick \
    php${PHP_VERSION}-soap \
    php${PHP_VERSION}-redis \
    php${PHP_VERSION}-opcache

systemctl enable php${PHP_VERSION}-fpm
systemctl start php${PHP_VERSION}-fpm

# ----- 4. Настройка PHP для WordPress -----
echo "[4/10] Настройка PHP..."
PHP_INI="/etc/php/${PHP_VERSION}/fpm/php.ini"
sed -i "s/upload_max_filesize = .*/upload_max_filesize = 64M/" $PHP_INI
sed -i "s/post_max_size = .*/post_max_size = 64M/" $PHP_INI
sed -i "s/memory_limit = .*/memory_limit = 256M/" $PHP_INI
sed -i "s/max_execution_time = .*/max_execution_time = 300/" $PHP_INI
sed -i "s/;date.timezone.*/date.timezone = Europe\/Moscow/" $PHP_INI

systemctl restart php${PHP_VERSION}-fpm

# ----- 5. Установка MariaDB -----
echo "[5/10] Установка MariaDB..."
apt install -y mariadb-server mariadb-client
systemctl enable mariadb
systemctl start mariadb

# ----- 6. Создание базы данных -----
echo "[6/10] Создание базы данных WordPress..."
mysql -u root <<EOF
CREATE DATABASE IF NOT EXISTS ${DB_NAME} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER IF NOT EXISTS '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASS}';
GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';
FLUSH PRIVILEGES;
EOF
echo "База данных ${DB_NAME} создана."

# ----- 7. Скачивание WordPress -----
echo "[7/10] Скачивание WordPress..."
mkdir -p $WP_DIR
cd /tmp
wget -q https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
cp -a wordpress/. $WP_DIR/
rm -rf /tmp/wordpress /tmp/latest.tar.gz

# ----- 8. Настройка wp-config.php -----
echo "[8/10] Настройка wp-config.php..."
cp ${WP_DIR}/wp-config-sample.php ${WP_DIR}/wp-config.php

# Подставляем данные БД
sed -i "s/database_name_here/${DB_NAME}/" ${WP_DIR}/wp-config.php
sed -i "s/username_here/${DB_USER}/" ${WP_DIR}/wp-config.php
sed -i "s/password_here/${DB_PASS}/" ${WP_DIR}/wp-config.php

# Генерация уникальных ключей безопасности
SALT=$(curl -sL https://api.wordpress.org/secret-key/1.1/salt/)
# Удаляем старые заглушки и вставляем новые ключи
python3 -c "
import re, sys
content = open('${WP_DIR}/wp-config.php').read()
salt = '''${SALT}'''
content = re.sub(r'define\(.AUTH_KEY.+?\n.+?\n.+?\n.+?\n.+?\n.+?\n.+?\n.+?\n', salt + '\n', content, flags=re.DOTALL)
open('${WP_DIR}/wp-config.php', 'w').write(content)
" 2>/dev/null || true

# Добавляем HTTPS и таблицу префикс
cat >> ${WP_DIR}/wp-config.php <<'WPEOF'

/* Принудительный HTTPS */
define('FORCE_SSL_ADMIN', true);
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
}

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

/* Отключение редактора файлов в админке (<a class="wpil_keyword_link" title="Безопасность" href="https://it-apteka.com/category/security/" target="_blank" rel="noopener" data-wpil-keyword-link="linked" data-wpil-monitor-id="1120">безопасность</a>) */
define('DISALLOW_FILE_EDIT', true);
WPEOF

# ----- 9. Права на файлы -----
echo "[9/10] Выставляем права..."
chown -R www-data:www-data $WP_DIR
find $WP_DIR -type d -exec chmod 755 {} \;
find $WP_DIR -type f -exec chmod 644 {} \;

# ----- 10. Конфиг <a href="https://it-apteka.com/kak-uskorit-sajt-na-wordpress-cherez-keshirovanie-v-nginx-recept-dlja-teh-kto-ustal-zhdat/" target="_blank" rel="noopener"  data-wpil-monitor-id="1126">Nginx для WordPress</a> -----
echo &quot;[10/10] Настройка Nginx...&quot;
cat &gt; /etc/nginx/sites-available/${DOMAIN} &lt;&lt;NGINXEOF
server {
    listen 80;
    listen [::]:80;
    server_name ${DOMAIN} www.${DOMAIN};

    root ${WP_DIR};
    index index.php index.html index.htm;

    # Логи
    access_log /var/log/nginx/${DOMAIN}_access.log;
    error_log  /var/log/nginx/${DOMAIN}_error.log;

    # Максимальный размер загрузки
    client_max_body_size 64M;

    # WordPress permalinks
    location / {
        try_files \$uri \$uri/ /index.php?\$args;
    }

    # PHP обработка
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php${PHP_VERSION}-fpm.sock;
        fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_read_timeout 300;
    }

    # Запрет доступа к .htaccess и скрытым файлам
    location ~ /\.ht {
        deny all;
    }

    # Кеширование статики
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|svg|webp)$ {
        expires 30d;
        add_header Cache-Control &quot;public, immutable&quot;;
        log_not_found off;
    }

    # Защита wp-config
    location ~* wp-config.php {
        deny all;
    }

    # Защита xmlrpc (если не используешь)
    location = /xmlrpc.php {
        deny all;
    }
}
NGINXEOF

# Активируем сайт
ln -sf /etc/nginx/sites-available/${DOMAIN} /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default

# Проверка конфига Nginx
nginx -t &amp;&amp; systemctl reload nginx

echo &quot;&quot;
echo &quot;====== Установка завершена! ======&quot;
echo &quot;Сайт временно доступен по: http://${DOMAIN}&quot;
echo &quot;Теперь запусти SSL-настройку (следующий шаг).&quot;
echo &quot;=======================================&quot;

Сохрани файл: Ctrl+X → Y → Enter

Шаг 3: Запусти скрипт

chmod +x /root/install_wordpress.sh
bash /root/install_wordpress.sh

Скрипт работает около 3-5 минут. В конце увидишь сообщение «Установка завершена». Пока он работает — иди за кофе. Ты заслужил.

[СКРИНШОТ: терминал с прогрессом установки, шаги [1/10]…[10/10], финальное сообщение]

Шаг 4: Настройка SSL (HTTPS) через Let’s Encrypt

Бесплатный сертификат. Certbot всё сделает сам — перепишет конфиг Nginx под HTTPS.

# Установка Certbot
apt install -y certbot python3-certbot-nginx

# Получение сертификата (замени domain.com на свой)
certbot --nginx -d yourdomain.com -d www.yourdomain.com \
    --non-interactive \
    --agree-tos \
    --email your@email.com \
    --redirect

# Проверка автообновления
systemctl status certbot.timer

После этой команды Nginx автоматически перенастроится на HTTPS, и сайт будет открываться только по защищённому протоколу. Сертификат обновляется автоматически каждые 60 дней.

Шаг 5: Установка WordPress через WP-CLI (без браузера)

WP-CLI — это командная строка для WordPress. Позволяет завершить установку без мастера в браузере, сразу установить нужные плагины и настроить сайт. По факту это самый быстрый способ.

# Скачиваем WP-CLI
curl -sO https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp

# Проверяем
wp --info --allow-root

Теперь разворачиваем WordPress (замени переменные на свои — те же, что в скрипте выше):

# Переходим в директорию сайта
cd /var/www/yourdomain.com

# Завершаем установку WordPress через WP-CLI
wp core install \
    --url="https://yourdomain.com" \
    --title="Мой WordPress Сайт" \
    --admin_user="admin" \
    --admin_password="WpAdmin@2024!" \
    --admin_email="your@email.com" \
    --allow-root

echo "WordPress установлен!"

Готово. WordPress установлен. Без браузера, без мастера, без «after установки WordPress сайт пишет config».

Шаг 6: Установка базовых плагинов через WP-CLI

Лечим сразу и эту боль. Вот набор плагинов, который я ставлю на каждый новый WordPress:

cd /var/www/yourdomain.com

# Безопасность
wp plugin install wordfence --activate --allow-root

# SEO
wp plugin install wordpress-seo --activate --allow-root

# Кеширование (ускоряет сайт)
wp plugin install w3-total-cache --activate --allow-root

# Резервные копии
wp plugin install updraftplus --activate --allow-root

# Оптимизация изображений
wp plugin install smush --activate --allow-root

# Защита от спама
wp plugin install akismet --activate --allow-root

# Список установленных плагинов
wp plugin list --allow-root
Совет эксперта: Не ставь больше 15-20 плагинов. Каждый плагин — это потенциальная дыра в безопасности и потеря скорости. Ставь только то, что реально используешь.

Шаг 7: Установка шаблона WordPress через WP-CLI

Установка шаблона WordPress вручную через FTP — это 2010 год. Делаем как взрослые люди:

cd /var/www/yourdomain.com

# <a href="https://it-apteka.com/qwen3-coder-next-besplatnyj-ii-dlja-kodinga-lokalno-ustanovka-cli-i-sravnenie-agentov-2026/" title="Qwen3 Coder Next: бесплатный ИИ для кодинга локально — установка, CLI и сравнение агентов 2026" target="_blank" rel="noopener"  data-wpil-monitor-id="1103">Установка популярного бесплатного</a> шаблона Astra
wp theme install astra --activate --allow-root

# Или установка шаблона OceanWP
# wp theme install oceanwp --activate --allow-root

# Или установка шаблона по URL (для платных шаблонов)
# wp theme install https://example.com/my-theme.zip --activate --allow-root

# Список тем
wp theme list --allow-root

Шаг 8: Финальная проверка и настройка постоянных ссылок

cd /var/www/yourdomain.com

# Устанавливаем структуру постоянных ссылок (ЧПУ)
wp rewrite structure '/%postname%/' --allow-root
wp rewrite flush --allow-root

# Устанавливаем часовой пояс
wp option update timezone_string 'Europe/Moscow' --allow-root

# Отключаем комментарии по умолчанию (опционально)
wp option update default_comment_status closed --allow-root

# Проверяем общее состояние
wp core verify-checksums --allow-root
wp plugin verify-checksums --all --allow-root

echo "Всё готово! Открывай https://yourdomain.com"
[СКРИНШОТ: WordPress admin панель сразу после установки, чистый вид с установленными плагинами]

🔧 После установки WordPress: что делать обязательно

Сайт поднят. Но расслабляться рано. Вот минимальный чеклист, который отделяет нормальный продакшн от «сайта, которого взломают через месяц».

Безопасность

cd /var/www/yourdomain.com

# Смена префикса таблиц БД (если не сделал при установке)
# Делать только на пустом сайте!
wp search-replace 'wp_' 'xk7_' --<a class="wpil_keyword_link" href="https://it-apteka.com/category/networks/" target="_blank"  rel="noopener" title="Сети" data-wpil-keyword-link="linked"  data-wpil-monitor-id="1118">network</a> --all-tables --allow-root

# Отключение XML-RPC (если не используешь Jetpack)
wp plugin install disable-xml-rpc --activate --allow-root

# Обновить все плагины и темы
wp plugin update --all --allow-root
wp theme update --all --allow-root

Настройка автоматического резервного копирования

# Создаём скрипт бэкапа
cat > /root/wp_backup.sh <<'BACKUPEOF'
#!/bin/bash
DOMAIN="yourdomain.com"
WP_DIR="/var/www/${DOMAIN}"
BACKUP_DIR="/root/backups/${DOMAIN}"
DATE=$(date +%Y%m%d_%H%M%S)
DB_NAME="wordpress_db"
DB_USER="wp_user"
DB_PASS="SuperSecretPass123!"

mkdir -p $BACKUP_DIR

# Бэкап базы данных
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > ${BACKUP_DIR}/db_${DATE}.sql.gz

# Бэкап файлов (только uploads и wp-content)
tar -czf ${BACKUP_DIR}/files_${DATE}.tar.gz ${WP_DIR}/wp-content/

# Удаляем бэкапы старше 7 дней
find $BACKUP_DIR -name "*.gz" -mtime +7 -delete

echo "Бэкап завершён: ${DATE}"
BACKUPEOF

chmod +x /root/wp_backup.sh

# Добавляем в cron — каждую ночь в 3:00
(crontab -l 2>/dev/null; echo "0 3 * * * /root/wp_backup.sh >> /var/log/wp_backup.log 2>&1") | crontab -

echo "Бэкап настроен. Запускается каждую ночь в 3:00."

Мониторинг сервера (минимальный)

# Установка htop для мониторинга ресурсов
apt install -y htop

# Проверка текущего состояния сервисов
systemctl status nginx
systemctl status php8.2-fpm
systemctl status mariadb

# Проверка логов на ошибки
tail -50 /var/log/nginx/yourdomain.com_error.log
tail -50 /var/log/php8.2-fpm.log

🚨 Осложнения: Что делать, если сломалось

Ошибка 1: «Ошибка установки соединения с базой данных WordPress»

Это самая популярная боль после установки WordPress. Лечится по алгоритму:

# Шаг 1: Проверь, запущена ли MariaDB
systemctl status mariadb

# Если не запущена:
systemctl start mariadb

# Шаг 2: Проверь правильность данных в wp-config.php
grep -E "DB_NAME|DB_USER|DB_PASSWORD|DB_HOST" /var/www/yourdomain.com/wp-config.php

# Шаг 3: Проверь, существует ли база и пользователь
mysql -u root -e "SHOW DATABASES;"
mysql -u root -e "SELECT User, Host FROM mysql.user;"

# Шаг 4: Пересоздай пользователя БД если что-то не так
mysql -u root <<EOF
DROP USER IF EXISTS 'wp_user'@'localhost';
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'SuperSecretPass123!';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EOF

Ошибка 2: Nginx возвращает 502 Bad Gateway

# Проверь, запущен ли PHP-FPM
systemctl status php8.2-fpm

# Перезапусти если надо
systemctl restart php8.2-fpm

# Убедись, что сокет существует
ls -la /var/run/php/php8.2-fpm.sock

# Проверь логи Nginx
tail -20 /var/log/nginx/error.log

Ошибка 3: После установки WordPress сайт пишет «config» или показывает мастер установки заново

# Значит wp-config.php не создан или сломан
ls -la /var/www/yourdomain.com/wp-config.php

# Если файла нет — скопируй из sample
cp /var/www/yourdomain.com/wp-config-sample.php /var/www/yourdomain.com/wp-config.php

# И пропиши данные БД вручную
nano /var/www/yourdomain.com/wp-config.php
# Меняй: database_name_here, username_here, password_here

# Убедись в правах
chown www-data:www-data /var/www/yourdomain.com/wp-config.php
chmod 644 /var/www/yourdomain.com/wp-config.php

Ошибка 4: Certbot не выдаёт сертификат

# Проверь DNS <a href="https://it-apteka.com/nastrojka-ntp-na-mikrotik-klient-i-server-shpargalka-dlja-ros-6-i-7/" title="Настройка NTP на MikroTik: клиент и сервер — шпаргалка для ROS 6 и 7" target="_blank" rel="noopener"  data-wpil-monitor-id="1101">— домен должен резолвиться в IP сервера</a>
dig +short yourdomain.com
curl ifconfig.me  # IP сервера

# Оба значения должны совпадать!

# Проверь, что порт 80 открыт
ufw status
ufw allow 80
ufw allow 443

# Попробуй получить сертификат заново
certbot --nginx -d yourdomain.com -d www.yourdomain.com

Ошибка 5: WordPress работает медленно

# Включаем OPcache в PHP
echo "opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60" >> /etc/php/8.2/fpm/conf.d/10-opcache.ini

systemctl restart php8.2-fpm

# Проверяем через WP-CLI
wp eval 'echo "OPcache: " . (function_exists("opcache_get_status") ? "работает" : "не работает");' --allow-root
Чеклист «Если ничего не помогло»
  1. Проверь логи: tail -50 /var/log/nginx/error.log
  2. Проверь логи PHP: tail -50 /var/log/php8.2-fpm.log
  3. Проверь логи WordPress: включи WP_DEBUG в wp-config.php
  4. Убедись, что все сервисы запущены: nginx, php-fpm, mariadb
  5. Проверь права на файлы: владелец должен быть www-data
  6. Сравни данные в wp-config.php с реальными данными в MySQL

Включение режима отладки WordPress

# Добавляем в wp-config.php (только на время отладки, потом убери!)
sed -i "s/define( 'WP_DEBUG', false );/define( 'WP_DEBUG', true );\ndefine( 'WP_DEBUG_LOG', true );\ndefine( 'WP_DEBUG_DISPLAY', false );/" /var/www/yourdomain.com/wp-config.php

# Смотрим лог ошибок WordPress
tail -f /var/www/yourdomain.com/wp-content/debug.log
[MEM: мем «Я не знаю, что происходит, но оно работает» — кот за рулём машины]

💻 Бонус: Установка WordPress локально (для разработки)

Если тебе нужна установка WordPress на компьютере для разработки — не мучайся с XAMPP. Используй Docker.

# Установи Docker (если нет)
curl -fsSL https://get.docker.com | sh

# Создай папку проекта
mkdir wp-local && cd wp-local

# Создай docker-compose.yml
cat > docker-compose.yml <<'EOF'
version: '3.8'
services:
  db:
    image: mariadb:10.11
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wp_user
      MYSQL_PASSWORD: wp_pass
    volumes:
      - db_data:/var/lib/mysql

  wordpress:
    image: wordpress:php8.2-apache
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wp_user
      WORDPRESS_DB_PASSWORD: wp_pass
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./wp-content:/var/www/html/wp-content
    depends_on:
      - db

volumes:
  db_data:
EOF

# Запускаем
docker compose up -d

echo "WordPress локально доступен по: http://localhost:8080"

Через 30 секунд открывай http://localhost:8080 — WordPress готов к настройке локально. Все файлы темы и плагинов лежат в папке ./wp-content — редактируй прямо с хоста.

✅ Прогноз: Что мы сделали и что получили

Давай подобьём итог. Если ты прошёл по всем шагам, у тебя сейчас есть:

Что сделали Результат
Установили Nginx Быстрый веб-сервер, настроенный под WordPress
Установили PHP 8.2 с расширениями Все нужные модули для WordPress работают
Создали MariaDB и базу данных Правильные права, utf8mb4, нет «ошибки соединения с БД»
Скачали и настроили WordPress Правильный wp-config.php, настроены права файлов
Настроили SSL через Let’s Encrypt HTTPS работает, сертификат обновляется автоматически
Установили плагины через WP-CLI SEO, безопасность, кеш, бэкапы — всё на месте
Настроили автобэкап Ежедневный бэкап БД и файлов в /root/backups/

Весь этот стек — это стандарт продакшн-установки WordPress на VPS. Не «как-нибудь работает», а нормально, с SSL, с правами, с бэкапами.

Время на установку: около 5-7 минут на выполнение скрипта + 2 минуты на SSL + 1 минута на WP-CLI установку. Итого — 10 минут от чистого VPS до работающего WordPress с HTTPS и плагинами.

Что делать дальше

  1. Зайди в https://yourdomain.com/wp-admin и провери, что всё работает
  2. Смени пароль администратора если поставил дефолтный
  3. Настрой Wordfence — он сам подскажет что нужно сделать
  4. Выбери и активируй тему, настрой её
  5. Добавь сайт в Google Search Console
Подписка на новые рецепты

Есть вопросы? Что-то не сработало? Пиши в комментарии — я отвечаю своим коллегам по страданиям.

Подпишись на Telegram-канал IT-Аптека — там новые рецепты без воды: скрипты, конфиги, разборы факапов. Один пост в день. Никакого мотивационного контента.

over_dude
Author: over_dude

Руководитель ИТ / Кризис-менеджер 25 лет в IT: от инженера в МегаФоне до руководителя отдела. Знаю, как выглядит бардак: нестабильные сети, устаревшая инфраструктура, конфликты в команде, раздутые сроки. Помогаю бизнесу выходить из кризиса: навожу порядок в легаси, стабилизирую то, что разваливается, выстраиваю прогнозируемые процессы. Дважды возвращал к жизни ИТ-структуры — знаю цену хаосу. 📍 Ищу проект для полной реорганизации / стабилизации. 📬 Telegram: @over_dude ✉️ mail@it-apteka.com

Оставайтесь на связи

Рецепты от IT-боли. Без воды, без рекламы, без маркетинговой шелухи.

Подписаться на IT-Аптеку →

Мы ВКонтакте

IT-Аптека — советы, новости и помощь рядом.

Вступить в группу ВКонтакте →
Поделитесь:

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх