前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >知识库Wiki-DokuWiki

知识库Wiki-DokuWiki

作者头像
wangmcn
发布2022-07-26 13:40:54
2.3K0
发布2022-07-26 13:40:54
举报
文章被收录于专栏:AllTests软件测试

知识库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、方式二
  • 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文件夹里,双击即可运行

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 6.1、注册发送邮件
  • 6.2、命名空间管理
  • 6.3、上传文件限制
  • 6.4、解决中文乱码
  • 7.1、新增目录
  • 7.2、新增页面
  • 7.3、删除页面
  • 7.4、移动页面
  • 7.5、编辑页面
  • 8.1、新增空间
  • 10.1、脚本创建目录
  • 10.2、转换为可执行文件
  • 10.3、将文件转换为app
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档