Jack 发布于5月2日 分享 发布于5月2日 vBulletin 6.0 Sphinx CJK 中文搜索 (LNMP一键包) 宝塔面板可用的Sphinx CJK 中文搜索,修改为LNMP一键包的路径后,还是不能用,有错误消息 还要再修改 vbulletin-sphinx.php 因此本帖子附件可下载 vbulletin-sphinx.php 教程环境:Rocky Linux 8、军哥LNMP一键安装包 2.0、MySQL 5.7、PHP 8.0 ----------------------------------------------------------------- 安装套件、依赖包 ----------------------------------------------------------------- 安装java yum -y install java 安装python3.11、安装 python-devel yum -y install python3.11 yum -y install python3.11-devel 安装glibc-2.28 yum -y install glibc 安装gcc-c++ 8.5 yum -y install gcc-c++ 安装mysql-devel-8.0.36 yum -y install mysql-devel 安装pip wget https://bootstrap.pypa.io/pip/get-pip.py python3.11 get-pip.py 安装Jpype1 pip3.11 install Jpype1 安装 libpq 13.11 yum -y install libpq pip安装sphinx,也许需要相关的依赖包 pip3.11 install --user sphinx ----------------------------------------------------------------- 下载Sphinx二进制包 & make编译 ----------------------------------------------------------------- Sphinx官网下载 http://sphinxsearch.com/downloads 安装 Sphinx 3.0.1 http://sphinxsearch.com/downloads/sphinx-3.0.1-7fec4f6-linux-amd64.tar.gz/thankyou.html Sphinx版本太新,会有更多的错误 下载完成,上传到自己的服务器,放在 /usr/local/ 目录 cd /usr/local/ tar zxf sphinx-3.0.1-7fec4f6-linux-amd64.tar.gz 将sphinx-3.0.1目录,更名为sphinx mv sphinx-3.0.1-7fec4f6-linux-amd64 sphinx 开始编译 cd /usr/local/sphinx/api/libsphinxclient ./configure --enable-id64 --prefix=/usr/local/sphinx make && make install ----------------------------------------------------------------- 在 /usr/local/sphinx/ 创建目录 ----------------------------------------------------------------- 创建目录 mkdir /usr/local/sphinx/log mkdir /usr/local/sphinx/data ----------------------------------------------------------------- 配置vBulletin论坛的config.php ----------------------------------------------------------------- vi /home/wwwroot/域名.com/core/includes/config.php 在论坛根目录/core/includes/config.php 文件的末尾,添加以下内容: $config['Misc']['sphinx_host'] = '127.0.0.1'; $config['Misc']['sphinx_port'] = '9306'; $config['Misc']['sphinx_path'] = '/usr/local/sphinx'; //no trailing slash $config['Misc']['sphinx_config'] = $config['Misc']['sphinx_path'] . '/etc/vbulletin-sphinx.php'; 保存并离开 :wq ----------------------------------------------------------------- vbulletin-sphinx.php 文件上传 ----------------------------------------------------------------- vbulletin-sphinx.php 上传到 /usr/local/sphinx/etc/ 目录 本帖子的附件可下载 vbulletin-sphinx.php ----------------------------------------------------------------- 上传 sphinxsearchfiles 文件夹 ----------------------------------------------------------------- SFTP上传 sphinxsearchfiles 文件夹 到 /home/wwwroot/域名.com/ 在vBulletin 6.0 论坛程序.zip 的 do_not_upload 文件夹中,可找到 sphinxsearchfiles 文件夹 改为 www www chown www:www -R /home/wwwroot/域名.com/* cd /home/wwwroot/域名.com/ 查看sphinxsearchfiles是否改为 www www ls -l ----------------------------------------------------------------- 修改 vbulletin-sphinx.php ----------------------------------------------------------------- 修改 vbulletin-sphinx.php vi /usr/local/sphinx/etc/vbulletin-sphinx.php 修改为LNMP一键包的PHP路径 #!/usr/local/php/bin/php -q 将 $myforumroot 更改为确切的论坛根目录 $myforumroot = '/home/wwwroot/你的域名.com'; $charsetTablesFolder = '/home/wwwroot/域名.com/sphinxsearchfiles'; $charsetTablesPrefix = 'sphinxcharsets_cjk.txt'; 查找 mysql,如果你的服务器是安装mariadb,能不能将 mysql 改为 mariadb,还需要测试过才知道 type = mysql listen = {$config['Misc']['sphinx_port']}:mysql41 本教程还有额外修改vbulletin-sphinx.php程序码,不过你不用修改,本帖子附件可以下载到 注意:只建议安装 Sphinx 3.0.1,Sphinx其他的版本在下面执行会有其他错误 保存并离开 :wq ----------------------------------------------------------------- 将 vbulletin-sphinx.php 文件设置为可执行文件 ----------------------------------------------------------------- 设置为可执行文件 chmod +x /usr/local/sphinx/etc/vbulletin-sphinx.php ----------------------------------------------------------------- 启动服务(daemon) ----------------------------------------------------------------- cd /usr/local/sphinx/ /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/vbulletin-sphinx.php 忽略有关 vbulletin disk 索引的警告,一旦运行索引器就会创建 如果Sphinx版本太新 (sphinx-3.7.1),会有更多的错误 因为vbulletin-sphinx.php基本还是旧版PHP修改来的 ---------------------------------------------------------- 测试sphinx是否运行 ---------------------------------------------------------- ps ax | grep search[d] 如果正常运行,则显示 /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/vbulletin-sphinx.php 类似的消息 ----------------------------------------------------------------- 论坛后台打开Sphinx中文搜索 ----------------------------------------------------------------- 论坛后台 -> 设置 -> 选项 -> 消息搜索选项 -> 启用搜索引擎 -> 是 搜索索引字的最小长度 -> 2 -> 保存 论坛后台 -> 设置 ->搜索类型 选择搜索执行 -> Sphinx搜索 -> 进行 论坛后台 -> 维护 -> 清除系统缓存 论坛后台 -> 维护 -> 一般更新工具 -> 重建搜索索引 -> 你确定要清空搜索索引? -> 是 论坛后台 -> 维护 -> 一般更新工具 -> 重建搜索索引 -> 要索引的内容类型 -> 所有 -> 重建搜索索引 ---------------------------------------------------------- reboot auto start sphinx ---------------------------------------------------------- 网上找到开机启动Sphinx脚本 写一个sphinx.sh cd /usr/local/bin vi sphinx.sh 将下面几行黏贴到 sphinx.sh #!/bin/sh . /etc/rc.d/init.d/functions appName="Sphinx" stop(){ /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/vbulletin-sphinx.php --stop > /dev/null 2>&1 ret=$? if [ $ret -eq 0 ]; then action $"Stoping $appName: " /bin/true else action $"Stoping $appName: " /bin/false fi return $ret } start(){ /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/vbulletin-sphinx.php > /dev/null 2>&1 ret=$? if [ $ret -eq 0 ]; then action $"Starting $appName: " /bin/true else action $"Starting $appName: " /bin/false fi return $ret } case $1 in restart) stop start ;; stop) stop ;; start) start ;; esac exit 0 保存并离开 :wq ----------------------------------------------------- sphinx.sh修改为可执行权限 ----------------------------------------------------- chmod +x /usr/local/bin/sphinx.sh ----------------------------------------------------- 修改rc.local,开机启动Sphinx ----------------------------------------------------- 之前写过 rc.local 教程,为了CentOS Linux 改为使用 iptables 防火墙 (开机启动firewall.sh) 修改rc.local vi /etc/rc.d/rc.local 把这一行 贴到 最底下 /usr/local/bin/sphinx.sh start 保存并离开 :wq 重开机 sudo reboot 测试sphinx是否运行 ps ax | grep search[d] 回到论坛 可搜索中文的2个字 本教程额外修改vbulletin-sphinx.php程序码 vbulletin-sphinx.zip 意见的链接 分享到其他网站 更多分享选项…
推荐的帖子
创建帐户或登录后发表意见
你需要成为会员才能发表意见
创建帐户
在我们的论坛注册新帐户,只需要几个简单步骤!
注册帐户登录
已有帐户?请登录。
立刻登录