28 июня 2009 г. PHP PECL SphinxSearch Поисковые системы

Sphinx. Установка PHP расширения pecl-sphinx

sphinx-pecl-sphinx

Как я и обещал в статье "Sphinx. Установка, настройка и использование поискового движка", расскажу как поставить расширение для PHP, дабы не инклудить файл "sphinxapi.php".

Сначала соберем "libsphinxclient":

# fetch http://www.sphinxsearch.com/downloads/sphinx-0.9.8.1.tar.gz
# tar -xzf sphinx-0.9.8.1.tar.gz
# cd sphinx-0.9.8.1
# chmod -R 777 *
# cd ./api/libsphinxclient/
# ./buildconf.sh
# ./configure && make install

Теперь установим PECL-расширение:

# cd sphinx-0.9.8.1/api/libsphinxclient/
# pecl install sphinx
Когда спросит про "libsphinxclient", просто согласитесь с умолчанием, так как вы в том же каталоге где собирали "libsphinxclient", то он сам подцепится.

После установки, надо прописать модуль в "php.ini" или в "php/extensions.ini":

# echo "extension=sphinx.so" >> /usr/local/etc/php/extensions.ini
# cat /usr/local/etc/php/extensions.ini

Получится что-то вроде:

extension=mbstring.so
extension=simplexml.so
extension=spl.so
extension=mysql.so
....
extension=sphinx.so

Перезагружаем индейца и в бой! :)

# apachectl restart

Комментарии

А на винду?

vasa_c, а на винду


include_once "sphinxapi.php";

:)

а как быть с FreeBSD в портах еще нет ?

WindowsMustDie, в статье и описывается установка на FreeBSD :)
А в портах не было к моменту написания статьи..

но порча зависимостей пакетов всеравно есть (=

pecl: command not found

пришлось так делать

$ svn co http://svn.php.net/repository/pecl/sphinx/trunk/ 'svn-sphinx-sphinx'
$ cd 'svn-sphinx-sphinx'
$ phpize
$ ./configure --help
$ whereis php-config
php-config: /usr/local/bin/php-config /usr/local/man/man1/php-config.1.gz
$ ./configure --with-sphinx --with-php-config=/usr/local/bin/php-config
make install

Ценный каммент, будет альтернатива :)

Быстрее установить pecl (pear). Хотя что устанавливать, конечно, каждый выбирает по собственным требованиям/пожеланиям. Я выбрал установку pecl вместо svn :) Он тоже не установлен.

в pecl нет 2.0.1

Для openSUSE:

sudo zypper in libmysqlclient-devel postgresql-devel
cd /tmp && d=sphinx && git clone git://github.com/sphinxsearch/$d.git && cd $d && F="-march=native -msse3 -O3 -fomit-frame-pointer -pipe" && sh ./configure --prefix=/usr --libdir=/usr/lib64 CFLAGS="$F" CXXFLAGS="$F" --with-pgsql && make -j4 && sudo make install && cd api/libsphinxclient && sh ./buildconf.sh && sh ./configure --prefix=/usr --libdir=/usr/lib64 CFLAGS="$F" CXXFLAGS="$F" && sudo make install install-data && cd ../../.. && sudo rm -rf $d

Для php 7 - apcu, для php 5 apcu-4.0.8
sudo zypper in php5-pear php5-devel
sudo pecl install apcu-4.0.8 memcache redis sphinx
Принудительно пересобрать pecl, после обновления php
sudo pear upgrade -f && sudo pecl upgrade -f apcu-4.0.8 && sudo rm -rf /tmp/pear

Оставьте свой комментарий

Markdown