安装sphinx的php扩展,CentOS6.x安装Coreseek和Sphinx扩展for PHP

coreseek 简介

coreseek是一款基于sphinx开源的全文搜索引擎,与sphinx不同的是coreseek增加了一个带有中文分词的词库。

下载coreseek安装包

本篇使用coreseek3.2.14稳定版进行讲解,最新版本是4.1,但是只有测试版。可以尝试去官方地址http://www.coreseek.cn/下载安装包,不过貌似官方下载地址已经崩溃,如果下载不成功的话可以去网上查找其它下载渠道,我的是在新浪微盘上下载的,附上地址http://vdisk.weibo.com/s/z-JIj1kq4Z81。

开始安装

在安装coreseek之前确保在系统安装了LNMP/LAMP环境。

安装依赖软件

yum install gcc make gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel

将下载好的安装包上传到Linux,执行解压命令,解压完成后进入目录

tar xzvf coreseek-3.2.14.tar.gz

cd coreseek-3.2.14

将会看到3个目录分别是csft-3.2.14、mmseg-3.2.14、testpack,其中csft实际就是sphinx安装包,mmseg为中文分词安装包,testpack是安装完coreseek后测试用的。首先安装中文分词

cd mmseg-3.2.14

./configure --prefix=/usr/local/mmseg/

如果出现如下错误

config.status: error: cannot find input file: src/Makefile.in

请执行

aclocal

libtoolize --force

automake --add-missing

autoconf

autoheader

make clean

执行编译并安装mmseg

make && make install

到这里mmseg安装完毕,可以测试下中文分词

echo '我们是中国人'>1.txt

/usr/local/mmseg/bin/mmseg -d /usr/local/mmseg/etc 1.txt

接下来安装coreseek

cd ../csft-3.2.14

sh buildconf.sh #生成configure可执行文件,如果当前目录已存在configure文件会发出警告:已存在其它版本autoconf,但不能保证能正常工作,如果出现任何问题,建议重新生成

./configure --prefix=/usr/local/coreseek \

--without-unixodbc \

--with-mmseg=/usr/local/mmseg \

--with-mmseg-includes=/usr/local/mmseg/include/mmseg/ \

--with-mmseg-libs=/usr/local/mmseg/lib/ \

--with-mysql

make && make install

到此coreseek就全部安装完成了,测试一下coreseek

cd ../testpack #进入安装包提供的测试目录

/usr/local/coreseek/bin/indexer -c etc/csft.conf --all #创建索引

/usr/local/coreseek/bin/search -c etc/csft.conf '我们是中国人'

825872bc6d0e

Paste_Image.png

创建索引时可能会出现以下错误

1./usr/local/coreseek/bin/indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

#解决办法

echo '/usr/local/mysql/lib'>>/etc/ld.so.conf

ldconfig

2.Unigram dictionary load Error Segmentation fault

#解决办法(补充说明:这个是由于字典的路径不对,如果前面设置的字典所在目录名称就是mmseg3就不会出现这个问题了,坑...)

sed 's/mmse3/mmseg/' etc/csft.conf

安装sphinx扩展for php

#sphinx扩展依赖于libsphinxclient,先安装libsphinxclient

cd api/libsphinxclient

./configure

make && make install

#下载并安装sphinx扩展

wget http://pecl.php.net/get/sphinx-1.3.2.tgz

tar zxvf sphinx-1.3.2.tgz

cd sphinx-1.3.2

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

安装libsphinxclient时如果报如下错误

sphinxclient.c:1216: error: static declaration of 'sock_close' follows non-static declaration sphinxclient.c:280: note: previous declaration of 'sock_close' was here

请执行

sed -ie '280s/^/static /' sphinxclient.c

接下来修改php.ini文件

增加下面这行到合适的位置,例如extension_dir配置行下面

extension=sphinx.so

执行下面的命令,可以看到sphinx扩展模块已添加到php里了

/usr/local/php/bin/php -m #查看php扩展模块列表

不过此时还不能在php中使用sphinx,需要重启php-fpm,我这里采用php-fpm.pid文件控制php-fpm进程

执行重启php-fpm命令

kill -USR2 `/usr/local/php/var/run/php-fpm.pid`

重启成功后打印phpinfo()

825872bc6d0e

Paste_Image.png

OK!整个安装过程就到此结束了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值