miércoles, 2 de febrero de 2011

Sphinx 1.10-beta en Ubuntu 10

Ésta guia me ha permitido configurar y realizar requests a sphinx 1.10-beta desde php con apache2, mysql5 y php5.3.
El paquete no es estable, y por ello no viene incluido en el repositorio de ubuntu. Lo que aquí he probado no sería la opción más recomendable para producción dado que aún tiene bugs.

Ojo que aquí omito la creacion de la BBDD en MySQL y la creacion del index (sudo indexer index1, que hay que configurarlo previamente). Todo eso podeis encontrarlo googleando un poco.

http://sphinxsearch.com/docs/1.10/

sudo apt-get install libmysqlclient-dev (los headers de mysql actualizados, ya que mysql-dev está obsoleto)

CXXCPP="gcc -E" ./configure --prefix=/usr/local/sphinx (--with-mysql-includes es opcional si quieres especificar donde esta mysql)

sudo make
sudo make install
-- compilar la api/libsphinxclient

cd sphinxFolder/api/libsphinxclient/
sudo make install

-- si peta, corregir el bug en el sphinxclient.c (esperemos lo corrijan en la proxima version)
#ifndef _WIN32
if ( setsockopt ( sock, SOL_SOCKET, SO_NOSIGPIPE, (void *)&optval,
(socklen_t)sizeof(optval)
{
set_error ( client, "setsockopt() failed: %s", sock_error() );
return -1;
}
#endif

->

#ifndef _WIN32
#ifdef SO_NOSIGPIPE
if ( setsockopt ( sock, SOL_SOCKET, SO_NOSIGPIPE, (void *)&optval,
(socklen_t)sizeof(optval)
{
set_error ( client, "setsockopt() failed: %s", sock_error() );
return -1;
}
#endif
#endif

#define vsnprintf _vsnprintf
->
//#define vsnprintf _vsnprintf

-- ejecutar
/api/libsphinxclient/test -z 'usr/local/sphinx/include' o sino -> mkdir -p -- "/usr/local/sphinx/include"

sudo pecl install sphinx (especificar path /usr/local/sphinx)

-- añadir a php.ini
"extension=sphinx.so"

No hay comentarios: