DokuWiki 是一个开源的 wiki 项目, 可方便进行知识和内容的管理和分享,不用安装数据库,内置权限管理,书写直观方便,有大量的插件支持。
特别适用于企业内部的内容和知识管理,只允许内部员工编辑和查阅的场景,也可以用于个人博客。

安装

1) 添加虚拟主机:由于我的 阿里云CentOs服务器 安装了oneinstack的一键部署PHP、JAVA、Nginx等环境,所以域名配置很方便,照着文档一步一步做就可以了

cd /root/oneinstack #必须进入 oneinstack 目录下执行
./vhost.sh #如下图

上图中 directory 为网站根目录,脚本执行后会自动创建,部署网站时请将代码上传到该目
录(目录、子目录和文件权限都为:www),对应 Nginx 配置文件路径为:

/usr/local/nginx/conf/vhost/www.oneinstack.com.conf (www.oneinstack.com 为绑
定的域名)

2) 到 DokuWiki 官网下载:https://www.dokuwiki.org/zh:dokuwiki

curl -O https://download.dokuwiki.org/out/dokuwiki-c5525093cf2c4f47e2e5d2439fe13964.tgz

3) 解压下载的 dokuwiki

tar zxvf dokuwiki-c5525093cf2c4f47e2e5d2439fe13964.tgz

4) 把解压文件拷到上面域名配置好的目录

cp -rf /dokuwiki/* /data/wwwroot/wiki.yourdomain.com

5) 文件授权

网站根目录权限遵循:
文件 644, 文件夹 755 ,权限用户和用户组 www
如出现文件权限问题时,请执行下面 3 条命令:
chown -R www.www /data/wwwroot/
find /data/wwwroot/ -type d -exec chmod 755 {} \;
find /data/wwwroot/ -type f -exec chmod 644 {} \;

初始化

dokuwiki 在第一次访问时,会进入初始化页面,即install.php, 配置一下管理员登录账号和密码就可以了;

插件

dokuwiki 的一个强悍功能是可以安装大量的扩张插件,下面介绍常用的插件
1) markdowku 兼用 markdown 语法;
2) ImgPaste Plugin chrome 浏览器支持图片的复制粘贴功能;
3) EditTable Plugin 可编辑的 table 界面;
4) IndexMenu Plugin 树级索引菜单;
5) PageQuery Plugin 按时间分类的索引;
6) [SyntaxHighlighter3 Plugin)(https://www.dokuwiki.org/plugin:syntaxhighlighter3) 代码高亮;

配置

1) 增大页面宽度

打开文件 lib/tpl/dokuwiki/style.ini

__site_width__    = "105em"; 默认是 75em

下图默认宽度;75em

下图修改后的宽度:105em

2) 左边添加树级索引菜单
树级索引菜单需要插件支持:IndexMenu Plugin
添加一个 sidebar 页面(如何添加页面? 参考DokuWiki 使用),添加如下内容

{{indexmenu>...#1|js#shiki_brave.png navbar id#random}}

效果如下

3) 美化树级索引, 去掉红色三角形

打开文件 lib/plugins/indexmenu/style.css
找到下面的 .dtree .indexmenu_tocbullet 这个样式,把 background 注释掉,如

/*tocbullet property*/
.dtree .indexmenu_tocbullet {
    position: absolute;
    /*background: transparent url(p_w_picpaths/toc_bullet.gif) no-repeat scroll;*/
    vertical-align: middle;
    width: 11px;
    height: 11px;
}

4) 隐藏sidebar 树节点

进入管理配置页面,滚到 indexmenu 配置项, 在

pluginindexmenuskip_index 这项设为 /(sidebar|.*:sub.*|.*:api$)/, 即把这些页面跳过,不生成树节点

5) 文件首行标题设为文件的显示标题