九步完成discuz论坛配置xunsearch讯搜进行全文搜索
见笑了,我是个php小白,略微能看懂一点点代码,但是修改能力是一点都没有不行。一直觉得discuz自带的搜索功能太鸡肋,而百度又对我的论坛不怎么友好,一年前就知道有讯搜xunsearch,也知道有Sphinx,但尝试了一下,都没能成功,这次咬牙用了xunsearch,终于折腾成功了,现在每天都在正常使用。
一、VPS系统选择
1、尝试阶段,服务器系统的选择有问题,我在阿里云尝试了32位的centos6.8,宣告失败了,因为有些组件版本太老,挨个更新容易出错。我还有个香港腾讯云的32位debian8.2,成功了,后来我把阿里云的更换成了64位的centos7.6,也成功了。(服务器我用wdcp面板v3.3.7,觉得没问题,需要注意的是php安装的时候选择php5.5版本以上吧,一般都会在这个版本以上,建议5.5或者5.6)
优点:新的服务器系统的很多功能都是最新的,不需要浪费精力,何况我还是个小白。
缺点:我的服务器是1G内存,装这个64位的,正常使用的时候内存占用到了64%,但是没有觉得明显的慢,所以也就用着了。讯搜不怎么占内存,但是听说您的数据超过10万级别后,搜索结果比较慢,不过这时候您也可以换个大的服务器了。
二、操作工具
2、得会用putty,用来输入些linux下的命令,putty到官方网站下,英文版的,安全,很简单,输入服务器账号root和密码就能登录开始安装了。
需要注意的:得把语言调成UTF,因为安装讯搜时有些代码是中文,方便大家阅读
三、论坛编码和备份数据
3、经过折腾,为了达到较好的体验,discuz的编码最好是UTF,这样整合讯搜就无缝了,因为讯搜就是utf的,我的论坛开始是GBK,后来整合出现乱码,为此我把我的GBK更换成了UTF,论坛升级到了X3.4版本,后台重新安装插件
记得备份好数据哦!阿里云后台做个镜像备份就妥了。数据库用的帝国备份王备份的,都挺方便。
四、安装讯搜xunsearch
4.1、putty登录,进去后是一个纯文字的框框,黑底白字,这也就是linux的系统了,刚进入的那个文件夹是根目录下的root文件夹,等下我们就把xunsearch下载在根目录的home文件夹下,复制粘贴以下代码:
上面这句的意思是,进入根目录下的home文件夹上面这句的意思是,下载最新的xunsearch版本上面这句的意思是,把下载到的xunsearch最新版本进行解压,解压后在home的文件夹里会出现一个文件夹,注意这个文件夹的名称,后面有一串数字,你不太会操作就登录ftp里面看看,也可以在putty里用dir这个单词看看,我解压后的目录名称是xunsearch-full-1.4.13上面的代码是让你进入xunsearch的安装文件夹上面这个sh的意思是执行一个脚本安装文件,这样就开始自动安装了。中间需要选择一下安装位置,默认是usr\local\xunsearch,确认按Y就行了,没必要改,我觉得。
接下来去倒杯茶安心等着,应该很快就会好了。
完事后可以试试这个代码上面是重启这个的代码,没报错就OK了,看上面的默认路径,看你要不要修改
五、软连接php
接下来重点来了,这个时候因为我的wdcp面板的php安装位置和你们不一样,我需要把php做个软连接。上面的代码就是软连接php,你可以到你的ftp中看看,看看你们版本,修改下php的版本号或者是位置。这步比较重要,不弄会报错。
到这个时候,就算是部署完毕 了,接下来要琢磨把discuz整合进去,首先说明下,我就整合了一个表, 帖子内容,用户名,发帖日期,版块名称,基本上也够了,如果你们需要整合其他的表,比如门户、日志什么的,请自行研究。
六、导入论坛帖子,进行索引生成搜索数据
这时候准备一个discuz.ini文件,你可以直接下载我的,解压缩后上传到/usr/local/xunsearch/sdk/php/app/ 文件夹,那里面还有个demo.ini,不用管它,我们要弄的是这个新的discuz.ini
discuz.rar(255 Bytes, 下载次数: 125)<div class="tip tip_4" id="attach_3659_menu" style="position: absolute; display: none" disautofocus="true"><div class="tip_c xs0">2019-10-16 10:56 上传
点击文件名下载附件
论坛索引配置文件
有了这个ini文件,咱么就在putty里粘贴下面的代码,已经是绝对路径,不用考虑文件夹和数据库的位置了
上面的这段代码是把论坛的帖子索引到讯搜里,每天早上在putty里执行一次也就差不多了,上面的这串代码,要注意修改几个地方:1、替换你的数据库密码dbpassword,2、替换你的数据库名称dbname 3、你的数据库表(我这里的就是帖子表pre_forum_post,包含回复的,如果你和我一样,就不需要动了),如果数据库账号不是root也更换下,其他的都不要动了
执行后就会出现开始把你的帖子进行索引,开始干活了。注意的是,虽然看起来索引马上就好,但是后台还是需要一定时间的,比如我的的vps是最差的,30000条数据,后台需要时间大概是8分钟。
七、生成可供网友访问的网站
那么索引完成后怎么让网友访问呢,那就需要执行下面的代码:解释一下,这段代码相当于生成了一个网站,访问页面什么的都有了,需要修改的部分是后面的网站位置,我建议把它放在你的论坛的根目录下,这段话会让你的网站根目录下,自动生成一个discuz文件夹,比如我的网站在 /www/web/minbaoku_com/public_html (你的网站根目录在哪请自己修改)这个文件夹里在浏览器里输入
就能访问了,需要注意的是,上面的代码里,discuz这个文件夹,是在你的discuz.ini 文件里面填写的,如果你想要生成别的文件夹,请修改ini文件以及上面的代码。
八、开机启动讯搜xunsearch
到这里就能全文搜索你的论坛帖子和回复了,那么我们日常需要做点什么呢?哪些可以作为计划任务自动运行,或者是开机运行呢?
这里说说两个重要的工具,一个叫crontab,一个叫systemctl,前面那个是计划任务,后面这个是开机运行,建议先了解下这两个东西的功能。
说起来这两个功能我也折腾了一会,后来也无所谓了,定期手动一下,也一点也不麻烦,我一般一个星期重新生成一次索引就够了。重要的是,开机启动一定要做好。我是这么做的
我做了一个文件xunsearch.service,可以直接使用,前提是你安装的目录没修改
xunsearch.rar(225 Bytes, 下载次数: 101)<div class="tip tip_4" id="attach_3661_menu" style="position: absolute; display: none" disautofocus="true"><div class="tip_c xs0">2019-10-16 10:59 上传
点击文件名下载附件
开机启动讯搜xunsearch
解压后把这个xunsearch.service文件放在 /etc/systemd/system/目录下
然后执行上面这条把它列入了开机自启动,附带赠送一下以下命令,基本上用不到了
到这里基本就大功告成了,如果想修改搜索界面,想美化美化的,可以修改discuz文件夹里的search.tpl文件,可以改改搜索结果的地址,还可以在论坛里把这个搜索框集成进去。
九、每天定时更新索引,更新搜索结果
每天早上可以定时索引,把前一天的新东西加到搜索结果里
putty里执行然后按 i 进入编辑模式,在最后编写(注意修改密码和数据库名称)解释一下上面的这句:
25 06 是指早上的6点25分执行
* * * 就别管了,照抄就是
后面的 /www/wdlinux/phps/56/bin/php 表示这是一个需要用php执行的脚本,这个是你的php的位置
后面的长长的就是执行索引的语句,在前面我们已经用过一次,请修改密码和数据库名称
一、VPS系统选择
1、尝试阶段,服务器系统的选择有问题,我在阿里云尝试了32位的centos6.8,宣告失败了,因为有些组件版本太老,挨个更新容易出错。我还有个香港腾讯云的32位debian8.2,成功了,后来我把阿里云的更换成了64位的centos7.6,也成功了。(服务器我用wdcp面板v3.3.7,觉得没问题,需要注意的是php安装的时候选择php5.5版本以上吧,一般都会在这个版本以上,建议5.5或者5.6)
优点:新的服务器系统的很多功能都是最新的,不需要浪费精力,何况我还是个小白。
缺点:我的服务器是1G内存,装这个64位的,正常使用的时候内存占用到了64%,但是没有觉得明显的慢,所以也就用着了。讯搜不怎么占内存,但是听说您的数据超过10万级别后,搜索结果比较慢,不过这时候您也可以换个大的服务器了。
二、操作工具
2、得会用putty,用来输入些linux下的命令,putty到官方网站下,英文版的,安全,很简单,输入服务器账号root和密码就能登录开始安装了。
需要注意的:得把语言调成UTF,因为安装讯搜时有些代码是中文,方便大家阅读
三、论坛编码和备份数据
3、经过折腾,为了达到较好的体验,discuz的编码最好是UTF,这样整合讯搜就无缝了,因为讯搜就是utf的,我的论坛开始是GBK,后来整合出现乱码,为此我把我的GBK更换成了UTF,论坛升级到了X3.4版本,后台重新安装插件
记得备份好数据哦!阿里云后台做个镜像备份就妥了。数据库用的帝国备份王备份的,都挺方便。
四、安装讯搜xunsearch
4.1、putty登录,进去后是一个纯文字的框框,黑底白字,这也就是linux的系统了,刚进入的那个文件夹是根目录下的root文件夹,等下我们就把xunsearch下载在根目录的home文件夹下,复制粘贴以下代码:
- cd /home
- wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
- tar -xjf xunsearch-full-latest.tar.bz2
- cd xunsearch-full-1.4.13
- sh setup.sh
接下来去倒杯茶安心等着,应该很快就会好了。
完事后可以试试这个代码
- /usr/local/xunsearch/bin/xs-ctl.sh restart
五、软连接php
接下来重点来了,这个时候因为我的wdcp面板的php安装位置和你们不一样,我需要把php做个软连接。
- ln -s /www/wdlinux/apache_php-5.6.30/bin/php /usr/local/bin/php
到这个时候,就算是部署完毕 了,接下来要琢磨把discuz整合进去,首先说明下,我就整合了一个表, 帖子内容,用户名,发帖日期,版块名称,基本上也够了,如果你们需要整合其他的表,比如门户、日志什么的,请自行研究。
六、导入论坛帖子,进行索引生成搜索数据
这时候准备一个discuz.ini文件,你可以直接下载我的,解压缩后上传到/usr/local/xunsearch/sdk/php/app/ 文件夹,那里面还有个demo.ini,不用管它,我们要弄的是这个新的discuz.ini
点击文件名下载附件
论坛索引配置文件
有了这个ini文件,咱么就在putty里粘贴下面的代码,已经是绝对路径,不用考虑文件夹和数据库的位置了
- /usr/local/xunsearch/sdk/php/util/Indexer.php --rebuild --source=mysql://root:dbpassword@localhost/dbname --sql="SELECT * FROM pre_forum_post" --project=discuz
上面的这段代码是把论坛的帖子索引到讯搜里,每天早上在putty里执行一次也就差不多了,上面的这串代码,要注意修改几个地方:1、替换你的数据库密码dbpassword,2、替换你的数据库名称dbname 3、你的数据库表(我这里的就是帖子表pre_forum_post,包含回复的,如果你和我一样,就不需要动了),如果数据库账号不是root也更换下,其他的都不要动了
执行后就会出现开始把你的帖子进行索引,开始干活了。注意的是,虽然看起来索引马上就好,但是后台还是需要一定时间的,比如我的的vps是最差的,30000条数据,后台需要时间大概是8分钟。
七、生成可供网友访问的网站
那么索引完成后怎么让网友访问呢,那就需要执行下面的代码:
- /usr/local/xunsearch/sdk/php/util/SearchSkel.php discuz /www/web/minbaoku_com/public_html
- http://www.minbaoku.com/discuz/search.php
八、开机启动讯搜xunsearch
到这里就能全文搜索你的论坛帖子和回复了,那么我们日常需要做点什么呢?哪些可以作为计划任务自动运行,或者是开机运行呢?
这里说说两个重要的工具,一个叫crontab,一个叫systemctl,前面那个是计划任务,后面这个是开机运行,建议先了解下这两个东西的功能。
说起来这两个功能我也折腾了一会,后来也无所谓了,定期手动一下,也一点也不麻烦,我一般一个星期重新生成一次索引就够了。重要的是,开机启动一定要做好。我是这么做的
我做了一个文件xunsearch.service,可以直接使用,前提是你安装的目录没修改
点击文件名下载附件
开机启动讯搜xunsearch
解压后把这个xunsearch.service文件放在 /etc/systemd/system/目录下
然后执行
- systemctl enable xunsearch
- # 开机启动systemctl enable xunsearch# 关闭开机启动systemctl disable xunsearch# 启动服务systemctl start xunsearch# 停止服务systemctl stop xunsearch# 重启服务systemctl restart xunsearch# 查看服务状态systemctl status xunsearchsystemctl is-active sshd.service# 结束服务进程(服务无法停止时)systemctl kill xunsearch
九、每天定时更新索引,更新搜索结果
每天早上可以定时索引,把前一天的新东西加到搜索结果里
putty里执行
- crontab -e
- 25 06 * * * /www/wdlinux/phps/56/bin/php /usr/local/xunsearch/sdk/php/util/Indexer.php --rebuild --source=mysql://root:dbpassword@localhost/dbname --sql="SELECT * FROM pre_forum_post" --project=discuz
25 06 是指早上的6点25分执行
* * * 就别管了,照抄就是
后面的 /www/wdlinux/phps/56/bin/php 表示这是一个需要用php执行的脚本,这个是你的php的位置
后面的长长的就是执行索引的语句,在前面我们已经用过一次,请修改密码和数据库名称