Friday, September 3, 2010

SemanticBlog

all about web innovation

Sphinx als PHP-Modul einbinden

Posted by Christian On September - 21 - 2009

Sphinx als PHP-Modul zu erzeugen ist wichtig, um auf die Sphinx-API über PHP-Methoden zugreifen zu können.

So wirds gemacht :

tar -xzvf sphinx-0.9.8.1.tar.gz
cd sphinx-0.9.8.1/api/libsphinxclient/
./configure && make install

Danach kann PECL benutzt werden, um das PHP-Modul zu erstellen:

pecl install sphinx-beta

Bei der Version 0.9.9 gab es zumindest bei mir einen Fehler beim Kompilieren.

Im Sphinx-Forum gibt es einen Tipp dazu:

Here are the commands I used to install libsphinxclient and before this I successful
installed sphinx:
cd /path/to/sphinx/src/api/libsphinxclient/
sudo sh /path/to/sphinx/src/api/libsphinxclient/.buildconf.sh
sudo ./configure
sudo make
sudo make install

But when I used “sudo make” I got this error:
sphinxclient.c:1216: error: static declaration of ‘sock_close’ follows non-static
declaration
sphinxclient.c:280: note: previous declaration of ‘sock_close’ was here

So I checked the file.

On line: 280

void sock_close ( int sock );

On line: 1216

static void sock_close ( int sock )
{
#if _WIN32
        closesocket ( sock );
#else
        close ( sock );
#endif
}

I changed the line 280 to:

static void sock_close ( int sock );

Das hat den Fehler bei mir beseitigt. Nun muss nur noch nach der Modul-Erstellung mit PECL unter etc/php5/apache2/php.ini
folgender Eintrag eingefügt werden:

[sphinx]
extension=sphinx.so

Das wars. Nach einem Neustart des Apache-Servers kann nun die PHP-API für Sphinx benutzt werden.
phpinfo() sollte nach der Installation diesen Eintrag aufweisen:

sphinx
sphinx support enabled
Version 1.0.3
Revision $Revision: 292826 $

Wer neben der PHP-API auch SphinxSE (also die Sphinx-Engine für MySQL) verwenden möchte, dem sei dieser Artikel ans Herz gelegt.

Falls beim Kompilieren von Sphinx unter Ubuntu 9.10 ( Karmic) folgende Fehlermeldung erscheint:
“Check that you do have MySQL include files installed. The package name is typically ‘mysql-devel’ ”

Folgender Befehl sollte das Problem lösen:
apt-get install libmysql++-dev

Unter sorgalla.com wird auch beschrieben, wie SphinxSE mit dem Zend Framework integriert werden kann. Feine Sache!

 Sphinx als PHP Modul einbinden

Related posts:

  1. MySQL-Volltextsuche beschleunigen mit Sphinx
  2. Articles and books about PHP-MySQL Performance
  3. gource – software version control visualization
  4. Coole MySQL Tuning Skripts

View Comments

  1. Suchen mit Wildcards und nur in definierten Feldern mit Sphinx… | uzed? Said,

    [...] Installation findet ihr eine recht nette Anleitung findet man beim semanticblog und auf [...]

    Gepostet am Februar 10th, 2010 at 12:07

Kommentar hinzufügen

blog comments powered by Disqus

Blogverzeichnis - Blog Verzeichnis bloggerei.de   Blogverzeichnis   Blog and ping   Blog Top Liste - by TopBlogs.de   Bloggeramt.de   Blog Directory   powered by rankingcloud   Internet Multimedia blogs & blog posts  
blog search directory   Blogverzeichnis   Blog Directory   Blog Verzeichnis   Blog Directory   Technology Blogs - Blog Rankings   blogoscoop  

Clicky