WordPress — самая популярная система управления контентом (CMS) в мире. На ней работает более 40% всех сайтов в интернете. Но чтобы WordPress заработал на вашем Debian, нужно установить не только файлы CMS, но и полноценный веб-сервер: Apache, базу данных MariaDB и PHP с необходимыми модулями.
В этом руководстве я покажу полную установку WordPress на Debian с нуля:
- LAMP стек (Apache + MariaDB + PHP) из официальных репозиториев
- Скачивание и настройка WordPress
- Создание базы данных и пользователя
- Настройка виртуального хоста Apache
- Защита сайта с помощью Let’s Encrypt (HTTPS)
- Настройка UFW файрвола
- Решение типичных проблем
Всё это работает на Debian 13 (Trixie), Debian 12 (Bookworm) и Debian 11 (Bullseye).
Предварительные требования
Перед установкой убедитесь, что:
- У вас есть доменное имя, привязанное к IP-адресу вашего сервера (для HTTPS обязательно)
- Открыты порты 80 (HTTP) и 443 (HTTPS) в настройках сети (хостинг/маршрутизатор)
- Вы имеете права
sudo(администратора) - Сервер имеет статический IP-адрес (рекомендуется)
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.
✅ Ожидаемый вывод в терминале:
root
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
Обновление системы
Перед установкой любых пакетов обновите списки репозиториев и установите последние обновления:
sudo apt update && sudo apt upgrade -y
Что делает:
apt update— обновляет список доступных пакетов из репозиториевapt upgrade -y— обновляет все установленные пакеты до свежих версий,-yавтоматически подтверждает обновление
Зачем: Снижает риск конфликтов зависимостей и обеспечивает безопасность системы.
Установка Apache
Apache HTTP Server — это веб-сервер, который будет обрабатывать HTTP-запросы к вашему сайту.
Установка пакета
sudo apt install -y apache2
Что делает: Устанавливает Apache из официальных репозиториев Debian.
Что значит -y: Автоматически подтверждает установку (не нужно нажимать Y).
Проверка установки
Проверьте версию Apache:
sudo apache2ctl -v
✅ Ожидаемый вывод:
Server version: Apache/2.4.x (Debian)
Server built: 2026-xx-xx
Проверьте статус сервиса:
systemctl status apache2
✅ Ожидаемый вывод: Строка Active: active (running)
Если сервис не запущен, запустите его:
sudo systemctl enable apache2 --now
Что делает: enable — добавляет Apache в автозагрузку, --now — запускает сразу.
Включение необходимых модулей Apache
WordPress нуждается в модуле mod_rewrite для работы ЧПУ (человекопонятных URL) и mod_ssl для HTTPS.
sudo a2enmod rewrite ssl
sudo systemctl restart apache2
Что делает:
a2enmod— включает модуль Apacherewrite— позволяет использовать.htaccessдля перезаписи URLssl— обеспечивает поддержку HTTPS
Проверка Apache в браузере
Откройте браузер и перейдите по адресу http://IP-вашего-сервера. Если вы видите стандартную страницу «Apache2 Debian Default Page» — Apache работает.
Установка MariaDB
MariaDB — это система управления базами данных (рекомендуемая замена MySQL). Она будет хранить все данные WordPress: посты, страницы, настройки и т.д.
Установка пакета
sudo apt install -y mariadb-server mariadb-client
Что делает: Устанавливает сервер и клиент MariaDB.
Проверка версии
mariadb --version
✅ Ожидаемый вывод (зависит от версии Debian):
- Debian 13:
mariadb from 11.8.x-MariaDB - Debian 12:
mariadb from 10.11.x-MariaDB - Debian 11:
mariadb from 10.5.x-MariaDB
Проверка статуса сервиса
systemctl status mariadb
✅ Ожидаемый вывод: Active: active (running)
Если не запущен:
sudo systemctl enable mariadb --now
Безопасная настройка MariaDB
Сразу после установки MariaDB имеет уязвимые настройки по умолчанию (пустой пароль root, анонимные пользователи, тестовая база данных). Запустите скрипт безопасной настройки:
sudo mariadb-secure-installation
Что делает: Интерактивный скрипт для повышения безопасности.
Рекомендуемые ответы:
| Вопрос | Ответ | Почему |
|---|---|---|
| Enter current password for root (enter for none) | Enter (нажать Enter) | Пароль root пуст по умолчанию |
| Switch to unix_socket authentication | Y | Использовать системную аутентификацию |
| Change the root password? | n | Оставляем без пароля (безопасно через unix_socket) |
| Remove anonymous users? | Y | Удаляем анонимных пользователей |
| Disallow root login remotely? | Y | Запрещаем root-доступ по сети |
| Remove test database and access to it? | Y | Удаляем тестовую базу |
| Reload privilege tables now? | Y | Применяем изменения |
Установка PHP
PHP — это язык программирования, на котором написан WordPress. Нужно установить PHP и модули, необходимые для работы WordPress.
Установка PHP и модулей
sudo apt install -y php libapache2-mod-php php-cli php-common php-zip php-curl php-mysql php-xml php-mbstring php-gd
Что делает: Устанавливает PHP и следующие модули:
libapache2-mod-php— интеграция PHP с Apachephp-cli— командная строка PHPphp-zip— работа с ZIP-архивами (обновления, плагины)php-curl— отправка HTTP-запросов из PHPphp-mysql— подключение к MariaDB/MySQLphp-xml— работа с XML и DOMphp-mbstring— многобайтовые строки (кириллица)php-gd— обработка изображений
Проверка версии PHP
php -v
✅ Ожидаемый вывод (зависит от версии Debian):
- Debian 13:
PHP 8.4.x - Debian 12:
PHP 8.2.x - Debian 11:
PHP 7.4.x
Перезапуск Apache для загрузки PHP
sudo systemctl restart apache2
Зачем: Модуль PHP загружается в Apache только после перезапуска.
Скачивание и настройка WordPress
Установка wget (если не установлен)
sudo apt install -y wget
Что делает: Утилита для скачивания файлов из командной строки.
Скачивание последней версии WordPress
wget https://wordpress.org/latest.tar.gz
Что делает: Скачивает архив с WordPress в текущую директорию.
Распаковка архива
sudo tar -xzf latest.tar.gz -C /var/www/html/
Что делает:
tar -xzf— распаковывает архивlatest.tar.gz— имя скачанного файла-C /var/www/html/— изменяет целевую директорию на/var/www/html/
После распаковки все файлы WordPress окажутся в /var/www/html/wordpress/.
Настройка прав и владельца
WordPress должен иметь возможность устанавливать плагины, загружать изображения и обновляться. Для этого нужно, чтобы владельцем файлов был пользователь www-data (от которого работает Apache).
Измените владельца:
sudo chown -R www-data:www-data /var/www/html/wordpress/
Что делает: chown -R — рекурсивно меняет владельца и группу.
Установите правильные права:
sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;
Что делает:
find ... -type d— находит все директории-exec chmod 755 {} \;— применяет к каждой директории права755(rwxr-xr-x)find ... -type f— находит все файлы-exec chmod 644 {} \;— применяет к каждому файлу права644(rw-r—r—)
Создание базы данных для WordPress
Шаг 1: Войдите в MariaDB
sudo mariadb
Что делает: Открывает интерактивную оболочку MariaDB с правами администратора.
Шаг 2: Создайте базу данных
CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Что делает: Создаёт базу данных с именем wordpress, поддерживающую полный набор символов UTF-8 (нужен для эмодзи и всех языков мира).
Шаг 3: Создайте пользователя базы данных
Замените 'strong-password-here' на надёжный пароль и запомните его!
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'strong-password-here';
Что делает: Создаёт пользователя wpuser, который может подключаться только с localhost (той же машины).
Шаг 4: Дайте права пользователю
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
Что делает: Даёт пользователю wpuser полный доступ к базе данных wordpress.
Шаг 5: Примените изменения и выйдите
FLUSH PRIVILEGES;
EXIT;
Что делает: FLUSH PRIVILEGES — обновляет права доступа; EXIT — выходит из MariaDB.
Настройка файла конфигурации WordPress
Перейдите в директорию WordPress
cd /var/www/html/wordpress/
Скопируйте файл примера конфигурации
sudo mv wp-config-sample.php wp-config.php
Что делает: Переименовывает wp-config-sample.php в wp-config.php (файл, который WordPress реально читает).
Отредактируйте конфигурацию
sudo nano wp-config.php
Что делает: Открывает файл в текстовом редакторе nano.
Обновите настройки подключения к БД
Найдите эти строки и замените их на ваши данные:
// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );
/** Database username */
define( 'DB_USER', 'wpuser' );
/** Database password */
define( 'DB_PASSWORD', 'strong-password-here' );
/** Database hostname */
define( 'DB_HOST', 'localhost' );
/** Database charset to use in creating database tables */
define( 'DB_CHARSET', 'utf8mb4' );
/** The database collate type. Don't change this if in doubt */
define( 'DB_COLLATE', '' );
Добавьте дополнительные настройки (опционально, но рекомендуется)
Вставьте эти строки перед строкой /* That's all, stop editing! Happy publishing. */:
/** Прямая запись файлов (для обновлений и плагинов) */
define( 'FS_METHOD', 'direct' );
/** Увеличение лимита памяти для WordPress */
define( 'WP_MEMORY_LIMIT', '256M' );
Что делает:
FS_METHOD, ‘direct’ — разрешает WordPress устанавливать обновления напрямую (без FTP)WP_MEMORY_LIMIT, ‘256M’ — увеличивает лимит памяти (полезно для больших сайтов)
Сохраните файл
В nano:
Ctrl+O(сохранить)Enter(подтвердить имя файла)Ctrl+X(выйти)
Сгенерируйте уникальные ключи безопасности
WordPress требует сгенерировать уникальные «соли» (salts) для шифрования cookies.
Получите ключи с официального API:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
Что делает: Выводит 8 строк с уникальными ключами.
Пример вывода:
define('AUTH_KEY', 'уникальная-строка-1');
define('SECURE_AUTH_KEY', 'уникальная-строка-2');
define('LOGGED_IN_KEY', 'уникальная-строка-3');
define('NONCE_KEY', 'уникальная-строка-4');
define('AUTH_SALT', 'уникальная-строка-5');
define('SECURE_AUTH_SALT', 'уникальная-строка-6');
define('LOGGED_IN_SALT', 'уникальная-строка-7');
define('NONCE_SALT', 'уникальная-строка-8');
Скопируйте эти строки и вставьте в wp-config.php вместо существующих пустых строк с define('AUTH_KEY', '...').
⚠️ Важно: Не пропускайте этот шаг! Это критически важно для безопасности вашего сайта.
Настройка виртуального хоста Apache
Создайте конфигурационный файл для вашего сайта
Замените example.com на ваше реальное доменное имя:
sudo nano /etc/apache2/sites-available/example.com.conf
Содержимое файла (замените example.com на ваш домен):
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html/wordpress
<Directory "/var/www/html/wordpress">
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/wordpress.error.log
CustomLog ${APACHE_LOG_DIR}/wordpress.access.log combined
</VirtualHost>
Что означают директивы:
ServerName— основное доменное имяServerAlias— дополнительные имена (www)DocumentRoot— путь к файлам сайтаAllowOverride All— разрешает WordPress использовать.htaccessдля настройки ЧПУRequire all granted— разрешает доступ к сайту всемErrorLog/CustomLog— пути к логам ошибок и доступа
Проверьте конфигурацию
sudo apache2ctl configtest
✅ Ожидаемый вывод: Syntax OK
Если вы видите предупреждение о FQDN (полное доменное имя сервера), его можно игнорировать.
Включите виртуальный хост
sudo a2ensite example.com.conf
Что делает: a2ensite — включает сайт (создаёт символическую ссылку в /etc/apache2/sites-enabled/).
Отключите стандартный сайт по умолчанию
sudo a2dissite 000-default.conf
Что делает: Отключает дефолтную заглушку Apache.
Перезапустите Apache
sudo systemctl restart apache2
Завершение установки WordPress через веб-интерфейс
Шаг 1: Откройте браузер и перейдите на ваш сайт
http://example.com
(замените example.com на ваш домен или IP-адрес)
Шаг 2: Выберите язык
На первом экране выберите язык интерфейса WordPress.
Шаг 3: Заполните информацию об администраторе
| Поле | Что делать |
|---|---|
| Название сайта | Придумайте название |
| Имя пользователя | Введите уникальное имя (не admin) |
| Пароль | Используйте надёжный пароль (можно сгенерировать автоматически) |
| Ваш email | Укажите рабочий email |
| Видимость для поисковиков | Для тестового сайта — отметьте «Не индексировать» |
Шаг 4: Нажмите «Установить WordPress»
После успешной установки вы увидите сообщение об успехе и кнопку «Войти».
Настройка HTTPS с Let’s Encrypt (рекомендуется)
Let’s Encrypt предоставляет бесплатные SSL-сертификаты. WordPress должен работать по HTTPS, особенно если вы собираетесь принимать платежи или обрабатывать личные данные.
Установка Certbot
sudo apt install -y python3-certbot-apache
Что делает: Устанавливает утилиту Certbot с плагином для автоматической настройки Apache.
Получение SSL-сертификата
⚠️ Перед выполнением убедитесь:
- Ваше доменное имя указывает на IP-адрес сервера (A-запись в DNS)
- Порты 80 и 443 открыты в файрволе
Замените you@example.com на ваш email и example.com на ваш домен:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d example.com -d www.example.com
Что означают флаги:
--apache— автоматически настроить Apache--agree-tos— согласиться с условиями Let’s Encrypt--redirect— перенаправлять HTTP → HTTPS--hsts— включить HTTP Strict Transport Security--staple-ocsp— повысить производительность проверки сертификатов-d— домен (можно несколько)
Проверка автоматического обновления сертификатов
Let’s Encrypt сертификаты действуют 90 дней. Certbot автоматически обновляет их через systemd-таймер.
Проверьте статус таймера:
sudo systemctl status certbot.timer
✅ Ожидаемый вывод: Active: active (waiting)
Проверьте процесс обновления (без реального изменения):
sudo certbot renew --dry-run
Настройка UFW (файрвола)
UFW — простой интерфейс для настройки iptables.
Установка UFW
sudo apt install -y ufw
Настройка правил
Разрешите SSH (ОЧЕНЬ ВАЖНО — иначе потеряете доступ):
sudo ufw allow ssh
Разрешите HTTP и HTTPS:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Включите UFW
sudo ufw enable
Что делает: Активирует файрвол. Будьте осторожны — если не разрешить SSH, вы заблокируете себе доступ.
Проверка статуса
sudo ufw status numbered
✅ Ожидаемый вывод:
Status: active
To Action From
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] 443/tcp ALLOW IN Anywhere
Решение типичных проблем
8.1 Ошибка: PHP сессии не работают
Симптом: Плагины или темы выдают ошибки, связанные с сессиями PHP (например, «The session directory does not exist»).
Причина: Директория для хранения сессий PHP удалена или имеет неверные права. По умолчанию Debian использует /var/lib/php/sessions.
Пошаговое решение:
Шаг 1: Проверьте текущий путь к директории сессий:
php -r 'echo ini_get("session.save_path"), PHP_EOL;'
✅ Ожидаемый вывод (по умолчанию): /var/lib/php/sessions
Шаг 2: Восстановите директорию с правильными правами:
sudo install -d -m 1733 -o root -g root /var/lib/php/sessions
Что означает 1733: Это sticky-бит (1 в начале) — пользователи могут создавать файлы, но удалять только свои.
Шаг 3: Перезапустите Apache:
sudo systemctl restart apache2
Шаг 4: Проверьте, что ошибка исчезла.
8.2 Ошибка: Бесконечный редирект (HTTPS redirect loop)
Симптом: Сайт пытается открыться, но браузер показывает ошибку «Слишком много перенаправлений». Сайт зацикливается между HTTP и HTTPS.
Причина: WordPress находится за обратным прокси (например, Cloudflare, Nginx, балансировщик), который завершает HTTPS, а Apache передаёт обычный HTTP. WordPress не знает, что оригинальный запрос был по HTTPS.
Пошаговое решение:
Шаг 1: Отредактируйте wp-config.php:
sudo nano /var/www/html/wordpress/wp-config.php
Шаг 2: Добавьте следующий код перед строкой /* That's all, stop editing! Happy publishing. */:
define('FORCE_SSL_ADMIN', true);
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
$_SERVER['HTTPS'] = 'on';
}
Что делает:
FORCE_SSL_ADMIN— принудительно использует HTTPS для панели администратора- Проверка
HTTP_X_FORWARDED_PROTO— определяет, был ли оригинальный запрос по HTTPS (прокси добавляет этот заголовок)
Шаг 3: Если проблема остаётся, добавьте явную установку адресов сайта в тот же файл:
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
(замените example.com на ваш домен)
Шаг 4: Очистите кэш браузера и проверьте сайт.
8.3 Ошибка: 403 Forbidden при открытии сайта
Симптом: При попытке открыть сайт браузер выдаёт «403 Forbidden».
Причина: Неправильные права на директорию или отсутствие индексного файла.
Пошаговое решение:
Шаг 1: Проверьте, что файл index.php существует в /var/www/html/wordpress/:
ls -la /var/www/html/wordpress/index.php
Шаг 2: Проверьте владельца файлов:
ls -ld /var/www/html/wordpress/
Должно быть www-data:www-data.
Шаг 3: Если права неверные, выполните:
sudo chown -R www-data:www-data /var/www/html/wordpress/
sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;
Шаг 4: Проверьте конфигурацию виртуального хоста:
sudo apache2ctl configtest
sudo systemctl reload apache2
8.4 Ошибка: «Error establishing database connection»
Симптом: Сайт не открывается, выдаётся сообщение «Error establishing database connection».
Причина: Проблемы с подключением к MariaDB — неверные данные в wp-config.php, MariaDB не запущена, или пользователь не имеет прав.
Пошаговое решение:
Шаг 1: Проверьте, что MariaDB запущена:
systemctl status mariadb
Шаг 2: Проверьте данные подключения в wp-config.php:
grep -E "DB_NAME|DB_USER|DB_PASSWORD|DB_HOST" /var/www/html/wordpress/wp-config.php
Убедитесь, что:
DB_NAME=wordpressDB_USER=wpuser- Пароль правильный
DB_HOST=localhost(или127.0.0.1)
Шаг 3: Проверьте, что пользователь существует и имеет права:
sudo mariadb -u root
⚠️ Теперь пользователь находится внутри MariaDB и выполняет там SQL-команды:
SELECT User, Host FROM mysql.user;
SHOW GRANTS FOR 'wpuser'@'localhost';
EXIT;
Шаг 4: Если пользователя нет — создайте заново (см. раздел «Создание базы данных»).
Шаг 5: Попробуйте подключиться к БД от имени пользователя WordPress (команда в терминале):
mysql -u wpuser -p -h localhost wordpress
(введите пароль). Если подключение успешно — проблема в конфигурации WordPress.
8.5 Белая страница (White screen of death)
Симптом: Вместо сайта — пустая белая страница. Никаких сообщений об ошибке.
Причина: PHP-фатальная ошибка (обычно из-за неправильной темы или плагина), но отображение ошибок отключено.
Пошаговое решение:
Шаг 1: Временно включите отображение ошибок PHP. Отредактируйте wp-config.php:
sudo nano /var/www/html/wordpress/wp-config.php
Добавьте строку после открывающего тега <?php:
define('WP_DEBUG', true);
Шаг 2: Откройте сайт снова. Теперь вы увидите конкретную ошибку.
Шаг 3: Если ошибка указывает на плагин — отключите все плагины (переименуйте папку plugins):
cd /var/www/html/wordpress/wp-content/
sudo mv plugins plugins_disabled
Шаг 4: Если ошибка исчезла — проблема в одном из плагинов. Возвращайте их по одному, переименовывая обратно в plugins.
Шаг 5: Если ошибка указывает на тему — переименуйте папку темы:
cd /var/www/html/wordpress/wp-content/themes/
sudo mv ваша_тема ваша_тема_disabled
WordPress автоматически переключится на стандартную тему (Twenty Twenty-Four).
Шаг 6: После исправления отключите режим отладки (удалите строку define('WP_DEBUG', true) из wp-config.php).
Чек-лист: что проверить после установки
- [ ] Apache работает:
systemctl status apache2→active (running) - [ ] MariaDB работает:
systemctl status mariadb→active (running) - [ ] PHP установлен:
php -vпоказывает версию (8.4, 8.2 или 7.4) - [ ] Сайт открывается: браузер показывает страницу установки WordPress (или сам сайт)
- [ ] База данных создана:
sudo mariadb -e "SHOW DATABASES;"показываетwordpress - [ ] Виртуальный хост включён:
ls /etc/apache2/sites-enabled/показываетexample.com.conf - [ ] Модули Apache включены:
apache2ctl -M | grep -E "rewrite|ssl" - [ ] HTTPS работает: при открытии
https://example.comзамок зелёный - [ ] Файрвол настроен:
sudo ufw statusпоказываетactiveи правила для 80/443 - [ ] Автообновление сертификата:
sudo systemctl is-enabled certbot.timer→enabled
Обновление WordPress
Обновление через админ-панель:
При появлении нового обновления WordPress в панели администратора появится уведомление. Нажмите «Обновить сейчас».
Обновление через командную строку (рекомендуется для опытных):
cd /var/www/html/
sudo -u www-data wp core update
(требуется установленный WP-CLI)
Обновление плагинов и тем через командную строку:
sudo -u www-data wp plugin update --all
sudo -u www-data wp theme update --all
Удаление WordPress и LAMP (полная очистка)
Вариант 1: Удалить только WordPress (оставить LAMP)
sudo rm -rf /var/www/html/wordpress/
Удалить базу данных и пользователя:
sudo mariadb -u root -e "DROP DATABASE IF EXISTS wordpress;"
sudo mariadb -u root -e "DROP USER IF EXISTS 'wpuser'@'localhost';"
sudo mariadb -u root -e "FLUSH PRIVILEGES;"
Вариант 2: Полное удаление LAMP стека
Шаг 1: Удалите виртуальный хост:
sudo a2dissite example.com.conf
sudo rm /etc/apache2/sites-available/example.com.conf
sudo systemctl reload apache2
Шаг 2: Удалите пакеты LAMP:
sudo apt remove --purge apache2 mariadb-server mariadb-client php libapache2-mod-php php-cli php-common php-zip php-curl php-mysql php-xml php-mbstring php-gd python3-certbot-apache
Шаг 3: Удалите неиспользуемые зависимости:
sudo apt autoremove --purge -y
Шаг 4: Удалите директории (осторожно!):
sudo rm -rf /var/www/html/wordpress/
sudo rm -rf /etc/apache2/sites-available/example.com.conf
Шаг 5: Остановите и отключите UFW (если больше не нужен):
sudo ufw disable
Часто задаваемые вопросы (FAQ)
Вопрос: Можно ли установить WordPress без домена?
Ответ: Да, на время тестирования можно использовать IP-адрес. Но для HTTPS и нормальной работы в интернете домен необходим.
Вопрос: Какую базу данных выбрать: MariaDB или MySQL?
Ответ: На Debian рекомендуется MariaDB. Это форк MySQL, полностью совместимый с WordPress, но более производительный и открытый.
Вопрос: Обязательно ли отключать стандартный сайт Apache (000-default.conf)?
Ответ: Да, иначе и ваш сайт, и дефолтная заглушка могут конфликтовать.
Вопрос: Как часто нужно обновлять сертификат Let’s Encrypt?
Ответ: Certbot обновляет его автоматически. Вручную ничего делать не нужно.
Вопрос: Почему WordPress просит FTP при установке плагинов?
Ответ: Потому что владельцем файлов является не www-data. Мы исправили это на шаге с chown. Если ошибка осталась — проверьте владельца папки /var/www/html/wordpress/.
Вопрос: Могу ли я установить WordPress на Debian 13, если у меня нет домена?
Ответ: Да, на время разработки используйте http://localhost или http://127.0.0.1. Но HTTPS не настроите без домена.
Заключение
Поздравляю! Вы установили полноценный WordPress на Debian с Apache, MariaDB и PHP. Ваш сайт работает под управлением надёжного LAMP стека, защищён файрволом и, если вы настроили Let’s Encrypt — работает по безопасному протоколу HTTPS.
Что дальше?
- Настройте регулярные автоматические обновления системы
- Настройте резервное копирование (например, через плагин)
- Установите кеширование для ускорения сайта (Плагин)
- Узнайте, как защитить WordPress от взлома