Содержание
Решение проблем
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 путь-к-файлу-или-каталогу