知识库Wiki-DokuWiki
目录
- 1、简介
- 2、安装部署
- 3、启动服务
- 4、插件
- 5、模板
- 6、配置
- 6.1、注册发送邮件
- 6.2、命名空间管理
- 6.3、上传文件限制
- 6.4、解决中文乱码
- 7、操作页面
- 7.1、新增目录
- 7.2、新增页面
- 7.2.1、方式一
- 7.2.2、方式二
- 7.3、删除页面
- 7.4、移动页面
- 7.4.1、方式一
- 7.4.2、方式二
- 7.5、编辑页面
- 8、媒体管理器
- 8.1、新增空间
- 8.1.1、方式一
- 8.1.2、方式二
- 8.1、新增空间
- 9、操作示例
- 10、扩展
- 10.1、脚本创建目录
- 10.2、转换为可执行文件
- 10.3、将文件转换为app
1、简介
什么是Wiki?
Wiki是一种在网络上开放且可供多人协同创作的超文本系统,Wiki站点可以有多人(甚至任何访问者)维护,每个人都可以发表自己的意见,或者对共同的主题进行扩展与探讨。
什么是DokuWiki?
DokuWiki是一个开源wiki引擎程序,运行于PHP环境下。DokuWiki程序小巧而功能强大、灵活,适合中小团队和个人网站知识库的管理。
DokuWiki可以与多种CMS程序进行整合,例如WordPress、XOOPS、PostNuke等。由于这个原因,很多Blog作者对DokuWiki比较感兴趣。DokuWiki不需要数据库,直接采用文本文件直接存储。
官方网址:
https://www.dokuwiki.org/dokuwiki
下载地址:
https://download.dokuwiki.org/
2、安装部署
1、输入命令,安装依赖插件
yum install gcc-c yum install make yum install expat-devel yum install perl yum install curl-devel yum install libxml2-devel yum install libjpeg-devel yum install libpng-devel yum install freetype-devel
检查依赖插件是否已安装
yum list installed | grep xxx
2、输入命令,安装apache(在Linux系统中,其实叫“httpd”)
yum install httpd
3、输入命令,安装php
yum install php
查询php版本
php -v
4、下载DokuWiki安装包
输入命令,将安装包进行下载,例如:
代码语言:javascript复制wget https://download.dokuwiki.org/out/dokuwiki-9e0aebfa432ca8c429d062aa962864f4.tgz
因为作者的apache配置文件里指定的路径为/data/wwwroot目录下
输入命令,将下载后的安装包解压到/data/wwwroot目录下
tar -xvf dokuwiki-9e0aebfa432ca8c429d062aa962864f4.tgz -C /data/wwwroot
文件解压到dokuwiki文件夹下
dokuwiki文件夹内容
输入命令,将dokuwiki所有权赋给apache用户
chown -R apache:apache /data/wwwroot/dokuwiki
输入命令,更改端口(根据实际项目要求),修改apache的httpd.conf配置文件
vi /usr/local/apache56/conf/httpd.conf
端口默认80,设置端口为8090
3、启动服务
1、输入命令,启动apache服务
service httpd start
如已启动,想重启,输入重启命令
service httpd restart
2、打开浏览器,输入配置地址
http://IP:端口/dokuwiki/install.php
报错,说明权限有问题
解决方法:
输入命令,更改权限
chmod -R 777 data/
chmod -R 777 lib/
chmod -R 777 conf/
之后再次刷新,可以正常访问了,切换为中文
填写信息后,保存即可
3、打开浏览器,输入访问地址
http://IP:端口/dokuwiki/doku.php?id=wiki:welcome
注意:
为了安全起见,建议删除dokuwiki文件夹下的install.php文件
输入删除命令
rm -f install.php
4、插件
存放插件的目录路径:dokuwiki/lib/plugins目录下
存放主题的目录路径:dokuwiki/lib/tpl目录下
DokuWiki提供了很多插件,直接下载安装即可
推荐插件:
1、IndexMenu Plugin
页面输入 {{indexmenu>:}}
页面效果
2、Wrap Plugin
3、Cache and Revisions Eraser Plugin
4、PageList Plugin
5、Discussion Plugin
6、Tag Plugin
7、tagentry Plugin
8、pagequery Plugin
9、ImgPaste Plugin
10、Note Plugin
11、EditTable Plugin
5、模板
DokuWiki提供了很多模板,直接下载安装即可
推荐模板:
1、Argon
2、vector for DokuWiki
6、配置
6.1、注册发送邮件
1、安装插件
smtp插件地址:https://www.dokuwiki.org/plugin:smtp
管理-扩展管理器-搜索安装,搜索smtp,进行安装
2、发送邮件例如使用163邮箱,需开启163邮箱SMTP并获取授权码
3、设置DokuWiki的smtp插件
管理-配置设置-插件设置-smtp
填写SMTP服务地址、端口、加密类型、邮箱和密码(授权码)
管理-配置设置-通知设置
填写自动发送邮件的邮箱地址,之后进行保存
4、检查是否正常发送邮件
管理-检查SMTP配置
输入接收邮件,点击发送,提示成功
5、完成用户注册,自动发送邮件
6.2、命名空间管理
为了更好的管理组织结构,管理空间,安装如下插件
管理-扩展管理器-搜索安装,进行搜索
1、Add New Page Plugin:新建界面
下载地址:
https://www.dokuwiki.org/plugin:addnewpage
2、Move Plugin:方便移动页面和命名空间
下载地址:
https://www.dokuwiki.org/plugin:move
3、Pagemove plugin:也是方便移动页面和命名空间
下载地址:
https://www.dokuwiki.org/plugin:pagemove
如果网络不稳定,无法在线安装,可以将插件下载后,上传安装
管理-扩展管理器-手动安装
6.3、上传文件限制
默认情况下,上传文件是有限制的,例如.txt文件是无法上传的
修改dokuwiki/conf/mime.conf配置文件,将不同文件类型前面的#注释去掉就可以了
6.4、解决中文乱码
创建的目录中文显示乱码
上传的文件是中文的
但是下载时,中文显示乱码
解决方法:
修改dokuwiki/conf/local.php文件
添加:
$conf['fnencode'] = 'utf-8';
之后再次新建目录后,中文显示正常
文件下载,中文显示也正常了
7、操作页面
7.1、新增目录
命名空间其实就是dokuwiki/data/pages路径下创建的目录 如果你不使用命名空间,那么你所有创建的页面都会保存在data/pages下,变得很难管理
dokuwiki/data/pages路径下,创建目录,例如:测试报告
页面上已经显示“测试报告”
7.2、新增页面
前提:Add New Page Plugin插件已安装完成
7.2.1、方式一
网站地图-wiki-welcome
Welcome页面,点击“sidebar”
新增一个侧边栏,用于存放新建框和按钮
编辑页面,输入{{NEWPAGE}},之后保存
侧边栏创建完成
返回首页
然后,我们新建页面,在侧边栏选择相应的命名空间,输入页面名称,点击增加页面
新增页面完成
7.2.2、方式二
推荐:
例如:创建“测试组/测试计划”目录,创建“测试文档”页面
浏览器访问地址“http://IP:端口/dokuwiki/doku.php?id=wiki:welcome”
在地址后添加“id=测试组:测试计划:测试文档”
修改后的访问地址为“http://IP:端口/dokuwiki/doku.php?id=测试组:测试计划:测试文档”
回车进行访问,点击新建
输入内容,例如:XXX测试排期,保存即可
点击“网站地图”,页面“测试文档”新增完成,同时上级目录“测试组/测试计划”也创建完成
7.3、删除页面
删除命名空间:如果该命名空间(目录)下有多个页面,将每个页面的内容清空保存后,该命名空间也就会消失。
点击“测试文档”页面,之后编辑此页面
将页面内容清空后,进行保存
点击“网站地图”,发现“测试文档”页面和“测试组/测试计划”目录都删除了
7.4、移动页面
7.4.1、方式一
例如:将“测试文档2”移动到“测试方案”目录下
点击“测试文档2”,页面右侧点击页面重命名
弹出重命名框
将“测试计划”修改为“测试方案”,之后点击重命名
“测试文档2”已经移动到“测试方案”目录下
7.4.2、方式二
例如:将“测试计划”目录里的“第二次执行”移动到“测试报告/测试结果”目录下
进入管理页面,点击“页面移动/重命名......”
点击“树形移动”
将要移动的文件拖拽到指定位置
注意:如果命名空间下面没有文章或者文件,是不能把其他文章或文件拖到该命名空间下面
已经将文章拖拽到“测试报告/测试结果”目录下,点击开始
执行中
提示移动操作完成
文件已经移动到指定的目录下
7.5、编辑页面
查看详细语法,访问地址
http://IP:端口/dokuwiki/doku.php?id=wiki:syntax
例如编辑页面内容:
==== H3标题 ====
=== H4标题 ===
== H5标题 ==
----
8-)
保存后,页面显示效果
8、媒体管理器
8.1、新增空间
8.1.1、方式一
dokuwiki/data/media路径下创建目录
例如:新建“测试组”、“开发组”
页面刷新后,新建的目录就显示出来了
8.1.2、方式二
推荐:
例如:创建“测试计划/测试文件”目录
浏览器访问地址“http://IP:端口/dokuwiki/doku.php?id=wiki:welcome&do=media”
在地址后添加“&ns=测试计划:测试文件”
修改后的访问地址为“http://IP:端口/dokuwiki/doku.php?id=wiki:welcome&do=media&ns=测试计划:测试文件”
回车进行访问,刷新页面,目录创建成功
9、操作示例
例如:创建“开发运维科/开发计划”目录,并在目录下创建“计划文档”页面
浏览器访问地址
“http://IP:端口/dokuwiki/doku.php?id=开发运维科:开发计划:计划文档” 回车进行访问,此时提示主题不存在
点击页面右侧的“创建”
编辑内容,并点击插入图像或其他文件按钮
在弹出的媒体文件页面,选择文件进行上传,之后点击完成
文件上传成功,之后点击此文件
文件链接自动带入过来
之后点击完成,页面创建完成(带附件)
10、扩展
10.1、脚本创建目录
由于每次在浏览器输入路径来创建目录会有些麻烦,则开发了创建目录的脚本
脚本代码:
代码语言:javascript复制#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Description : Wiki创建文件夹
# @Author : 微信公众号:AllTests软件测试
# @FileName : WikiCreateDirectory.py
# @Software : PyCharm
import paramiko
class SSHConnection(object):
def __init__(self, host, port, username, password):
self._host = host
self._port = port
self._username = username
self._password = password
self._transport = None
self._sftp = None
self._client = None
self._connect() # 建立连接
def _connect(self):
transport = paramiko.Transport((self._host, self._port))
transport.connect(username=self._username, password=self._password)
self._transport = transport
# 下载
def download(self, remotepath, localpath):
if self._sftp is None:
self._sftp = paramiko.SFTPClient.from_transport(self._transport)
self._sftp.get(remotepath, localpath)
# 上传
def put(self, localpath, remotepath):
if self._sftp is None:
self._sftp = paramiko.SFTPClient.from_transport(self._transport)
self._sftp.put(localpath, remotepath)
# 执行命令
def exec_command(self, command):
if self._client is None:
self._client = paramiko.SSHClient()
self._client._transport = self._transport
stdin, stdout, stderr = self._client.exec_command(command)
data = stdout.read().decode()
if len(data) > 0:
print (data.strip()) # 打印正确结果
return data
err = stderr.read().decode()
if len(err) > 0:
print (err.strip()) # 输出错误结果
return err
def close(self):
if self._transport:
self._transport.close()
if self._client:
self._client.close()
if __name__ == "__main__":
print("""
****** 可输入的操作命令:cd、ls、mkdir、quit ******
切换目录:cd 目录名
显示目录下文件:ls
创建目录:mkdir 目录名
退出操作:quit
""")
conn = SSHConnection('xxx.xxx.xxx.xxx', 22, 'root', 'xxxxxx')
route = " /dokuwiki/data/media/xxx"
conn.exec_command("cd" route ";" "pwd;ls")
# 进入要创建的目录
for i in range(100):
my_command = ""
input_command = input("n" "输入操作命令(例如:cd 国内):")
# 如果为cd命令
if "cd" == input_command[:2]:
# print(input_command[2:].strip())
# 路径拼接
route = route "/" input_command[2:].strip()
my_command = "cd" route ";" "pwd;ls"
# print(my_command)
# 如果为ls命令
elif "ls" == input_command[:2]:
my_command = "cd" route ";" "pwd;ls"
# print(my_command)
# 如果为mkdir命令
elif "mkdir" == input_command[:5]:
folder = input_command[5:].strip().lower().replace(" ", "_") # 英文大写转小写,空格转下划线
print("新建目录:" folder)
my_command = "mkdir" route "/" folder ";" "chmod -R 777 /dokuwiki/data/media/;" "cd" route ";" "pwd;ls"
# print(my_command)
# 如果输入quit
elif "quit" == input_command[:4]:
print("退出操作")
break
else:
print("命令不对,请重新输入")
conn.exec_command(my_command)
10.2、转换为可执行文件
将脚本转换为可执行文件,每次执行时,双击即可
1、安装pyinstaller
pip3 install pyinstaller
2、将需要转换的py文件和用于做图标的图片,存放于同一个文件夹,文件路径全部为英文路径
3、将图片格式转为ico格式(网上搜索图片格式转换,到指定网站将图片转格式)
4、将命令窗口切换到需要处理的py文件路径
5、执行转换命令
pyinstaller -F -i Wiki.ico WikiCreateDirectory.py
6、执行完命令后,需要的可执行文件就在dist文件夹中
6.1、在Windows上执行转换,转换之后的目录
dist目录里是.exe可执行文件
双击运行,就可以使用了
6.2、在Mac上执行转换,转换之后的目录
dist目录里是可执行文件
注意:如果转换文件类型是文稿格式,可执行以下命令转换
将文稿变为可执行文件的命令
执行命令sudo chmod u x /Users/wangmeng/Downloads/WikiCreateDirectory
双击运行,就可以使用了
例如:运行脚本,创建demo目录
页面可以看到利用脚本创建的新目录
10.3、将文件转换为app
仅限于Mac上
将脚本转换为.app格式文件,每次执行时,双击即可
1、安装
pip3 install py2app
2、打开py所在的文件夹
3、输入命令,在当前文件夹生成setup.py文件
py2applet --make-setup WikiCreateDirectory.py
4、执行命令
python3 setup.py py2app -A
可以看到在当前文件夹生成dist、build等
转换后的.app文件在dist文件夹里,双击即可运行