Jack Posted May 2, 2024 Share Posted May 2, 2024 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 Link to comment Share on other sites More sharing options...
二戒 Posted May 2, 2024 Share Posted May 2, 2024 (edited) 佩服大佬,花了这么多时间,终于把这个重要功能研究出来了。 Edited May 2, 2024 by 二戒 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now