两种知识库软件:BookStack和DokuWiKi在Debian12中的安装

一、BookStack的安装

1. 架设 LNMP系统环境

Debian12、php8.2-fpm、 nginx

2. 下载bookstack源码

3. 按照官网说明进行手动安装。

注意1:composer命令的安装,针对php的命令

 下载、更名、安装

wget https://getcomposer.org/installer
mv installer installer.php
php installer.php --install-dir=/usr/bin --filename=composer

注意2: .env 的配置,除了数据库,还要配置下列项,否则会自动转跳到默认的 example.com.  

APP_URL=http://your-domain.com
APP_LANG=zh_CN

4. 需要的php扩展

php -m

[PHP Modules]
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring 
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
random
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zlib

注意 mbstring 尤为重要,否则引用、链接、显示等会出问题

BoookStack的使用较为简单,其内容组织形式是: 书架→图书→页面→章节,都可以从左侧进行直观的添加。

5. 屏蔽掉左侧显示的 近期活动 信息

以管理员用户登录, 在 设置个性化页面,最下面的“自定义HTML头部内容” 这一项中添加下列样式设置内容

## 绝杀版:屏蔽掉游客浏览时的左、右两边的侧边栏
<style>
  .tri-layout-left { visibility: hidden; }
  .tri-layout-right { visibility: hidden; }
</style>
<script>
	window.addEventListener('DOMContentLoaded', (event) => {
		const loginShowing = document.querySelector('a[href$="/login"]') == null;
		const leftPanel = document.querySelector("div.tri-layout-left");
		const rightPanel = document.querySelector("div.tri-layout-right");
		if (loginShowing) {
			leftPanel.style.visibility = 'visible';
			rightPanel.style.visibility = 'visible';
		}
	});
</script>

## 如果仅仅是隐藏左侧活动记录信息
<script>
    window.addEventListener('DOMContentLoaded', (event) => {
        const loginShowing = document.querySelector('a[href$="/login"]') !== null;
        const leftActivity = document.querySelector("#recent-activity");
        if (loginShowing && leftActivity) {
            leftActivity.style.visibility = 'hidden';
        }
    });
</script>

## 如果要彻底清除左侧活动记录信息
<script>
	window.addEventListener('DOMContentLoaded', (event) => {
	    const loginShowing = document.querySelector('a[href$="/login"]') !== null;
		const leftActivity = document.getElementById("recent-activity");
	    if (loginShowing && leftActivity) {
	    	leftActivity.innerHTML = "";
	    }
	});
</script>

## 屏蔽右侧的侧边栏
<script>
	window.addEventListener('DOMContentLoaded', (event) => {
	    const loginShowing = document.querySelector('a[href$="/login"]') !== null;
	    const rightPanel = document.querySelector("div.tri-layout-right");
	    if (loginShowing && rightPanel) {
	    	rightPanel.style.visibility = 'hidden';
	    }
	});
</script>

 

二、Dokuwiki的安装

Dokuwiki的特点是易安装,内容组织和编辑较麻烦

1. 安装按照官方说明就可以,同样要求php支持,但是不用数据库

2.新建项目、页面

dokuwiki没有直观的新建页面、项目等的按钮、菜单等,需要通过直接在浏览器中修改url,引起“没有这个页面”,然后新建才可以。

修改格式 doku.php?id=项目:次级项目:页面名

 3. 删除页面、项目

3.1 在web登录后的UI界面,将页面的内容完全删除,然后保存,即可删除页面;将每个项目中 的所有页面删除,则项目也会消失。

3.2 用ssh以命令行模式进入根目录进行删除

因为dokuwiki不使用数据库,其内容都是存放在 ~/dokuwiki/data/ 这个目录中的。进一步的,项目、页面的内容,都是放在 data/pages/中的。直接用rm 物理删除即可

 3.3 文件夹内中文无法正常显示的问题

可以看到在上图中,有几个中文的项目和页面,名称都是%E*..... 需要修改配置文件,强制指定编码

vim ~/dokuwiki/conf/local.php
## 在最下方增加:
$conf['fnencode'] = 'utf-8'; 

 4. 所见即所得的编辑插件

通过管理员账户进行管理,进入扩展管理器,然后搜索 prosemirror  这个插件,进行安装和启用即可。启用后,进入页面编辑,会有一个切换按钮。

5. 利用ACL配置,设定每个项目、页面的访问权限

1.先选择要设定哪部分内容的权限; 2.选择要许可给哪个用户或者组;3.点击选择进行确定;4.选择何种权限(从左向右呈包含关系,删除权限为最大权限); 5.设定权限后点击保存; 6.点击右下角的更新。 至此设定完成。

 解释: @ALL 设定为读取即可,如果设定为编辑,则不用登录dokuwiki也可以进行编辑; 为 @user设定编辑权限; 指定具体的用户,给与创建、上传、删除等权限,按需进行。

6. 安全设置

按照官方说明进行调整即可:     安全设定:https://www.dokuwiki.org/zh:security

BookStack是一个基于MinDoc,使用Beego开发的在线文档管理系统,功能类似Gitbook和看云。 在开发的过程,增加和移除了一些东西,目前已经不兼容MinDoc了(毕竟数据表结构、字段、索引都有了一些不同),同时只支持markdown编辑器。 功能与亮点: 1、书籍分类(V1.2 +) 用户就像你的老板,他不知道自己需要什么,但是他知道自己不需要什么... 2、用户主页(V1.2 +) 在用户主页,展示用户分享的书籍、粉丝、关注和手册,增加用户间的互动 3、一键导入markdown项目 这个功能,相信是很多人的最爱了。目前这个功能仅对管理员开放。 经实测,目前已完美支持各种姿势写作的markdown项目的文档导入,能很好地处理文档间的链接以及文档的图片链接 4、一键拉取markdown项目 看到GitHub、Gitee等有很多开源文档的项目,但是一个一个去拷贝粘贴里面的markdown内容不现实。于是,做了这个一键拉取的功能。 目前只有管理员才有权限拉取,并没有对普通用户开放。要体验这个功能,请用管理员账号登录演示站点体验。 用法很简单,比如我们拉取beego的文档项目,在创建项目后,直接点击"拉取项目",粘贴如" https://github.com/beego/beedoc/archive/master.zip ",然后就会自动帮你拉取上面的所有markdown文档并录入数据库,同时图片也会自动帮你更新到OSS。 拉取项目 经实测,目前已完美支持各种姿势写作的markdown项目的拉取,能很好地处理文档间的链接以及文档的图片链接 目前已支持Git Clone导入项目 5、生成和导出PDF、epub、mobi等离线文档 这个需要安装和配置calibre。 我将calibre的使用专门封装成了一个工具,并编译成了二进制,源码、程序和使用说地址:https://github.com/TruthHun/converter 在BookStack,已经引入这个包了。使用的时候,点击"生成下载文档"即可 6、文档排序和批量创建文档 很多时候,我们在写作文档项目的时候,会习惯地先把文档项目的章节目录结构创建出来,然后再慢慢写内容。 但是,文档项目的文档少的时候,一个个去创建倒没什么,但是文档数量多了之后,简直就是虐待自己,排序的时候还要一个一个去拖拽进行排序,很麻烦。现在,这个问题已经解决了。 7、文档间的跳转 你在一个文档项目会有很多文档,其一个文档的文档标识叫readme.md,另外一个文档的文档标识叫quickstart.md,两个文档间如何跳转呢? 如果你知道站点的路由规则,倒是可以轻松链过去,但是,每次都要这样写,真的很麻烦。自己也经常写文档,简直受够了,然后想到了一个办法。如下: 我从readme.md跳转到quickstart.md,在readme.md的内容这样写: [快速开始]($quickstart.md) 如果跳转到quickstart.md的某个锚点呢?那就像下面这样写: [快速开始-步骤三]($quickstart.md#step3) 好了,在发布文档的时候,文档就会根据路由规则以及你的文档标识去生成链接了(由于是后端去处理,所以在编辑文档的时候,前端展示的预览内容,暂时是无法跳转的)。 那么,问题就来了,我文档项目里面的文档越来越多,我怎么知道我要链接的那个文档的文档标识呢?不用担心,在markdown编辑器的左侧,括号里面的红色文字显示的就是你的文档标识。 8、采集功能 看到一篇很好的文章,但是文章里面有代码段、有图片,手工复制过来,格式全乱了,所以,相信采集功能,会是你需要的。采集功能,在markdown编辑器的功能栏上面,对,就是那个瓢虫图标,就是那个Bug,因为我找不到蜘蛛的图标... 9、SEO 后台管理,个性化定制你的SEO关键字;并且在SEO管理这里,可以更新站点sitemap(暂时没做程序定时自动更新sitemap) 10、版本控制 MinDoc之前本身就有版本控制的,但是版本控制的文档内容全都存在数据库,如果修改频繁而导致修改历史过多的话,数据库可能会被撑爆。当时没有好的解决办法,所以将该功能移除了。 目前加上该功能,是因为这个功能呼声很高,所以加回来了。但是版本控制的内容不再存储到数据库,而是以文件的形式存储到本地或者是云存储上。 功能在管理后台->配置管理进行开启 11、更美观、简洁的页面布局和更为完善的移动端兼容 这是个看脸的时代...   BookStack在线文档管理系统 更新日志: v2.9 本次升级,主要是用户体验上的优化。 对无权限创建书籍书籍的用户,隐藏创建书籍入口 优化首页分类索引高亮显示,并增加回到顶部功能 修复分类下书籍统计不正
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值