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.