wikijs部署及中文全文检索

系统配置及需求

centos7
wikijs
nodejs
postgres13
scws,zhparser(postgres 13中文检索插件)
nginx

安装nodejs、postgres13及wikijs

nodejs

  • 下载nodejs安装包
wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz
  • 解压安装包
tar xvf node-v12.16.1-linux-x64.tar.xz
  • 安装
mv node-v12.16.1-linux-x64 /usr/local/
  • 为node、npm建立软链接
ln -s /usr/local/node-v12.16.1-linux-x64/bin/node /usr/bin/node
ln -s /usr/local/node-v12.16.1-linux-x64/bin/npm /usr/bin/npm
  • 测试nodejs
[root@itwiki wiki]# node -v
v12.16.1

安装postgres13

注:postgres13安装后,使用zhparser遇到的大坑,zhparser必须手动安装配置。

  • 安装postgres13相关程序
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install -y centos-release-scl
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache
yum install -y postgresql13  postgresql13-server postgresql13-contrib postgresql13-devel
#以上安装完后,避免遗漏,再次安装完成postgressql所有
yum install -y postgresql13*
  • 启动postgres
/usr/pgsql-13/bin/postgresql-13-setup initdb
systemctl start postgresql-13
  • 最好关闭防火墙
systemctl stop firewalld
  • 创建用户/数据库/授权
sudo -u postgres psql
##创建用户
CREATE USER wikijs WITH PASSWORD 'wikijsrocks';
##创建数据库
CREATE DATABASE wiki OWNER wikijs;
##授权用户
GRANT ALL PRIVILEGES ON DATABASE wiki TO wikijs;
ALTER USER wikijs WITH SUPERUSER;
##退出数据库
\q
  • 修改postgresql服务连接文件
cd var/lib/pgsql/13/data
vi pg_hba.conf

原本为peer

  • 重启postgres
systemctl restart postgresql-13.service
安装postgres中文检索
  • 安装需求扩展
yum install gcc make wget git -y
  • 下载scws安装
wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2
tar -xvf scws-1.2.3.tar.bz2
cd scws-1.2.3/
./configure
make
make install
##查看安装目录,返回结果才算安装成功
[root@itwiki ~]# ls /usr/local/include/scws/
charset.h  crc32.h  darray.h  pool.h  rule.h  scws.h  version.h  xdb.h  xdict.h  xtree.h
  • 下载zhparser源码
git clone https://github.com/amutu/zhparser.git
#将pg_config加入环境变量
cd zhparser/
export PATH=$PATH:/home/postgres/bin
#编译和安装zhparser
 make
 make install
  • postgres添加中文检索
psql -U wikijs -d wiki
##  wiki=>
-- https://docs.requarks.io/en/search/postgres
CREATE EXTENSION pg_trgm;
CREATE EXTENSION zhparser;
CREATE TEXT SEARCH CONFIGURATION pg_catalog.chinese_zh (PARSER = zhparser);
ALTER TEXT SEARCH CONFIGURATION chinese_zh ADD MAPPING FOR n,v,a,i,e,l WITH simple; 
## 忽略标点影响
ALTER ROLE wikijs SET zhparser.punctuation_ignore = ON;
## 短词复合
ALTER ROLE wikijs SET zhparser.multi_short = ON;.
查看chinese_zh
\dF
##返回结果如下,则成功
               List of text search configurations
   Schema   |    Name    |              Description
------------+------------+---------------------------------------
 pg_catalog | arabic     | configuration for arabic language
 pg_catalog | chinese_zh |
##测试一下
select ts_debug('chinese_zh', '白垩纪是地球上海陆分布和生物界急剧变化、火山活动频繁的时代');
  • 退出 session,重新连入 postgres 数据库,关闭 wikijs superuser权限
psql -U postgres -d postgres
ALTER USER wikijs WITH NOSUPERUSER;

安装wikijs

  • 下载安装包
cd usr/local
wget https://github.com/Requarks/wiki/releases/download/2.1.113/wiki-js.tar.gz
tar -xzf wiki-js.tar.gz
  • 配置wikijs
cd /usr/local/wiki
## 重命名配置文件
mv config.sample.yml config.yml
vim config.yml
        # 配置HTTP端口
          port: 3000
        # 配置数据库
        db:
          type: postgres
          host: localhost
 		  port: 5432
  		  user: wikijs
  		  pass: wikijsrocks
  		  db: wiki
		# 配置存储目录
		  dataPath: /data0/wiki
  • 配置搜索引擎
vim /usr/local/wiki/server/modules/search/postgres/definition.yml
###enum list 添加一个元素 chinese_zh
  - chinese_zh
  • 保存并启动wiki.js
cd /usr/local/wiki
node server

登陆localhost:3000进行初始化

在这里插入图片描述

配置wiki为系统服务

cat > /etc/systemd/system/wiki.service << EOF
[Unit]
Description=Wiki.js
After=network.target

[Service]
Type=simple
WorkingDirectory=/usr/local/wiki
ExecStart=/usr/bin/node server
Restart=always

User=root
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target
EOF
[root@itwiki system]# systemctl daemon-reload
  • 设置rc-local开机服务
cat > /etc/rc.local << EOF
#!/bin/bash











touch /var/lock/subsys/local
sudo -u postgres /usr/pgsql-13/bin/pg_ctl -D /data0/pgsql -l /var/log/pgsql/server.log start
EOF
[root@itwiki system]# chmod +x /etc/rc.local
cat > /etc/systemd/system/rc-local.service << EOF
[Unit]
Description=/etc/rc.d/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.d/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.d/rc.local start
TimeoutSec=0
RemainAfterExit=yes
EOF
[root@itwiki system]# systemctl daemon-reload
[root@itwiki system]# systemctl restart wiki.service
[root@itwiki system]# systemctl status wiki.service
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值