WordPress на SQLite

WordPress обычно работает с MySQL или MariaDB, но SQLite тоже поддерживается, хотя и не официально.

В этой заметке рассмотрим как установить WordPress с SQLite и когда это может пригодиться.

PHP с поддержкой SQLite3

Убедитесь, что на сервере включено расширение sqlite3. Проверьте это через phpinfo() или команду:

php -m | grep sqlite3

Если расширение отсутствует, активируйте его в php.ini:

extension=sqlite3

Перезапустите сервер (Apache/Nginx).

У кого установлен Laragon, достаточно активировать через интерфейс:

Скачать и распаковать WordPress

Скачайте WordPress и распакуйте в нужное место вашего сервера.

Можно воспользоваться curl:

# Скачать WordPress в текущую папку
curl -O https://wordpress.org/latest.tar.gz

# Распаковать архив
tar -xzvf latest.tar.gz

Или через WP CLI команду

wp core download

Работа с плагином SQLite Database Integration

Скачайте плагин SQLite Database Integration и распакуйте в папку /wp-content/plugins/, чтобы файлы плагина лежали по пути /wp-content/plugins/sqlite-database-integration/

Можно и из командной строки

# Выполнять в папке plugins
curl -LO https://downloads.wordpress.org/plugin/sqlite-database-integration.latest-stable.zip

# Тут же и распаковать
tar -xf sqlite-database-integration.latest-stable.zip

После этого скопируйте файл db.copy из папки плагина в папку /wp-content/ и переименуйте его в db.php. По итогу должен быть файл по пути /wp-content/db.php.

Можно командой:

cp sqlite-database-integration/db.copy ../../wp-content/db.php

Теперь этот файл - это SQLite-клиент, который WordPress будет использовать для подключения и запросов к БД.

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

Из коробки файла wp-config.php нет и создать его даже через WP CLI не получится, так как требуется подключение к MySQL базе, которой у нас нет и не будет. Поэтому просто создаём файл wp-config.php из файла wp-config-sample.php вручную или с помощью команды:

# Выполняется на уровне этих файлов
cp  wp-config-sample.php  wp-config.php

Необязательный шаг. Теперь внутри найдите константы, отвечающие за подключение к БД, и удалите их. Они всё равно не используются. Это будет удобно, чтобы ни у кого не возникало вопросов в будущем.

/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** Database username */
define( 'DB_USER', 'username_here' );

/** Database password */
define( 'DB_PASSWORD', 'password_here' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

Мы можем тут добавить разнообразные конфигурации, переопределяющие работу плагина, но для базовой установки ничего этого не требуется.

Установка WordPress

Переходим на сайт в браузере, по домену который настроили. Видим запуск WordPress и привычную установку.

Результат

После установки в каталоге wp-content/database/ появятся файлы:

Название файла Размер Содержимое
.ht.sqlite 1Mb Сама БД
.htaccess 13 byte DENY FROM ALL
index.php 28 byte <?php // Silence is gold. ?>

Самое главное - работающий WordPress. Однако есть нюансы в работе. О них еще поговорим.

Эта статья будет обновляться по мере возникновения проблем и их решений.

Плюсы и минусы

Плюсы:

  • Простота развертывания — не требует отдельного сервера базы данных.
  • Лёгкость бэкапа и миграций — всё хранится в одном .sqlite файле.
  • Быстродействие на малых сайтах — отличная производительность при низкой нагрузке.
  • Подходит для локальной разработки — удобен для быстрого тестирования.
  • Минимум зависимостей — нет нужды в MySQL/MariaDB.

Минусы:

  • Ограничения масштабируемости — плохо работает с высокой конкуренцией запросов.
  • Совместимость - WordPress официально не поддерживает SQLite, нужны сторонние плагины (SQLite Database Integration всё ещё сторонний).
  • Сложности с плагинами и темами — некоторые не работают из-за специфики SQL-запросов.
  • Отсутствие репликации и кластеризации — не годится для высоконагруженных проектов.
  • Ограниченная поддержка сообщества — мало готовых решений по SQLite + WP.
  • Скудная документация - толковых инструкций практически нет, информацию приходится собирать по форумам.
  • Частичная несовместимость с WP-CLI — часть команд (например, import/export) обращается к MySQL напрямую, минуя wpdb, поэтому с SQLite не работает.

Зачем это может быть нужно?

Иногда WordPress на SQLite — это просто удобно. Например, когда нужно сделать сайт-визитку или простой проект "для декабря упаковал — и отдал клиенту". Разворачивать полноценную базу и настраивать миграции ради такого — бессмысленно. SQLite позволяет избежать этой лишней мороки.

Также это отличное решение для личных проектов или разработки "по фану" — например, когда работаешь с API (ВКонтакте, Кинопоиск и т.д.), собираешь данные, тестируешь AI, или реализуешь простой поиск. Пока данные можно хранить в JSON — ок, но когда нужна полноценная структура и гибкость — SQLite отлично заменяет MySQL, не требуя сервера.

Это особенно удобно, если проект не критичен, но хочется базу данных "в одном файле", без лишних зависимостей и танцев с бэкапами.

Ну и список вариантов где это может пригодится:

  • Для локальной разработки без MySQL.
  • Для лёгких сайтов с малой нагрузкой.
  • Для тестирования плагинов и тем.
  • Для обучения и экспериментов.
  • Для прототипирования сайтов.
  • Для офлайн-демонстраций без сервера.
  • Для CI/CD-сред с минимальными зависимостями.
  • Для статической генерации сайта (через плагины).
  • Для портативных сборок, всё в одной папке.
  • Для серверов без MySQL/MariaDB.
  • Для дешёвого хостинга с ограничениями.
  • Для бэкапов — упрощённое резервное копирование.
  • Для безопасности — меньше векторов SQL-инъекций.
  • Для простоты установки и миграции.