Wiki 开源软件
Wiki 是一个协同著作平台或称开放编辑系统。所谓协同工作, 即它能够让浏览网页的人都能够去修订网页,其简介的 ... Wiki 是怎么做到的. Wiki 使用 了简化的语法,替代复杂的HTML,加上WEB 界面的编辑工具,降低内容维护的门槛; ......
我们可以用Wiki来建设帮助系统,知识系统管理,松散的讨论平台,甚至收藏夹......, 通常,针对几个人的小组进行知识系统管理,我们的基本需求就是:
- Web界面,UI要够简洁舒服
- 版本历史
- 协同编辑并解决同时编辑的冲突问题
- 能导出文件
- 能加标签
在这里我推荐几款常用的WiKi程序。
DokuWiki 、Confluence 、moinmoin wiki 、mediawiki 等等。。。
DokuWiki是一个开源wiki引擎程序,运行于PHP环境下。DokuWiki程序小巧而功能强大、灵活,适合中小团队和个人网站知识库的管理。
DokuWiki可以与多种CMS程序进行整合,例如WordPress、XOOPS、PostNuke等。由于这个原因,很多Blog作者对DokuWiki比较感兴趣。
用dokuwiki,功能很强大,速度也很快,只需要支持php的web服务器,不需要数据库,每一个你保存的wikiword其实都是以txt保存的。在内网任何一台电脑上都可以访问,不想那么开放的话,整个放在同步盘里,在同样装了同步盘客户端的电脑,一模一样的数据。
各种插件丰富,中文资源尚可,我自己装了能够显示freemind格式导图文件的插件。
知乎上的评价:
dokuwiki最简单,可以实现分分钟快速搭建,界面漂亮,功能全,可以索引提取等等;
只要能运行php的就能用,不需要数据库。
自己用,不在意安全性的问题的话,把文件夹压缩成zip包,直接迁移。
以前的老毛病,什么不能删缓存旧版本了,现在都有插件解决了。
换行别扭也有插件解决了,用起来跟论坛,跟知乎一模一样。
模版文件很少,简单修改一下,不用太花哨,主要是资料记载。
记录密码,可以用插件进行加密,需要看到的话,需要登录,需要看密码的钥匙。嘿嘿。。
H1~H6,定制一下,非常清晰。。。
代码高亮足够漂亮,还有更漂亮的console插件,你敢去看看么?
安装DokuWiki
首先去下载页面下载最新的版本,解压程序并上传到空间里。
建立新的changes.log文件内容为空。保存路径为:dokuwiki所在的目录/data/changes.log 。
dokuwiki无须数据库,所以不需要配置。
设置data目录及内的文件和文件夹属性777
编辑 dokuwiki/conf/dokuwiki.php /这个文件主要是配置的.
到此为止dokuwiki安装完成。更多的配置都在conf文件夹里.
DocuWiki 官方网站: http://www.dokuwiki.org/dokuwiki
图形化安装过程: http://www.dokuwiki.org/install:screencast
https://www.dokuwiki.org/install
下载地址:http://download.dokuwiki.org/
1、到官方网站下载DocuWiki
2、apache, php 运行环境
# yum -y install httpd # yum -y install php gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap # chkconfig httpd on # service httpd start
3、解压Doduwiki到web目录
# tar xf dokuwiki.tgz -C /var/www/html ## 修改为httpd进程的用户 # chown -R apache:apache /var/www/html/dokuwiki/
4、在浏览器输入 http://your-ip/install.php 进行安装
填写 wiki 名称,设置管理员,内容发布许可协议,ACL策略等信息。
5、配置完成之后,应该立刻删除 install.php 文件,然后再用刚才设定的管理员登陆。
# rm /var/www/html/dokuwiki/install.php
DokuWiki 安全
参考:http://www.dabu.info/dokuwiki-installation-and-configuration.html
参考:https://www.dokuwiki.org/security#web_access_security
如果你能够通过 http://your-ip/data/pages/wiki/dokuwiki.txt 访问到 dokuwiki.txt文件,那么说明你的网站数据是不安全的。因为dokuwiki使用文本数据库,也就是别人能够直接***了。
官方建议:
data
conf
bin
inc
以上四个目录是不能通过web访问的,所以,我们必须配置这些目录的权限,保证数据安全。
locationmatch: <Directory /var/www/html/dokuwiki> order deny,allow allow from all </Directory> <LocationMatch "/(data|conf|bin|inc)/"> order allow,deny deny from all satisfy all </LocationMatch>
备份:
由于Dokuwiki不使用数据库,备份是非常简单的。您需要做的就是备份所有的文件。最简单的方法就是备份整个 Dokuwiki 目录。
# tar zcpf dokuwiki_$(date +%F).tar.gz /var/www/html/dokuwiki
DokuWiki 插件和模板
手动安装:
下载插件或模板文件,解压到下面的路径,然后 chown -R 为 httpd 进程的执行身份用户。
dokuwiki/lib/tpl 模板,然后再 管理 - 配置设置进行选择。
dokuwiki/lib/plugins 插件,然后再 管理- 扩展管理器
自动安装:
通过dokuwiki 的web页面进行安装。
WRAP:必备,排版增强插件。
imgpaste:在编辑器直接粘贴就可以插入剪贴板中的图片,可以用来快速上传截图。
Note : 可以在页面中插入醒目的提示文字,有几种默认图标和样式。
Cache and Revisions Eraser:删除缓存和修订插件
Discussion:添加评论功能,需要 PageList 插件支持。
Avatar:使用 Gravatar 头像,用于评论里显示头像
Captcha:验证码插件
Tag: DokuWiki 默认以命名空间,也就是树状结构组织页面。这个插件可以用标签来组织内容。需要 PageList 插件支持。
Tagentry:在编辑栏下提供所有标签的列表,方便选择
Cloud:标签云插件
Pagequery:导航插件
参考:http://www.icomez.com/net/1641.html
DokuWiki 格式语法说明
参考: http://docs.typecho.org/wiki/syntax
DokuWiki 编辑器可视化,代码高亮和截图复制
自带编辑器不支持所见所得,依靠一些标签来建立目录和页面排榜,尽管标签很强大,但是对于初学者或者不熟悉的人来说,比较麻烦.
有大神现身了:
参考: http://blog.csdn.net/zouhao619/article/details/8523637
Dokuwiki_xhEditor
DokuWiki FAQ
如何创建新页面?
在 dokuwiki/data/pages 下创建新目录,然后在该目录下添加文本文档即可。注意目录的属主、属组以及权限。
https://www.dokuwiki.org/zh:pagename
页面名(pagename)
大写字母会自动转换为小写,中文命名会被转换成特定编码。
创建页面名
当浏览器请求一个尚不存在的页面名之时,DokuWiki会给你提供选项让你创建它(这取决于你的访问权限)。你可以在另一个DokuWiki页面中创建一个链接,然后让浏览器访问该链接,从而创建新的页面。
如果你的页面名中包含不存在的页面空间,那么,该页面空间也会被自动创建。
最简单的创建页面方法是,通过已存在的页面创建一个新页面。在地址栏输入新名称然后点击创建。层级关系已冒号分隔。
http://your-ip/doku.php?id=数据库:mysql:select
这种最简单的方法可以保证新建页面与其他页面相互关联。
删除页面名
如果你编辑一个页面名并移除其中的所有内容,那么,DokuWiki会删除该页面。
解决中文文件名乱码问题
在conf\local.php配置文件中添加一行配置 $conf['fnencode'] = 'utf-8'; 即可解决乱码问题。
转载于:https://blog.51cto.com/skypegnu1/1759508
相关文章:
Android studio安装与调试
1.下载安装android studio 下载好之后安装好2.启动报错提示1)进入刚安装的Android Studio目录下的bin目录。找到idea.properties文件,用文本编辑器打开。2)在idea.properties文件末尾添加一行: disable.android.first.runtrue &am…

java的父类java.lang.object_根父类:java.lang.Object
1、根父类(1)Object类型是所有引用数据类型的超类,包括数组类型如果一个类没有显式的声明它的父类,那么它的父类就是Object。(2)Object类中的方法,会继承到所有类型的对象中,包括数组对象。即所有对象都可以调用Object类中声明的方…

spring cloud服务发现注解之@EnableDiscoveryClient与@EnableEurekaClient
在使用服务发现的时候提到了两种注解,一种为EnableDiscoveryClient,一种为EnableEurekaClient,用法上基本一致,今天就来讲下两者,下文是从stackoverflow上面找到的对这两者的解释:原文链接 There are multiple implementations of…

strust2自定义interceptor的基本方法及操作
需求:制作一个网站需要用户登陆后才能查看,即一个权限的问题 1.首先明确在用户没登陆前有两个Action请求是可以通过的,即注册和登陆。 2.创建拦截器,如UserLoginInterceptor.java,如下 public class UserLoginIntercep…
使用xdebug分析thinkphp框架函数调用图
开发中需要性能调优,使用xdebug分析thinkphp框架函数调用图。关于xdebug的安装参考这2篇 NetBeans配置Xdebug 远程调试PHP php扩展xdebug安装以及用kcachegrind系统分析1.安装xdebug 需要先去http://www.xdebug.org看看一些文档,xdebug作为php扩展安装 #…

java+script+当前日期_如何在JavaScript中获取当前日期?
如何在JavaScript中获取当前日期?#1楼您可以使用扩展了 Date对象的Date.js库,从而可以使用.today()方法。#2楼如果您想对日期格式进行更多的粒度控制,我强烈建议您查看一下momentjs。 很棒的图书馆-只有5KB。 http://momentjs.com/#3楼你可以…

java中的类修饰符、成员变量修饰符、方法修饰符。
类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类。 abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供…
Linux 系统挂载数据盘
Linux 系统挂载数据盘: 适用系统:Linux(Redhat , CentOS,Debian,Ubuntu)* Linux的云服务器数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作。下面的操作将会把数据盘划分为一个…

java 启动某个类_java – Spring Boot – 如何指定备用启动类? (多个入口点)
我想添加一个替代的入口点到我的Spring-Boot应用程序.我宁愿把它当成一个肥罐.这可能吗?根据他们的documentation,属性loader.main指定要启动的主类的名称.我尝试java -jar MyJar.jar –loader.main com.mycompany.AlternateMain,但是我的pom.xml中指定的start-cla…

WIN7 64位系统下,右下角的声音和电源图标不见的解决办法
近日,电脑突然出现任务栏右下角的声音和电源图标消失不见的问题,重启仍旧没有修复,后来找到了解决办法 解决办法: 1.CtrlShiftEsc键调出windows资源管理器。 2.找到进程中的explorer.exe进程并结束它。 3.在文件选项的新建任务选项…

创建Maven版Java工程
步骤: 创建成功后,如图: 转载于:https://www.cnblogs.com/zhzcode/p/9722902.html
Linux系统启动任务的写法
1.到/etc/rc.d目录# cd /etc/rc.d 2.修改rc.local # vim ./rc.local你之前是怎么启动nginx和php命令复制即可。例如:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf/etc/init.d/php-fpm3.一定要给权限 # chmod x rc.local特别是喜欢下载到本地修…

java ee不能运行_Java9+移除 Java EE,导致我的 groovy 脚本无法运行
以以下这段代码为例Grab(org.jsoup:jsoup:1.10.1)import org.jsoup.JsoupJsoup.connect(https://v2ex.com).get().select(span.item_title > a).each {println it.text() : https://v2ex.com it.attr(href)}原本是 groovy2.5java8,可以正常跑,然后…

虚拟文件系统(VFS)
原文链接:http://www.orlion.ga/1008/ linux在不同的文件系统之上做了一个抽象层,使得文件、目录、读写访问等概念都成为抽象层概念,这个抽象层被称为虚拟文件系统(VFS)。 linux内核的VFS子系统如下: 每个进程在PCB(Process Control Block)中…

[学习笔记]矩阵乘法及其优化dp
1.定义: $c[i][j]\sum a[i][k]\times b[k][j]$ 所以矩阵乘法有条件,(n*m)*(m*p)n*p 即第一个矩阵的列数等于第二个矩阵的行数,否则没有意义。 2.结合律与分配率 矩阵乘法不一定任何时候都有交换律。因为交换后甚至不能保证第一个矩阵的列数等…

[LeetCode] Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串...
Given a string, find the length of the longest substring T that contains at most k distinct characters. For example, Given s “eceba” and k 2, T is "ece" which its length is 3. 这道题是之前那道Longest Substring with At Most Two Distinct Charac…

Linux创建指定用户特定指定目录权限
指定用户特定指定目录权限需要注意要指定好文件夹的权限,不然会导致nginx不能访问,最好是在root下建立目录,然后 # useradd -d /usr/www -m tempuser# passwd tempuser 回车输入密码 注意一定要带用户名,不然就是修改root!!!# c…

python asyncio教程_python中使用asyncio实现异步IO实例分析
1、说明Python实现异步IO非常简单,asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行…

c语言初学 循环 的灵活使用小案例
上为流程图 上为代码实现,没有做优化。接下来是效果图。 时间2018.10.01 地点:广东轻工业职业技术学院复制代码 转载于:https://juejin.im/post/5bb1d98a5188255c9a77441a
常见maven引用
json-lib Could not find artifact net.sf.json-lib:json-lib:jar json-lib是需要区分jdk版本的,pom.xml中的配置应加上<classifier>标签,如用jdk15: <dependency><groupId>net.sf.json-lib</groupId><artifactId…

怎么控制table的大小java_如何查询Table占用空间的大小
Oracle和DB2都支持分区表,但是我们得知道什么样的表适合使用分区表技术,Oracle的官方建议是超过2G的Table就要使用分区表。下面来总结一下,各DB中如何获得这些大小信息:Oracle 10G中:查询出当前用户的表所占用的空间大…

王豪:HW265到“HW266”
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/82929609 每年的MSU的视频压缩评比报告都是多媒体的热点话题之一,在MSU 2018评比中,华为HW265在多项测试中排名…
Flex报错Error #2048: 安全沙箱冲突
FlexJPA架构,JPA程序迁移,从A服务器到B。其他一切没变,唯一变的就是IP。 前端Flex也就是swf报错Error #2048: 安全沙箱冲突:http://xxx.swf 不能从 xxx 加载数据 如下:其实原因就是需要在www网站的根目录放一个crossdomain.xml就可…

centos 默认mysql_centos改变mysql默认目录
centos改变mysql默认目录查看SELinux状态:如果未关闭,则要关闭1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态SELinux status: enabled2、getenforce ##也可以用这个命令检查关闭SELinux修改配置文件需要重启机器:…

如何免费(轻成本)在网上做推广宣传
最近有很多人在问我一个问题,如何少成本或者免费的在网上做推广宣传,这里我也总结一下,给各位一些建议和小方法,目前就以“BAT”和其他平台为例说明一下,通常来说都会以百度重技术、阿里重运营、腾讯重产品来形容“BAT…

BZOJ2631tree——LCT
题目描述 一棵n个点的树,每个点的初始权值为1。对于这棵树有q个操作,每个操作为以下四种操作之一: u v c:将u到v的路径上的点的权值都加上自然数c;- u1 v1 u2 v2:将树中原有的边(u1,v1)删除,加入…
MyBatis点滴积累
MyBatis在使用中不知不觉积累了很多经验1.#和$ MyBatis/Ibatis中#和$的区别1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如…

java可以调用python程序吗_我们可以从java调用python方法吗?
是的,那可以做到.通常,这将通过创建PythonInterpreter对象然后使用它来调用python类来完成.请考虑以下示例:Java:import org.python.core.PyInstance;import org.python.util.PythonInterpreter;public class InterpreterExample{PythonInterpreter inte…

【转】Hbuilder MUI 页面刷新及页面传值问题
文章来源:http://www.111cn.net/sys/CentOS/67213.htm 一、页面刷新问题 1.父页面A跳转到子页面B,B页面修改数据后再跳回A页面,刷新A页面数据(1).父页面A代码window.addEventListener("pageflowrefresh", function (e) {location.r…

第三次作业---读《构造之法》1-5章有感
这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2178。 第一章:概论 读完第一章了解到了什么是软件工程、软件工程的领域。软件工程是把系统的、有序的、可量化的方法应 用到软件的开发、运营和维护上的过程。软件工程包…