7.动态添加php扩展模块,使php支持sphinx的类和方法
首先下载源码包:
root@CC-57:~# wget http://pecl.php.net/get/sphinx-1.3.0.tgz
root@CC-57:~# cd coreseek-3.2.14/csft-3.2.14/api/libsphinxclient/
root@CC-57:~/coreseek-3.2.14/csft-3.2.14/api/libsphinxclient# ./configure; make; make install
root@CC-57:~/coreseek-3.2.14/csft-3.2.14/api/libsphinxclient# cd
root@CC-57:~# tar zxvf sphinx-1.3.0.tgz
root@CC-57:~# cd sphinx-1.3.0
root@CC-57:~/sphinx-1.3.0# /var/www/xxxx/php-cgi/bin/phpize
root@CC-57:~/sphinx-1.3.0# ./configure --with-php-config=/var/www/xxxx/php-cgi/bin/php-config --with-sphinx
root@CC-57:~/sphinx-1.3.0# make; make install
root@CC-57:~/sphinx-1.3.0# cd
root@CC-57:~# cp /root/sphinx-1.3.0/modules/sphinx.so /var/www/xxxx/php-cgi/ext/
root@CC-57:~# vi /var/www/xxxx/php-cgi/etc/php.ini
添加 extension=sphinx.so
root@CC-57:~# /var/www/xxxx/php-cgi/sbin/php-fpm restart
Shutting down php_fpm . done
Starting php_fpm done
查询页面代码:
$keyword = urldecode(trim(strip_tags($_GET['keyword'])));
echo 'keyword=='.$keyword;
if ($keyword) {
// sphinx服务器地址
$server = '114.113.152.186';
// 端口
$port = 9312;
// 索引名 为*时表示搜索所有索引
$indexName = 'ccvms_video_main';
// 分页页码
// $page = intval($_GET['page']) > 1 ? intval($_GET['page']) : 1;
// 每页显示的数量
$pageSize = 30;
$sphinx = new SphinxClient();
// 建立连接
$sphinx->SetServer($server, $port);
// 连接超时时间(非常必要,比如sphinx服务器挂了等异常情况) 单位为s,秒
// $sphinx->SetConnectTimeout(3);
// 最大查询时间 单位为ms,毫秒
// $sphinx->SetMaxQueryTime(2000);
// 按分页取结果
// $sphinx->SetLimits(($page-1)*$pageSize, $pageSize); //第一个参数为offset,第二个参数为limit
// 模式
$sphinx->SetMatchMode(SPH_MATCH_ALL);
//$sphinx->SetMatchMode(SPH_MATCH_ALL);
// 取到的原始数据
$orgDatas = $sphinx->query($keyword, $indexName);
echo 'orgDatas==';
print_r($orgDatas);
// 调试用,如果有错误的话,可以打印$errors的值
$errors = $sphinx->GetLastError();
echo 'errors==';
var_dump($errors);
}