Instalacion y configuración de SPHINX en Debian

Anuncio
Instalacion y configuración de SPHINX en Debian
No existen (o al menos, yo no he encontrado) paquetes precompilados para Debian (.deb), por lo
que vamos a generarlos nosotros a partir de su código fuente.
Siempre es preferible generar paquetes .deb, ya que así podremos instalarlos y desinstalarlos
limpiamente usando apt o dpkg.
Primero, descargamos el tar.gz con la última versión del código fuente de la web oficial del
proyecto, que en este momento es la 0.9.8.1: http://www.sphinxsearch.com/downloads.html
cd /tmp
wget http://www.sphinxsearch.com/downloads/sphinx-0.9.8.1.tar.gz
Descomprimimos el archivo en el directorio de fuentes de nuestro sistema (/usr/src)
cd /usr/src
tar xvzf /tmp/sphinx-0.9.8.1.tar.gz
Después, preparamos el paquete para la compilación, especificando si queremos SPHINX con
soporte para MySQL, PostgreSQL o ambos, e indicando el directorio donde queremos instalarlo (en
mi caso, en /opt/sphinx):
cd /usr/src/sphinx-0.9.8.1
./configure --with-pgsql --with-mysql --prefix=/opt/sphinx/
Si ésto falla, normalmente será porque no tenemos instalados todos los paquetes necesarios.
En principio, debería bastar con éstos paquetes para compilar Sphinx con soporte para MySQL y
PostgreSQL:
– build-essential
– librerias de desarrollo de MySQL (libmysql++-dev)
– librerías de desarrollo de PostgreSQL (postgresql-dev)
Una vez preparado el paquete para la compilación, lo compilamos:
make
Y una vez compilado, en lugar de instalarlo, generamos el paquete .deb con ayuda del programa
checkinstall (si lo tienes, instálalo! Jejejee), simplemente tecleando:
checkinstall
Lo cual generará un archivo .deb, que podremos instalar fácilmente con dpkg:
dpkg -i sphinx_0.9.8.1-1_i386.deb
Este proceso hará, entre otras cosas, que tengamos 3 binarios de Sphinx instalados en nuestro
sistema. Hay algunos mas, pero los que nos interesan son solo estos 3:
– indexer: Este programa es el que generará los índices de búsqueda de nuestras bases de
datos.
– search: El programa que realizará las búsquedas en los índices generados.
– searchd: Un demonio que permitirá consultas remotas desde la API o desde otras máquinas
Ahora, crearemos el usuario que ejecutará el programa:
adduser --system --home /opt/sphinx --uid 999 --disabled-password --disabled-login sphinx
Después, creamos algunos directorios más para los logs, el pid, etc:
mkdir /opt/sphinx/log
mkdir /opt/sphinx/run
Descargamos el código del script de start/stop de Sphinx, programado por Klaus:
wget http://www.klaus.gr/pub/sphinx
mv sphinx /etc/init.d/
chmod 755 /etc/init.d/sphinx
Miramos cuál es nuestro runlevel actual, y hacemos enlaces al script desde el runlevel indicado:
/sbin/runlevel | cut -b 3
ln -s /etc/init.d/sphinx /etc/rc2.d/S92sphinx
chown -R sphinx:root /var/sphinx
Copiamos el archivo de configuracion de ejemplo de Sphinx, y lo editamos:
cd /opt/sphinx/etc
cp -p sphinx.conf.dist sphinx.conf
Hay información sobre la configuración en la web oficial de Sphinx, y aquí:
http://www.compuglobalhipermega.net/mysql/ejemplo-rfc-sphinx/
Una vez que hayamos configurado el archivo, lanzamos sphinx:
/etc/init.d/sphinx start
Y listo... ya tenemos nuestro demonio searchd corriendo...
Para acceder a él y poder realizar búsquedas en los índices desde, por ejemplo PHP, necesitamos
compilar la extensión de PECL para acceder a Sphinx desde PHP.
Para compilar dicha extensión, necesitamos compilar previamente la librería libsphinxclient, que se
encuentra en el subdirectorio api/libsphinxclient del codigo fuente de Sphinx.
Accedemos a dicho directorio, y compilamos la librería:
cd /usr/src/sphinx-0.9.8.1/api/libsphinxclient
CXXCPP="gcc -E"
./configure –prefix=/opt/sphinx
make
make install
Ya tenemos la librería lista... ahora, descargamos la librería PECL de Sphinx para PHP:
Podemos descargarla: http://pecl.php.net/package/sphinx/
cd /tmp
wget http://pecl.php.net/get/sphinx-1.0.0.tgz
cd /usr/src
tar xvzf /tmp/sphinx-1.0.0.tgz
mv sphinx-1.0.0 sphinx-pecl-1.0.0
cd sphinx-pecl-1.0.0
Si no tenemos phpize, lo instalamos:
apt-get install php5-dev
Usamos phpize y compilamos la librería:
phpize5
./configure –with-sphinx=/opt/sphinx
make
Generamos de nuevo el paquete .deb con checkinstall, y lo instalamos con dpkg:
checkinstall
dpkg -i sphinx-pecl_1.0.0-1_i386.deb
Y por último, añadimos añadir un archivo sphinx.ini en /etc/php5/conf.d/ con estas lineas, para
habilitar la librería:
[sphinx]
extension=sphinx.so
Reiniciamos el servidor web, y ya podremos trabajar con Sphinx desde PHP!
Referencias:
http://www.compuglobalhipermega.net/mysql/instalacion-configuracion-sphinx/
http://www.compuglobalhipermega.net/mysql/ejemplo-rfc-sphinx/
http://www.sphinxsearch.com/forum/view.html?id=367
http://asiermarques.com/2009/06/10/instalar-extension-pecl-de-sphinx-para-php-en-debian
BhEaN – Insane Productions 2009
Siéntete libre de divulgar este manual si lo consideras útil, siempre que cites la fuente/autor del mismo.
Descargar