Связка WordPress и SQLite (через официальный плагин SQLite Database Integration с современным AST-драйвером) отлично подходит для контентных ниш. Главный фактор успеха — единоличное создание контента. Поскольку новые посты будете публиковать только вы, классическая проблема SQLite с одновременными записями (concurrency write locks) полностью утрачивает актуальность. Для читателей SQLite обеспечивает молниеносное чтение, сопоставимое или превосходящее MySQL на легких VPS.

Архитектурные преимущества

  • Экономия ресурсов VPS: Полный отказ от отдельного демона MySQL/MariaDB высвобождает оперативную память, что идеально вписывается в концепцию легкого стека на Nginx + PHP-FPM без лишних фоновых процессов.
  • Упрощенное резервное копирование: Вся база данных представляет собой единый файл, который удобно версионировать через Git и включать в бэкапы без необходимости делать дампы через mysqldump.
  • Оптимально для SEO-структур: Информационные порталы, каталоги и документация имеют высокий коэффициент чтения к записи, где файловая база данных демонстрирует максимальную стабильность.

Возможные проблемы и ограничения

  • Специфические плагины: Несмотря на развитый слой эмуляции MySQL, некоторые сложные плагины с нетипичными SQL-запросами или глубокой кастомизацией таблиц могут вызывать ошибки в логах.
  • Ограничения для электронной коммерции: Если на проекте планируется полноценный магазин с частыми динамическими транзакциями, корзинами и сессиями покупателей, SQLite быстро упрётся в ограничения файловых блокировок записи.

Плагины рекомендуемые для работы в связке WordPress + SQLite

  • Для SEO использовать плагин SEOPress из-за свой модульной структуры. Rank Math не рекомендуется из-за возможных проблем с кешированием XML-карт. Yoast не рекомендуется.
  • Для мультиязычных сайтов лучше использовать Polylang, потому что он архитектурно оптимален для SQLite. В отличие от решений, создающих тяжелые кастомные таблицы для словарей, Polylang задействует стандартные механизмы WordPress — таксономии и мета-поля (post_meta). Это удерживает файл SQLite в компактном состоянии и обеспечивает быстрый отклик. WPML не рекомендуется из-за сложный SQL-запросов и множества дополнительных таблиц.

Пошаговый ручной процесс установки WordPress с SQLite

Для развертывания связки WordPress + SQLite локально на Windows 11 в VS Code и последующего переноса на ваш VPS используется чистый ручной подход без лишних контейнеров и утилит.

  • Шаг 1. Подготовка каталога и файлов. Откройте пустую рабочую папку будущего проекта в VS Code. Убедитесь, что у вас установлен PHP (версии 8.3 или выше) и в файле php.ini раскомментированы расширения extension=pdo_sqlite и extension=sqlite3. Скачайте свежий архив WordPress с официального сайта и распакуйте его содержимое в корень проекта. Проверка: Выполнение команды php -m в терминале VS Code должно выводить pdo_sqlite и sqlite3, а запуск локального сервера через php -S localhost:8000 должен успешно отдавать файлы.

Примечание: Что бы узнать путь в Windows 11 к используемому php.ini посмотрите значение параметра Loaded Configuration File в выводе команды php --ini.

  • Шаг 2. Интеграция SQLite. Скачиваете официальный плагин SQLite Database Integration или c Github. Поместите его папку в wp-content/plugins/ и убедитесь, что она называется строго sqlite-database-integration. Скопируйте файл-заглушку db.copy (находится внутри папки плагина) на уровень выше и переименуйте его в wp-content/db.php.
  • Шаг 3. Предварительное создание wp-config.php (Обязательный шаг). В корне проекта скопируйте wp-config-sample.php и переименуйте его в wp-config.php Откройте wp-config.php и замените стандартный блок подключения к MySQL на следующий фиктивные данные (чтобы заблокировать вызов MySQL):
define( 'DB_NAME', 'sqlite_db' );
define( 'DB_USER', 'root' );
define( 'DB_PASSWORD', '' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8' );
define( 'DB_COLLATE', '' );
  • Шаг 4. Установка WordPress. Перейдите в браузере по адресу http://localhost:8000/ и пройдите стандартную установку (выбор языка, ввод названия сайта, логина и пароля администратора). Проверка: Шаг с вводом хоста и пароля MySQL автоматически пропустится. После установки в папке wp-content/database/ появится файл базы данных .ht.sqlite, а в консоли WordPress не будет упоминаний MySQL.
  • Главное правило безопасности для веб-сервера, я чаще всего использую Nginx. Поскольку SQLite хранит всю информацию (включая логины и хэши паролей администратора) в обычном файле внутри директории wp-content, критически важно закрыть к нему прямой доступ через веб-сервер. В ваш конфиг Nginx для сайта достаточно добавить простой блок запрета (Путь к папке с базой данных зависит от конкретной версии плагина интеграции, но логика всегда сводится к блокировке расширения .sqlite):
location ~* /wp-content/database/.*\.sqlite$ { 
	deny all;
	return 404;
}

Перенос WordPress сайта с MySQL на SQLite

Переключить уже существующий рабочий сайт с MySQL на SQLite «на лету» стандартными средствами не получится — плагин требует развертывания чистой базы данных с последующим импортом контента.

  1. Экспорт текущей базы данных (MySQL Dump): Создайте полный дамп текущей базы данных MySQL с помощью WP-CLI (wp db export backup.sql) или через панель управления хостингом. Проверка: Убедитесь, что результирующий файл .sql имеет ненулевой размер и содержит инструкции структуры таблиц.
  2. Развертывание плагина интеграции (Загрузка файлов): Скачайте и поместите официальный плагин SQLite Database Integration в директорию wp-content/plugins/ вашего сайта. Проверка: Папка плагина sqlite-database-integration присутствует в структуре каталога плагинов.
  3. Активация drop-in драйвера (Настройка db.php): Скопируйте файл драйвера из папки плагина (wp-content/plugins/sqlite-database-integration/db.copy) в корень каталога wp-content/, переименовав его в db.php. Проверка: Файл wp-content/db.php успешно создан и доступен для чтения интерпретатору PHP.
  4. Создание базы SQLite (Импорт данных и конфигурация): Создайте защищенную директорию для базы данных, импортируйте структуру и данные из вашего SQL-дампа (через инструменты миграции плагина или импортер). Проверка: Главная страница сайта и административная панель загружаются без ошибок соединения с базой данных.
  5. Оптимизация производительности (Режим WAL): Выполните для базы данных SQLite SQL-директиву активации режима Write-Ahead Logging (PRAGMA journal_mode=WAL;). Проверка: Запрос возвращает статус wal, а рядом с файлом базы появились вспомогательные файлы .db-wal и .db-shm.
  6. Защита базы данных (Настройка веб-сервера): Добавьте в конфигурацию Nginx запрет на прямой доступ извне к файлам базы данных (.sqlite, .db и папке хранения). Проверка: Попытка открыть файл базы данных через браузер отдает ошибку 404.

Администрирование SQLite

  • Плагин SQLite Viewer для VS Code их много на выбор, установил SQLite Viewer for VS Code от автора Florian Klampfer.
  • DB Browser for SQLite есть портабельная версия очень удобно.
  • В DBeaver не нужно ничего дополнительно устанавливать — драйвер для SQLite скачивается автоматически при первом подключении. Создаешь новое подключение -> выбираешь SQLite. В поле Path просто указываешь путь к новому файлу.