欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CentOS6.5安装coreseek和sphinx php扩展

程序员文章站 2022-07-01 13:50:14
...

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 '我们是中国人'
CentOS6.5安装coreseek和sphinx php扩展
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 declarationsphinxclient.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()



作者:Barry锋
链接:http://www.jianshu.com/p/825872bc6d0e
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。