Sphinx и его настройка
Порядок настройки Sphinx в проекте, на примере установки в операционной системе Rocky Linux 9.x.
В других операционных системах путь к директории Sphinx может отличаться.
-
Установите Sphinx на сервере.
Минимально рекомендуемая версия 3.4.1+
Предполагается, что индексирование и работа демона searchd осуществляется от пользователя sphinx.
-
Параметры подключения указываются в файле
/config/sys.php
'sphinx' => [ 'enabled' => true, 'host' => '127.0.0.1', 'port' => 9306, 'path' => '/var/lib/sphinx/', 'version' => '3.4.1', 'prefix' => '', ],
-
Выполните консольную команду для формирования актуального файла конфигурации Sphinx.
cd /путь к директории проекта/public_html/ php index.php bff=sphinx
После чего будет сформирован актуальный для вашего проекта файл конфигурации /config/sphinx.conf
При изменении доступа к базе данных данную команду необходимо выполнять повторно.
-
Скопируйте содержимое файла конфигурации /config/sphinx.conf.global в системный файл конфигурации Sphinx /etc/sphinx/sphinx.conf
Укажите в данном файле в блоке
files
путь к файлу /config/sphinx.conf в проекте, например:files=( "/path/to/project/config/sphinx.conf" )
-
Проверьте корректность индексации выполнив команду (рекомендуется выполнять от пользователя sphinx):
indexer --config /etc/sphinx/sphinx.conf --all --rotate
-
Выполните запуск службы searchd, убедитесь что данная служба будет автоматически запускаться после перезагрузки сервера.
-
Скопируйте скрипт для индексирования /config/sphinx_rotate.sh в /etc/sphinx/sphinx_rotate.sh и измените права, разрешив выполнение.
chmod +x /etc/sphinx/sphinx_rotate.sh
В процессе работы скрипт может удалять файлы в директории
/path/to/project/files/sphinx
. Убедитесь, что у пользователя sphinx есть права на запись в эту директорию. -
Настройте запуск cron-задачи для индексирования, рекомендуется выполнять от пользователя sphinx:
*/5 * * * * /etc/sphinx/sphinx_rotate.sh /path/to/project
-
Включите использование Sphinx в соответствующих разделах "Настройки сайта / Системные настройки".