跳轉到內容
View in the app

A better way to browse. Learn more.

PHP論壇人

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

vBulletin 6.0 Sphinx CJK 中文搜索 (LNMP一键包)

精選回覆

發表於

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 索引的警告,一旦运行索引器就会创建

sphinx1.png

 

 

如果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个字

sphinx2.png

 

sphinx3.png

 

sphinx4.png

 

 

本教程额外修改vbulletin-sphinx.php程序码

vbulletin-sphinx.zip

佩服大佬,花了这么多时间,终于把这个重要功能研究出来了。

本文章最後於,由二戒編輯

建立帳號或登入後發表意見

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.