Решение проблем

FATAL: no indexes found in '/etc/sphinx/sphinx.conf'

Проверяем формат файла конфигурации

Проверяем содержимое файла в редакторе, либо узнаем его тип:

file /etc/sphinx/sphinx.conf
/etc/sphinx/sphinx.conf: a /usr/bin/php -q script text executable

В примере - скрипт PHP. Запускаем его и смотрим на вывод:

/usr/bin/php /etc/sphinx/sphinx.conf

Должны быть секции source, index, indexer, searchd.

Если обычный текстовый файл - просто смотрим его.

Проверяем доступы

Сфинкс выполняет конфиг под пользователем sphinx, и у него могут быть проблемы с доступом.

В моем примере в качестве источника была «труба»:

source sign
{
  type                = xmlpipe2
  xmlpipe_command     = php /var/www/site.ru/local/components/sign/hi/xmlpipe.php
}

Заходим под пользователем sphinx и пробуем выполнить скрипт:

sudo su
su sphinx -s /bin/bash
php /var/www/site.ru/local/components/sign/hi/xmlpipe.php

Я получил ошибку:

Could not open input file: ...

ls выдает такую ошибку:

невозможно получить доступ к ... Отказано в доступе

Смотрим права на файл через ls -la. Если доступ на чтение есть, смотрим +x на все родительские каталоги и делаем chmod +x ... для проблемного.

Для просмотра всех прав выше по дереву можно использовать такой скрипт:

lsp.sh
#!/bin/bash
 
dir="$1" # каталог или файл
while true
do
	# ls -ld "$dir"
	stat "$dir" --printf "%n %A\n"
	if [ "$dir" = "/" ]; then
  	exit
	fi
	dir=`dirname "$dir"`
done
./lsp.sh путь-к-файлу-или-каталогу