Символическая ссылка db.php

Query Monitor

В этой заметке поговорим о том, зачем плагину Query Monitor нужна символическая ссылка (файл) db.php в папке wp-content и зачем такая ссылка может пригодится нам, пользователям этого плагина.

В папке wp-content плагина Query Monitor находится файл db.php. В этом файле код расширяющий базовый класс wpdb{}. Когда плагин активируется, он создает символическую ссылку (symlink) на этот файл в папке wp-content (WP_CONTENT_DIR).

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

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

Подробнее про файл wp-content/db.php читайте по этой ссылке.

Когда db.php нет на месте

Иногда у PHP нет достаточных прав, чтобы создать символическую ссылку. В этом случае QM по-прежнему будет работать нормально, но вы не увидите расширенную информацию по запросам к БД. Такая информация бывает очень полезна.

QM (вкладка Запросы) без сим-ссылки db.php.
Со ссылкой.

Символическую ссылку о которой идет речь, можно создать вручную, используя один из методов ниже.

Через командную строку

Linux / OS X:

ln -s /path/to/wordpress/wp-content/plugins/query-monitor/wp-content/db.php /path/to/wordpress/wp-content/db.php

Windows (нужны права администратора):

mklink C:\path\to\wordpress\wp-content\db.php C:\path\to\wordpress\wp-content\plugins\query-monitor\wp-content\db.php

В Windows есть два разных типа ссылок: Shortcut и Symlink. Shortcut создается, когда мы перетаскиваем файл с зажатой клавишей alt. Тут речь идет именно про Symlink.

Через изменение прав для папки

Разрешите создавать файлы в каталоге wp-content (WP_CONTENT_DIR) и ре-активируйте QM он автоматически попробует создать такую ссылку.

Через Панель управления хостингом

Если вы не можете сделать ничего из вышеперечисленного, или ваш хост предотвращает создание символических ссылок через PHP, то попробуйте создать символическую ссылку через панель управления веб-хостингом (Plesk, cPanel). Или обратитесь в тех-поддержку.

Когда db.php на месте

Файл db.php иногда может конфликтовать с другими плагинами, которые также используют такой файл.

Примеры таких плагинов:

  • W3 Total Cache
  • LudicrousDB
  • HyperDB

Если такой конфликт возник, то сделать с ним в настоящее время ничего нельзя. Это ограничение ядра WordPress: файл должен называться именно db.php и должен быть расположен именно в каталоге wp-content.