linux中配置phpcms v9 中的sphinx

1.首先需要安装sphinx(偷个懒直接将这些复制了)

1.下载源码包 http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz

$ tar xzvf sphinx-0.9.8.tar.gz
                $ cd sphinx
                $ 
./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql
                $ make
                $ make install

sphinx.conf样例  

链接地址http://download.csdn.net/detail/stuartjing/3603857

2.linux下编辑定时任务 crontab -e

#凌晨4点合并索引,其余时间每分钟更新索引
                
* 0-3 * * * /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf delta --rotate
                
* 6-23 * * * /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf delta --rotate
                
0 4 * * * /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --merge main delta --rotate

3.注意:全文检索模块需要mysql开启全文索引功能,
开启方法:修改mysql配置文件:window服务器为my.ini,linux服务器为my.cnf,在 [mysqld] 后面加入一行“ft_min_word_len=1”,然后重启Mysql。

4.到了最关键的步骤了,以上一些基本上在网上都能搜索到

既然sphinx都安装完了,就剩下启动了,先建立索引

/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf delta

/usr/local/sphinx/bin这个是我的安装目录下的bin

到这里执行的时候可能会遇到一些问题例如

出现sphinx必须的库文件无法找到,例如出现以下两种错误

 /usr/local/sphinx/bin/indexer: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory
 /usr/local/sphinx/bin/indexer: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory

  这主要是因为你安装了一些库后,没有能够配置相应的环境变量。你可以通过建立连接的方式修正这个问题,运行如下命令:

 ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /www/wdlinux/mysql/lib/mysql/lib/libmysqlclient.so.16.0.0  (这个是我mysql安装的目录)
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2

这里我假设你相应的软件包安装在/usr/local/xxx 目录下,如果你不是安装在相应目录下,你就需要使用你自己的路径。如果你没有安装libiconv软件包,则需要安装下,这个安装比较简单,就不多说了。

如果这样处理不能好,请在下面路路径再参加如下:

在/etc/ld.so.conf里面加入下面:
/www/wdlinux/mysql/lib/mysql  (这个是我mysql安装的目录)

#以上为libmysqlclient.so.16.0.0在mysql的路径。


然后用直接输入ldconfig重新加载下库文件。

最后呢别忘了执行 /usr/local/sphinx/bin/searchd 然后就ok了

你可能感兴趣的:(linux中配置phpcms v9 中的sphinx)