База знаний

Инструкции и ответы на вопросы о хостинге, работе сайтов и приложений

Sphinx

Sphinx — бесплатный поисковый движок. Он поможет создать быструю систему поиска информации по базе данных вашего сайта.

Установите Sphinx на аккаунт хостинга и настройте сайт для работы с ним.

Установка Sphinx

Подключитесь к аккаунту по SSH и скачайте дистрибутив с официального сайта: [username@server]$ wget ссылка_на_дистрибутив 

Если вы размещаете готовый проект, выберите ту версию Sphinx, которую использовали при разработке сайта.

Распакуйте архив и переименуйте каталог с файлами движка:

[username@server]$ tar xvfz имя_архива.tar.gz
[username@server]$ mv имя_архива sphinx

Перейдите в директорию sphinx:

[username@server]$ cd sphinx

Дальнейший процесс установки зависит от выбранной вами версии программы.

Sphinx 2

Для сборки Sphinx 2 выполните команды:

[username@server sphinx]$ ./configure --prefix=/home/username/sphinx
[username@server sphinx]$ make
 [username@server sphinx]$ make install

Перейдите в каталог etc:

[username@server sphinx]$ cd etc

Создайте конфигурационный файл sphinx.conf самостоятельно или воспользуйтесь шаблонами, входящими в дистрибутив. Мы взяли за основу файл sphinx-min.conf.dist, скопировали и переименовали его:

[username@server etc]$ cp sphinx-min.conf.dist sphinx.conf

Откройте файл в текстовом редакторе vim и укажите параметры подключения к базе данных:

[username@server etc]$ vim sphinx.conf

type = mysql
sql_host = localhost
sql_user = username_dbuser
sql_pass = password
sql_db = username_db
 sql_port = 3306

Сохраните изменения и запустите Sphinx.

Sphinx 3

Sphinx 3 не нужно предварительно собирать, достаточно распаковать архив с программой и настроить конфигурационный файл. Он расположен в каталоге etc:

[username@server sphinx]$ cd etc

Мы используем входящий в дистрибутив шаблон sphinx-min.conf.dist. Скопируйте и переименуйте его:

[username@server etc]$ cp sphinx-min.conf.dist sphinx.conf

Откройте файл для редактирования и укажите параметры подключения к базе данных:

[username@server etc]$ vim sphinx.conf

type = mysql
sql_host = localhost
sql_user = username_dbuser
sql_pass = password
sql_db = username_db
 sql_port = 3306

Нажмите Esc и по очереди выполните команды, чтобы изменить пути для размещения журналов работы Sphinx и индексов:

:%s/\/var\/data/\/home\/username\/sphinx\/data/
:%s/\/var\/log/\/home\/username\/sphinx\/log/

Сохраните изменения, выйдите из редактора и перейдите в каталог sphinx:

[username@server etc]$ cd ..

Создайте папки с именами log и data:

[username@server sphinx]$ mkdir log data

Теперь все готово к запуску движка.

Запуск Sphinx

Создайте файл с именем sphinx.sh в каталоге bin:

[username@server sphinx] cd bin
 [username@server bin] vim sphinx.sh

Вставьте код скрипта в окно текстового редактора и сохраните изменения.

#!/usr/bin/env bash

CONFIGFILE="/home/username/sphinx/etc/sphinx.conf"
SPHINX="/home/username/sphinx/bin/searchd -c $CONFIGFILE"

[[ -z $1 ]] && { echo "Usage: $(basename $0) (start|stop|restart|status)"; exit 0; }

case "$1" in
  start)
  $SPHINX
  ;;
  stop)
     $SPHINX --stop
  ;;
   restart)
     $SPHINX --stop
     sleep 2
     $SPHINX
  ;;
  status)
     $SPHINX --status
   ;;
   *)
     echo "Unknown option $1"
   ;;
 esac

С помощью sphinx.sh вы сможете быстро запускать (start), перезагружать (restart) и останавливать (stop) движок, а также смотреть статистику его работы (status).

Разрешите исполнение файла:

[username@server bin] chmod 755 sphinx.sh

Запустите Sphinx командой:

[username@server bin] ./sphinx.sh start

Проверьте, работает ли движок:

[username@server bin] ps -aux | grep sphinx

Если Sphinx запущен, вы увидите такой процесс:

Правильно провести индексацию базы данных вашего сайта поможет документация. Если при установке вы столкнулись с трудностями, обратитесь в сообщество Sphinx или нашу службу поддержки.

Была ли эта инструкция полезной?