Linux下CoreSeek及PHP扩大模块的设置

2019-07-25 作者:yzc216.com官网   |   浏览(151)

本人安装CoreSeek的系统为Centos6.0  CoreSeek版本: coreseek 3.2.14:点击下载   PHP:PECL/Sphinx扩展:sphinx-1.2.0.tgz  点击下载 。这些软件是都是源码包,我们是要通编译进行安装的。

首先在你的linux上先下载一个coreseek的一个linux的安装包

前提条件是系统己安装完成apache mysql php的WEB服务。我是以yum来安装的。如果你没有安装过请按照下面给出的链接先完成基本的LAMP环境的安装。

 

LAMP安装教程://www.jb51.net/article/31379.htm      (安装之前大家可以先关闭Selinx及Iptables防火墙具体操作也可以在本博客找到。)

由于官网的下载地址已经不存在所以这里我已经以其他渠道下载完成

第一步、下载上面提到地两个源码包、并上传到Linux下的 /lamp 目录,如果目录不存在大家可以自行建立。

 

第二步、要完成一下CorreSeek安装操作系统基础开发库及mysql依赖库以支持mysql数据源和xml数据源,

打开linux首先安装如下依赖包;(如果有的话只需要更新)

coreseek安装需要预装的软件:yum install make gcc g gcc-c libtool autoconf automake imake mysql-devel libxml2-devel expat-devel

  在cd /usr目录下

大家可以先用rpm -q  包名  的方式来查看你的系统是否安装过包,如果有安装过就可以不用安装,比如mysql-devel这个我们就不需要安装,因为我们在安装LAMP环境时就己安装过了。

1、yum -y install m4 autoconf automake libtool

第三步、安装mmseg

 

$ tar xzvf coreseek-3.2.14.tar.gz

2、yum -y install gcc gcc-c wget

$ cd coreseek-3.2.14

 

$ cd mmseg-3.2.14

3、yum -y install mysql-devel

$ ./bootstrap    #输出的warning信息可以忽略,如果出现error则需要解决

 

$ ./configure --prefix=/usr/local/mmseg3

##mmseg3是一个中文分词插件

$ make && make install

 

$ cd ..

如果没有下载的话可以将根本文档带的安装包上传到linux

第四步、安装coreseek

 

$ cd csft-3.2.14

如果安装包已经放好

$ sh buildconf.sh    #输出的warning信息可以忽略,如果出现error则需要解决

 

$ ./configure --prefix=/usr/local/coreseek  --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql    ##如果提示mysql问题,可以查看MySQL数据源安装说明

执行如下命令:

$ make && make install

下载文件wget -nc http://www.082000.com/download/sur/coreseek-3.2.14.tar.gz

$ cd ..

或把安装包用fz传到usr目录下

现在安装完成了,就可以到 /usr/local/ 查看是否有mmseg3及coreseek目录,如果存在说明己正确安装。

tar zxvf coreseek-3.2.14.tar.gz                 解压命令

第五步、进行安装sphinx-1.2.0.tgz 的PHP 扩展

 

在安装扩展之前我需要先配置一下CoreSeek的配置文件并启动 searchd服务  searchd的位置在/usr/local/coreseek/bin/目录下。这个配置怎么设置我先不说了,因为我也在研究当中。我会在这里提供我的配置文件给大。便于下面安装PHP扩展,完成安装后大家可以慢慢研究CoreSeek的功能。

cd coreseek-3.2.14                          进入目录

点击下载配置文件 并放到/usr/local/coreseek/etc/下。

 

现在回到  /lamp/目录下。

cd mmseg-3.2.14/                           进入中文分词插件

$ tar xzvf  sphinx-1.2.0.tgz

  

$ cd sphinx-1.2.0

./bootstrap                                 

$ phpize   #这里大家如果提示没有这个工具,大家可以用 yum install php-devel来安装这个软件。

 

$  cd ../coreseek-3.2.14/csft-3.2.14/api/libsphinxclient/

./configure --prefix=/usr/local/mmseg3          检测配置

$ ./configure

 

$ make && make install

make  && make install                      编译 &&  编译安装

$ cd-

 

$./configurl --with-php-config=/usr/bin/php-config  --with-sphinx

echo $? 输出0代表没错

$ make && make install

cd../csft3.2.14/                      进入配置目录

$ vi /etc/php.ini

 

#查找extension加载模块的地方添加以下一行配置保存退出重启apache服务就可以用phpinfo()来查看是否己安装上。

shbuildconf.sh                     

extension=sphinx.so

执行脚本

$ :wq

./configure --prefix=/usr/local/coreseek --without-python --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql --host=arm                       

$ service httpd restart

                                      检测配置

您可能感兴趣的文章:

  • Linux下PHP安装mcrypt扩展模块笔记
  • linux系统下php安装mbstring扩展的二种方法
  • linux下apache、mysql、php安装配置详细笔记
  • linux下安装php扩展memcache的方法
  • Linux下编译安装php libevent扩展实例
  • Linux下安装PHP MSSQL扩展教程
  • Linux下手动编译安装PHP扩展的例子分享
  • PHP zip扩展Linux下安装过程分享
  • Linux下为PHP添加扩展库的方法
  • linux下为php添加curl扩展的方法
  • Linux下独立添加PHP扩展模块mbstring的方法
  • Linux(CentOS)下PHP扩展PDO编译安装的方法

cd /usr/local  看有没有mmseg3

cd ../

cd coreseek-3.2.14/

cd csft-3.2.14/

安装过程需要修改一个配置文件

在win安装包找到改好后替换掉linux 内的此文件

vi src/sphinxexpr.cpp

 

然后将所有的T val = ExprEval ( this->m_pArg, tMatch ).....修改为

 

    T val = this->ExprEval ( this->m_pArg, tMatch )

(建议大家将此文件拿到本地进行修改)

替换后执行[root@localhost csft-3.2.14]# make

make install

 

cd /usr/local/coreseek/etc                        

 进入coreseek安装完成的路径

 

输入ls会看到3个文件

example.sql  sphinx.conf.dist  sphinx-min.conf.dist

现在已经基本安装完成

 

其中example.sql是示例sql脚本我们将其导入到数据库中的test数据库中作为测试数据(会创建两张表 documents和tags)

mysql -u root -p

show databases;

use test;

创建表

source /usr/local/coreseek/etc/example.sql

exit;

创建vi sphinx.conf

输入以下内容:

source src1

{

type = mysql

sql_host = 192.168.214.128

sql_user = root

sql_pass = root

sql_db = test

sql_port = 3306 # optional, default is 3306

sql_sock                              = /tmp/mysql.sock

sql_query_pre = SET NAMES utf8

sql_query = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content FROM documents

sql_attr_uint = group_id

sql_attr_timestamp = date_added

sql_query_info = SELECT * FROM documents WHERE id=$id

}

source src2 : src1

{

sql_query = SELECT `id`, 2 AS table_id, `username`, `password`, `email`, `salt`, `from` FROM table_2

}

index test1

{

source = src1

path = /usr/local/coreseek/var/data/test1

docinfo = extern

charset_type = zh_cn.utf-8

mlock = 0

morphology = none

min_word_len = 1

html_strip = 0

charset_dictpath = /usr/local/mmseg3/etc/

ngram_len                    = 0

}

index test2 : test1

{

source = src2

path = E:/SQL_DATA/coreseek/var/data/table_2

}

 

indexer

{

mem_limit = 32M

searchd

{

port = 9312

log = /usr/local/coreseek/var/log/searchd.log

query_log = /usr/local/coreseek/var/log/query.log

read_timeout = 5

max_children = 30

pid_file = /usr/local/coreseek/var/log/searchd.pid

max_matches = 1000

seamless_rotate = 1

preopen_indexes = 0

unlink_old = 1

}

 

 

进入 cd /etc/

打开 vim ld.so.conf

添加:/usr/local/mysql/lib

刷新 ldconfig

 

说明:

代码段source src1{***} 代表数据源里面主要包含了数据库的配置信息,src1表示数据源名字,可以随便写。

代码段index test1{***} 代表为哪个数据源创建索引,与source *** 是成对出现的,其中的source参数的值必须是某一个数据源的名字。

其他参数可以查看手册,这里不再赘述。

 

 

生成索引:

 

/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all

其中参数--all表示生成所有索引

当然也可以是索引的名字例如:

/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf test1

 

 

执行后可以在/usr/local/coreseek/var/data目录中看到多出一些文件,是以索引名为文件名的不同的扩展名的文件

在不启动sphinx的情况下即可测试命令:

 

(这是开启sphinx的命令行搜索就是说 number是你要查询的数据名称)

 /usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf

(searchd是开启sphinx的搜索服务功能)

Php操作linux上的sphinx

在站点域名目录下创建一个文件列如test.php

在test.php文件中写入如下内容;

(注意与test同级需要将本身的sphinxapi类加载进来)

<?php

header("content-type:text/html;charset=utf8");

include'./sphinxapi.php';

$sphinx= new SphinxClient();

$sphinx->SetServer('你linux上的ip地址',9312);

$res=$sphinx->Query("搜索字段","*");  //这里的*代表匹配所有定义好的规则

print_r($res);

?>

 

vim /etc/rc.local 自启动文件夹

本文由yzc216亚洲城发布于yzc216.com官网,转载请注明出处:Linux下CoreSeek及PHP扩大模块的设置

关键词: yzc216亚洲城 yzc216.com官网