内容简介:前面介绍了三款不同的 RSS 系统的快速搭建使用,接下来我将演示几种不同的 Wiki 系统,同样是借助 Docker 和 Traefik 进行快速搭建,本篇是第四篇,DokuWiki。如果你有阅读过我之前写的文章,那么参考本篇文章将文章搭建起来,应该只需要3分钟或者更少,如果你没有看过,那么可以点击本文相关的文章标签,阅读过往的文章。DokuWiki 同样是一款开源并且支持免费使用的软件,由 PHP 编写,第一个提交版本在2004年,作为开源产品已经被稳定迭代了15个年头,同样天生跨平台,并被广泛使用在各种
前面介绍了三款不同的 RSS 系统的快速搭建使用,接下来我将演示几种不同的 Wiki 系统,同样是借助 Docker 和 Traefik 进行快速搭建,本篇是第四篇,DokuWiki。
如果你有阅读过我之前写的文章,那么参考本篇文章将文章搭建起来,应该只需要3分钟或者更少,如果你没有看过,那么可以点击本文相关的文章标签,阅读过往的文章。
关于 DokuWiki
DokuWiki 同样是一款开源并且支持免费使用的软件,由 PHP 编写,第一个提交版本在2004年,作为开源产品已经被稳定迭代了15个年头,同样天生跨平台,并被广泛使用在各种知识社区内,尤其适合中小团队和个人作为知识整理软件使用。
记得第一份工作,在新浪云团队的时候,内部的 Wiki 便是基于 Doku 搭建的。
DokuWiki 和前面介绍的 MoinMoin 很类似,默认使用纯文本作为数据记录的方式,所以占用服务器资源很低。
官方目前还在迭代,不过因为维护时间很长,迭代频率相对比较慢,距离当下最新的版本是 2018年4月22日 ,本文基于此版本进行撰写,感兴趣的同学可以围观: 官方项目仓库 。
话不多说,开始实战。
使用 Compose 运行 DokuWiki
DokuWiki 同样没有提供官方容器镜像,但是在 DockerHub 搜索的时候发现,Bitnami 有封装好的镜像 bitnami/dokuwiki
,我个人比较信任这个团队,从2013年开始使用他们的服务到现在,一直没有什么大问题。
这里图个省事,就不进行镜像封装了,想学习封装的同学可以翻阅之前的文章内容,不放心镜像的同学,可以围观镜像源代码地址,进行安全审查: https://github.com/bitnami/bitnami-docker-dokuwiki
配合下面的配置文件,使用 Compose 可以一键启动一个使用 文本文件 作为数据储存的 DokuWiki ,配置很简单,30 行代码左右。
version: '3' services: dokuwiki: container_name: doku.lab.io restart: always image: 'bitnami/dokuwiki:0.20180422.201901061035-r12' labels: - "traefik.enable=true" - "traefik.frontend.rule=Host:doku.lab.io" - "traefik.frontend.passHostHeader=true" - "traefik.frontend.entryPoints=https,http" - "traefik.frontend.headers.SSLRedirect=true" - "traefik.frontend.headers.STSSeconds=315360000" - "traefik.frontend.headers.frameDeny=true" - "traefik.frontend.headers.SSLProxyHeaders=X-Forwarded-Proto:https" - "traefik.frontend.redirect.regex=^https?://doku.lab.io/(.*)" - "traefik.frontend.redirect.replacement=https://doku.lab.io/${1}" - "traefik.frontend.headers.customResponseHeaders=Access-Control-Allow-Origin:*" environment: - DOKUWIKI_FULL_NAME=soulteary - DOKUWIKI_EMAIL=soulteary@gmail.com - DOKUWIKI_WIKI_NAME=Wiki - DOKUWIKI_USERNAME=soulteary - DOKUWIKI_PASSWORD=soulteary networks: - traefik expose: - 80 volumes: - ./data:/bitnami networks: traefik: external: true
和之前不同的是,这里演示了如何使用 Docker Label
定义 Traefik
的一些额外能力,比如自动挂载 ssl/tls
证书,域名重定向。
当使用 docker-compose up
将应用启动之后,你会看到下面的日志,耐心等待 dokuwiki successfully initialized
出现在日志中,之后便可以通过我们配置的域名进行访问了,本例中地址为 doku.lab.io
。(我使用 Traefik 提供服务发现,如果你不会操作,请访问我的历史文章,了解 Traefik 如何使用。)
Creating doku.lab.io ... done Attaching to doku.lab.io doku.lab.io | doku.lab.io | Welcome to the Bitnami dokuwiki container doku.lab.io | Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-dokuwiki doku.lab.io | Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-dokuwiki/issues doku.lab.io | doku.lab.io | nami INFO Initializing apache doku.lab.io | apache INFO ==> Patching httpoxy... doku.lab.io | apache INFO ==> Configuring dummy certificates... doku.lab.io | nami INFO apache successfully initialized doku.lab.io | nami INFO Initializing php doku.lab.io | nami INFO php successfully initialized doku.lab.io | nami INFO Initializing libphp doku.lab.io | nami INFO libphp successfully initialized doku.lab.io | nami INFO Initializing dokuwiki doku.lab.io | dokuwik INFO Passing wizard, please be patient doku.lab.io | dokuwik INFO doku.lab.io | dokuwik INFO ######################################################################## doku.lab.io | dokuwik INFO Installation parameters for dokuwiki: doku.lab.io | dokuwik INFO username: soulteary doku.lab.io | dokuwik INFO user fullname: soulteary doku.lab.io | dokuwik INFO Password: ********** doku.lab.io | dokuwik INFO Email: soulteary@gmail.com doku.lab.io | dokuwik INFO Wiki Name: Wiki doku.lab.io | dokuwik INFO (Passwords are not shown for security reasons) doku.lab.io | dokuwik INFO ######################################################################## doku.lab.io | dokuwik INFO doku.lab.io | nami INFO dokuwiki successfully initialized doku.lab.io | INFO ==> Starting dokuwiki... doku.lab.io | [Mon Feb 11 09:11:14.374658 2019] [ssl:warn] [pid 101] AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name doku.lab.io | [Mon Feb 11 09:11:14.381884 2019] [ssl:warn] [pid 101] AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name doku.lab.io | [Mon Feb 11 09:11:14.447186 2019] [ssl:warn] [pid 101] AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name doku.lab.io | [Mon Feb 11 09:11:14.455003 2019] [ssl:warn] [pid 101] AH01909: localhost:443:0 server certificate does NOT include an ID which matches the server name doku.lab.io | [Mon Feb 11 09:11:14.494463 2019] [mpm_prefork:notice] [pid 101] AH00163: Apache/2.4.37 (Unix) OpenSSL/1.1.0j PHP/7.1.26 configured -- resuming normal operations doku.lab.io | [Mon Feb 11 09:11:14.494539 2019] [core:notice] [pid 101] AH00094: Command line: 'httpd -f /bitnami/apache/conf/httpd.conf -D FOREGROUND'
在展示程序界面和常规操作之前,我们还是先说一下数据存放地址,以及未来插件要在哪里进行存放和应用。
在上面的配置文件 docker-compose.yml
的同级目录会自动生成 data
目录,在目录内会包含用户数据、环境配置相关的内容,如下所示:
data ├── apache │ └── conf ├── dokuwiki │ ├── conf │ ├── data │ └── lib │ ├── images │ ├── plugins │ └── tpl └── php └── conf
如果你需要应用官方市场的插件或者主题,请放置于 data/dokuwiki/lib/plugin/
目录内的指定文件夹中,和 MoinMoin
不同的是,不需要重启容器进行,直接刷新浏览器页面,插件就能够自动加载了。
我们的 Wiki 条目数据会被存放在 data/dokuwiki/data
中,所以请定期对该位置数据进行备份保存。
DokuWiki 的常规操作
打开浏览器,可以看到 DokuWiki 已经运行起来了。
在当前页面右侧可以看到编辑菜单,点击后可以进入编辑界面。
默认不使用插件,语法需要使用特殊语法 官方语法参考 。
点击保存,第一条 Wiki 条目的更新操作就完成了。
再次点击条目中的信息链接,可以直观的查看到内容的变更记录,并执行不同版本的对比,获取更多的信息。
至于安装插件、配置主题等,可以点击顶部菜单栏 Admin
,比较直观就不赘述了。
其他
如果你想要对链接进行优化,可以参考这里 Pull Request 修改 data
目录中的 Apache 配置文件即可。
最后
如果你对本文聊到的 Docker 、Traefik 、Compose 还不是很熟悉,欢迎阅读我的以往文章,补全对上述技术的认识,希望我的文章可以对你有帮助。
接下来我会继续介绍几种不同的 Wiki 系统的安装配置、魔改,如果你也在考虑如何维护一套让自己用起来舒服的知识管理工具,可以继续关注,下回再见。
— EOF
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
闪魂FLASH8网站建设实录
马谧铤 / 中国林业 / 2006-7 / 46.00元
《闪魂FLASH8网站建设实录》旨在提供以Flash(Flash 8.0为创作工具)为技术核心的整套互动网站的开发思路,其中包括了网站策划、平面设计、程序设计等实用的互联网应用技术。内容包括Photoshop CS2设计,FIash 8创作和ActionScript应用程序开发的操作流程。在技术学习的过程中.大家还将体会到顶级互动网站设计、网站建设的设计流程和思路。《闪魂FLASH8网站建设实录》......一起来看看 《闪魂FLASH8网站建设实录》 这本书的介绍吧!