本文仅用于记录Centos8 安装Wiki.js,避免日后踩坑。
简述下Wiki.js的优缺点吧:

优点缺点
开源免费国外开发,汉化不完全,设置界面基本中英混杂
界面简洁清爽添加用户操作繁琐
程序轻巧,资源占用不高安装部署需手动,教程更新不及时
支持多种编辑模式编辑器功能功能不全
介绍支持LDAP以及第三方登录找不到LDAP设置入口
支持插件安装然鹅,目前无法安装新的扩展。此功能将在未来版本中推出。

一、更新系统并设定时区

yum -y update
#更新缓慢,可以考虑改成国内的镜像源
timedatectl list-timezones
timedatectl set-timezone Asia/Shanghai
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

二、安装Nodejs

yum module list nodejs
#先查看Yum仓库是否有nodejs

yum仓库一般包含Nodejs10,但是最新的wiki.js要求nodejs12以上方可,否则在启动环节会报错
[MASTER] error: globalThis is not defined

如果仓库包含NodeJs12,那么直接安装。

yum install -y nodejs:12

如果仓库不包含nodejs12,那么可以尝试更换源,替换国内源,一般都有nodejs10\12\14\16。
还有一种情况,如果你的服务器已经安装了低版本的nodejs,这时候先要清理安装,再重置模块,然后再重新安装。

yum remove nodejs 
#删除nodejs
yum module reset nodejs
#重置模块
yum install nodejs:12
安装nodejs 12

三、安装其他依赖环境

yum install -y epel-release git vim wget curl unzip socat redis @mariadb

四、创建wiki用户以及数据库等

groupadd --system wiki
useradd -s /sbin/nologin --system -g wiki wiki
#创建用户
systemctl enable --now mariadb
#启动数据库
mysql_secure_installation
#配置数据库,请参照提示配置
mysql -u root -p
#登录数据库
CREATE DATABASE wiki;
#创建wiki数据库
GRANT ALL PRIVILEGES ON wiki.* TO 'wikijs'@'localhost' IDENTIFIED BY '[email protected]';
#将wifi收据库授权给wikijs用户
set password for wikijs@localhost = password('123456');
#设置wijijs用户密码
FLUSH PRIVILEGES;
#刷新授权
QUIT;
#退出数据库
systemctl enable --now redis
#启动Redis
chown -R wiki:wiki /wiki
#将wiki工作目录授权给wiki用户方便启动

五、安装Wiki.js

wget https://github.com/Requarks/wiki/releases/download/2.5.255/wiki-js.tar.gz
#下载最新的Wiki.js
mkdir wiki
#创建wiki目录
tar xzf wiki-js.tar.gz -C /wiki
#解压wiji源码
cd /wiki
#进入安装目录
cp config.sample.yml config.yml && vim config.yml
#复制默认配置文件并修改数据库配置
#需要修改内容如下:
#    type: mariadb
#    port: 3306
#    user: wikijs
#    pass: 123456
#    db: wiki

到这里Wiki.js的配置就已经完成了。
接下来启动测试wiki

node server
#如果输出正常并且无报错
systemctl stop firewalld.service && systemctl disable firewalld.service
#关闭防火墙

然后通过浏览器访问Wiki.js:
http://IP:3000

如果网页可以正常打开,则配置正确。

六、配置服务

接下来将wiki.js添加为服务

vim /etc/systemd/system/wiki.service
#输入一下内容
[Unit]
Description=Wiki.js
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
User=wiki
Environment=NODE_ENV=production
WorkingDirectory=/wiki

[Install]
WantedBy=multi-user.target
#以上为wiki.js服务的内容
systemctl daemon-reload
systemctl enable --now wiki.service
#重新加载systemd服务,并启动wiki服务
status wiki
#检查wiki服务器运行是否正常

七、配置ningx反向代理

systemctl enable --now nginx
#启动nginx服务
vim /etc/nginx/conf.d/wikijs.conf
#创建配置
server {
    listen      80;
    server_name wiki.com;
    #这里请记得将域名修改为自己的域名

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_next_upstream error timeout http_502 http_503 http_504;
    }
}
#以上为Wiki.js配置
nginx -t
#测试nginx配置是否正确。如果提示正确,重载nginx
systemctl restart nginx

如果以上配置没问题,那么访问配置的域名即可。

最后修改:2021 年 12 月 15 日
如果觉得我的文章对你有用,请随意赞赏