知识库Wiki-DokuWiki

2022-07-26 13:40:54 浏览数 (1)

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

0 人点赞