Primeiramente, somente darei a introdução de instalação do
Sphinx Search, então em artigos posteriores tentarei colocar algo a mais.
Aqui vai o 'HowTo' para instalar o sphinx e rodá-lo como usuário normal do
Linux.
Para quem não gosta muito de inglês, veja a página traduzida para o português do Sphinx Search (
http://www.qprocura.cjb.net/sphinx-search/).
Dados Técnicos:
- Estou usando Debian 4 (Etch) + pacotes de compilação;
- Distribuição de uso desta compilação: Red Hat Enterprise Linux AS release 3.
Como instalar Sphinx - Usuário comum
Neste artigo descrevo de forma simplória a instalação do sphinx search. Neste, já considero que você já tenha os executáveis e bibliotecas necessárias para fazer a compilação de programas.
Baixar o código:
A versão atual que estou fazendo este tutorial é a Sphinx-0.9.8-rc2 (r1234; Mar 29, 2008)
http://www.sphinxsearch.com/downloads/sphinx-0.9.8-rc2.tar.gz
No Linux:
# wget http://www.sphinxsearch.com/downloads/sphinx-0.9.8-rc2.tar.gz
Extrair o arquivo TAR.GZ:
# tar xzvf sphinx-0.9.8-rc2.tar.gz
# cd sphinx-0.9.8-rc2
Configurando:
Editar o arquivo configure:
# vim configure
Na linha 256 aonde tem a variável ac_default_prefix, mude para /home/sphinx ou a pasta do usuário que vai executar o sphinx (ex.: /home/joao).
Rode o configure:
# ./configure
Execute o comando para compilar e instalar:
# make; make install
Enviar para o servidor aonde será executado o sphinx, usei o scp para enviar:
# scp -r /home/sphinx/* usuario@dominio.com.br:/home/sphinx
Teste de execução:
No servidor aonde está sendo executado, verificar se não faltam as bibliotecas para executar o indexer do sphinx. Para isso, use o comando ldd:
# cd /home/sphinx/bin/
# ldd indexer
O resultado no meu caso foi assim:
linux-gate.so.1 => (0xffffe000)
libmysqlclient.so.15 => /usr/lib/libmysqlclient.so.15 (0xb7de2000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7cfd000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7cd7000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7ccc000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7b9b000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7b89000)
libcrypt.so.1 => /lib/tls/i686/cmov/libcrypt.so.1 (0xb7b5b000)
libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb7b45000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7b30000)
/lib/ld-linux.so.2 (0xb7fc9000)
Verifique se no host que será usado o sphinx tem estes arquivos. Senão, copie para o /home/sphinx/bin/.
# cp /usr/lib/libstdc++.so.6 /home/sphinx/bin/
...
(no meu caso faltaram os arquivos libcrypt.so.1, libc.so.6, libm.so.6 e libstdc++.so.6)
Envie o arquivos para o servidor e então faça o teste:
# cd /home/sphinx/bin/
# LD_LIBRARY_PATH=. ./indexer
Se retornar algo assim depois de executar o indexer:
Sphinx 0.9.8-rc2 (r1234)
Copyright (c) 2001-2008, Andrew Aksyonoff
Usage: indexer [OPTIONS] [indexname1 [indexname2 [...]]]
Então parabéns, já está funcionando!
Agora é só criar o arquivo conf, baseado no /home/sphinx/etc/sphinx.conf.dist.
Arquivo sphinx.conf (ver o conf de exemplo na seção de conf).
Criar o arquivo /home/sphinx/etc/sphinx.conf.
Criando índices:
# indexer --config /home/sphinx/etc/sphinx.conf --all --rotate
A opção --rotate serve se o searchd estiver rodando (o daemon).
Ahh! Na primeira vez que indexar uma uma opção de configuração (que está no sphinx.conf) vão aparecer uns arquivos no /home/sphinx/var/data/*.new.* , então execute a linha abaixo nesta pasta:
# for i in *.new.*;do j=`echo $i | sed s,\.new,,g`; echo $j; mv $i $j; done
Rodando/iniciando o Daemon:
# cd /home/sphinx/bin/
# LD_LIBRARY_PATH=. ./searchd
Lembrando: O arquivo conf está na seção de conf (sphinx.conf).
Na parte II descreverei sobre o uso. Até breve.