header-bg.jpg
Linux虚拟主机中使用MemCache与Sphinx中文分词
发表于 2017-02-16 14:41
|
分类于 Linux
|
评论次数 0
|
阅读次数 894

关闭防火墙 service iptables stop

关闭selinux vi /etclinux/config->SELINUX=disabled

Memcache

//理解memcache:
//临时的存储数据的仓库
//为第一次访问页面的用户,读数据库里的数据,然后将数据存储到memcache中
//以后的用户都读memcache中的数据
//建议给不需要实时更新的网站使用
//安装
//安装若出现问题http://blog.csdn.net/yima1006/article/details/9277183查看
//如遇Loaded plugins: fastestmirror 升级一下yum update yum
yum –y install memcached.i686
//启动
memcached –m 128m -p 11211 -d -u root -P /tmp/memcached.pid -c 256
//关闭
kill -9 `cat /tmp/memcached.pid`
kill 进程号   (进程号: ps aux | grep memcache)
//查看
netstat -tal
//安装php的memcache扩展
yum install -y php-pecl-memcache.i686
//重启apache

练习

//vi /var/www/html/index.php
//$memcache->set("test","houdunwang.com",0,20);变量名,值,不压缩,时间
$memcache = new Memcache;
$memcache->connect('127.0.0.1',11211);
$memcache->set("test","houdunwang.com",0,10);
echo $memcache->get("test");
$mem->close();


$memcache = new Memcache;
$memcache->connect('127.0.0.1',11211);
$memcache->add("test","houdunwang.com",0,10);
$memcache->add("test","houdunren.com",0,10);
echo $memcache->get("test");
$mem->close();


$memcache = new Memcache;
$memcache->connect('127.0.0.1',11211);
$memcache->set("test","houdunwang.com",0,10);
$memcache->replace("test","houdunwang.com",0,10);
echo $memcache->get("test");
$memcache->close();//关闭到memcached服务端的链接


$memcache = new Memcache;
$memcache->connect('127.0.0.1',11211);
$memcache->set("test","houdunwang.com",0,10);
$memcache->delete("test");
$res = $memcache->get("test");
var_dump($res);
$mem->close();


$memcache = new Memcache;
$memcache->connect('127.0.0.1',11211);
$memcache->set("test","houdun",0,2);
$memcache->set("test2","22222",0,2);
$memcache->flush();
echo $memcache->get('test');
echo $memcache->get('test2');
$mem->close();


$memcache = new Memcache;
$memcache->connect('127.0.0.1',11211);
//$memcache->set("test",1,0,20);//走缓存+5
$memcache->increment('test',5);
echo $memcache->get('test');
$memcache->close();


$memcache = new Memcache;
$memcache->connect('127.0.0.1',11211);
//$memcache->set("test",1,0,20);//走缓存+5
$memcache->increment('test',5);
echo $memcache->get('test');
$memcache->close();


$memcache = new Memcache;
$memcache->connect('127.0.0.1',11211);
//$memcache->set("test",100,0,20);//走缓存+5
$memcache->decrement('test',5);
echo $memcache->get('test');
$memcache->close();

//ftp将memcache.php(统计memcache内存占用情况的代码包)文件上传至www目录

Sphinx

1)安装相关软件
yum -y install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel libtool.i686 expat-devel php-devel
如果报错先删除
yum remove -y MySQL-server-5.5.38-1.rhel5.i386
yum remove -y MySQL-client-5.5.38-1.rhel5.i386
//-----------以下是安装 mmseg 软件------------
2) cd /root/sphinx
tar zxvf coreseek-4.1-beta.tar.gz
3) cd /root/sphinx/coreseek-4.1-beta/mmseg-3.2.14/
4) ./bootstrap #安装测试环境
5) ./configure --prefix=/usr/local/mmseg3
6) make & make install
//-----------测试分词软件mmseg安装是否成功------
/usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc /root/sphinx/coreseek-4.1-beta/mmseg-3.2.14/src/t1.txt
//---------安装csft软件---------
7) cd /root/sphinx/coreseek-4.1-beta/csft-4.1
8) sh buildconf.sh //必须执行的一个脚本
9) ./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
(装完会有thank you for chosing sphinx)
10) make & make install
//---------mysql分词----------因为用mysql所以需要安装mysql mysql-server 如果没有,
yum安装   (yum -y install mysql mysql-server)
启动mysql(service mysqld start)
11)复制粘贴以下代码到服务器的 mysql运行窗口。创建响应的测试分词表
#数据表 如果使用xshell设置xshell字符集为utf8
set names utf8;
drop database if exists houdunwang;
#创建库
create database houdunwang charset utf8;
use houdunwang;
drop table if exists news;
#创建表
create table news(id int primary key auto_increment,title char(100),content text,addtime int,uid int)charset utf8;
#录入数据
insert into news(title,content,uid)values('后盾网','北京后盾网',1);
insert into news(title,content,uid)values('我在后盾网学习','我在后盾网学习到了PHP技能',1);
#增量控制表
drop table if exists counter;
create table counter(id tinyint default 1 primary key ,max_id int)charset utf8;
12)先跳出mysql 因为csft.conf 配置文件中的mysql的账号密码是admin888。所以首先修改mysql的登录密码为admin888运行以下代码初始化mysql密码
mysql_secure_installation
13) 复制配置文件(文件里是数据源)
cp /root/sphinx/csft.conf /usr/local/coreseek/etc/
14)创建索引文件
/usr/local/coreseek/bin/indexer --all
15)分词搜索测试
/usr/local/coreseek/bin/search 后盾
******到这步表示sphinx从安装,Mysql链接,读取mysql数据,到给mysql里数据做完索引,分词一切OK******
//--------安装libsphinxclient否则无法安装php sphinx扩展  -----------
16) cd /root/sphinx/coreseek-4.1-beta/testpack/api/libsphinxclient
17) ./configure
18) make & make install
(如果报错,那么运行 make clean 然后 重新执行 make & make install 可能需要重复多次,直到没有报错为止)
//----------------安装php sphinx扩展-------------------
19)yum –y install php-devel
20)cd /root/sphinx/
21)tar zxvf php-module-sphinx-1.3.2.tgz
22)cd sphinx-1.3.2/
23)phpize
24)./configure --with-php-config=/usr/bin/php-config --with-sphinx
25)make & make install
//--------------修改php配置文件
26)cd /etc/php.d/
27)随便复制一个文件作为sphinx的配置文件,进行修改
cp curl.ini sphinx.ini
28)使用vi修改sphinx.ini的内容为extension=sphinx.so
//------------启动sphinx-------------
29)启动sphinx
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft.conf
29.1)如有需要可以停止sphinx
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/csft.conf --stop
30)更新索引
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --all --rotate
//------------编写php代码-----------------
31)将php文件夹放入web访问目录
cp /root/sphinx/php -a /var/www/html
去search.php中多余字符
32)安装php-mysqli扩展
yum -y install php-mysqli
33) 启动apache(没装 yum -y install httpd  service httpd start)
33 1)关闭防火墙 service iptables stop
关闭selinux vi /etc/selinux/config->SELINUX=disabled
重启apache service httpd restart
34)进入你自己的域名,如:192.168.31.31/php 输入后盾测试分词

Bug:能访问192.168.21.51,无法访问php,Apache提示You don't have permission to access / on this server

解决:在/etc/httpd/httpd.conf文件中修改Directory,增加单词Indexes,允许指向外部的目录进行访问


//----------重新建立索引--------
35)主索引
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf --all --rotate
36)增量索引
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.conf delta --rotate
//设定任务
//----------创建日志文件与脚本文件---------
37)日志
touch /usr/local/coreseek/var/log/main.log
touch /usr/local/coreseek/var/log/delta.log
38)脚本
mkdir /usr/local/coreseek/sh/
cd /usr/local/coreseek/sh
touch main.sh
touch delta.sh
39)赋予可执行权限
chmod +x *
40)修改主索引脚本
vi main.sh
内容:
#!/bin/sh
/usr/local/coreseek/bin/indexer main --rotate >> /usr/local/coreseek/var/log/ main.log
41)修改增量索引脚本
vi delta.sh
内容:
#!/bin/sh
/usr/local/coreseek/bin/indexer delta --rotate >> /usr/local/coreseek/var/log/ delta.log
42)创建计划任务
crontab -e
//计划任务
crontab -e 编辑crontab 文件
//command not found执行:yum install -y vixie-cron
//检查是否设置了开机启动:chkconfig --list crond
//启动crontab:service crond start
内容:
*/5 * * * * /bin/sh /usr/local/coreseek/sh/delta.sh
30 3 * * * /bin/sh /usr/local/coreseek/sh/main.sh

发布评论
还没有评论,快来抢沙发吧!