Sphinx и его настройка

Порядок настройки Sphinx в проекте, на примере установки в операционной системе Rocky Linux 9.x.

В других операционных системах путь к директории Sphinx может отличаться.

  1. Установите Sphinx на сервере.

    Минимально рекомендуемая версия 3.4.1+

    Предполагается, что индексирование и работа демона searchd осуществляется от пользователя sphinx.

  2. Параметры подключения указываются в файле /config/sys.php

    'sphinx' => [
        'enabled' => true,
        'host'    => '127.0.0.1',
        'port'    => 9306,
        'path'    => '/var/lib/sphinx/',
        'version' => '3.4.1',
        'prefix'  => '',
    ],
    
  3. Выполните консольную команду для формирования актуального файла конфигурации Sphinx.

    cd /путь к директории проекта/public_html/
    php index.php bff=sphinx
    

    После чего будет сформирован актуальный для вашего проекта файл конфигурации /config/sphinx.conf

    При изменении доступа к базе данных данную команду необходимо выполнять повторно.

  4. Скопируйте содержимое файла конфигурации /config/sphinx.conf.global в системный файл конфигурации Sphinx /etc/sphinx/sphinx.conf

    Укажите в данном файле в блоке files путь к файлу /config/sphinx.conf в проекте, например:

    files=(
         "/path/to/project/config/sphinx.conf"
    )
    
  5. Проверьте корректность индексации выполнив команду (рекомендуется выполнять от пользователя sphinx):

    indexer --config /etc/sphinx/sphinx.conf --all --rotate
    
  6. Выполните запуск службы searchd, убедитесь что данная служба будет автоматически запускаться после перезагрузки сервера.

  7. Скопируйте скрипт для индексирования /config/sphinx_rotate.sh в /etc/sphinx/sphinx_rotate.sh и измените права, разрешив выполнение.

    chmod +x /etc/sphinx/sphinx_rotate.sh
    

    В процессе работы скрипт может удалять файлы в директории /path/to/project/files/sphinx. Убедитесь, что у пользователя sphinx есть права на запись в эту директорию.

  8. Настройте запуск cron-задачи для индексирования, рекомендуется выполнять от пользователя sphinx:

    */5 * * * * /etc/sphinx/sphinx_rotate.sh /path/to/project
    
  9. Включите использование Sphinx в соответствующих разделах "Настройки сайта / Системные настройки".