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 в соответствующих разделах "Настройки сайта / Системные настройки".