Apache Error 500 (Internal Server Error)

:?:加载DokuWiki时,出现错误500(内部服务器错误),我该怎么办?

:!:当发生阻止请求完成的致命错误时,会发生内部服务器错误。这可能有无数的原因,没有一个答案如何解决它。

常见原因有:

  1. 错误的.htaccess或Web服务器配置
  2. 不兼容的PHP版本
  3. 缺少PHP扩展
  4. 断开的插件代码
  5. 文件权限
  6. SE Linux问题
  7. 等。

你要做的最重要的事情就是找到更多的关于到底出了什么问题的信息。Web服务器将把有关错误的附加信息写入其错误日志文件。请参阅服务器/PHP错误日志以了解如何定位日志文件。

dokuwiki自定义css

Dokuwiki一直是我很喜欢用的Wiki应用,最近又新搭建了一个。最新版的模板很简洁,但美中不足的是行间距过小。用英文的人一般不会觉得,但中文就显得太挤了。

Dokuwiki其实支持用户自定义css。只需要在conf/下建立一个userstyle.css的文件就可以了。

比如修改行高,写入

.dokuwiki div.page
{
line-height: 26px;
}

即可。

另外,有一个特别需要注意的安全问题。如果不想开放wiki,光是把wiki设置成close是不够的。因为别人还可以通过注册新账号的方

DokuWiki 命名空间管理插件

为了更好的组织结构,Dokuwiki提供了命名空间这个功能,那怎么管理命名空间的,其实可以安装插件去管理

Add New Page Plugin:新建界面

https://www.dokuwiki.org/plugin:addnewpage

Move Plugin:方便移动页面和命名空间

https://www.dokuwiki.org/plugin:move

Pagemove plugin:也是方便移动页面和命名空间

https://www.dokuwiki.org/plugin:pagemove

上面三个插件提供了创建和修改命名空间的功能。

当然如果不安装插件也可以创建,比如你有一个界面中的连接指向了一个新的截面,但是这个界面是在命名空间中,但是这个命名空间不存在,那么系统会自动创建一个命名空间。当然也可以使用Add New Page这个插件创建

参考:

http://www.ligenyuan.cn/wiki/reproduce:dokuwiki_page_name

https://www.dokuwiki.org/plugin:addnewpage

DokuWiki命名空间

DokuWiki命名空间

在DokuWiki中,你可以使用”命名空间”对你的页面进行分类。

创建命名空间

你不需要独立地创建命名空间,只需简单地在页面名中使用冒号就可以创建。在最后一个冒号之后的语言符号(token)就是页面本身的名字,其他的语言符号都是命名空间。DokuWiki会自动创建页面用到的、不存在的所有命名空间。

例子:

example
表示当前命名空间的”example”页面。

:example
表示根部命名空间的”example”页面。

wiki:example
表示命名空间”wiki”中的页面”example”。命名空间”wiki”位于根部命名空间之下。

ns1:ns2:example
表示命名空间ns2中的”example”页面。命名空间ns2位于命名空间ns1下面;命名空间ns1位于根部命名空间下。

:ns1:ns2:example
同上。

.ns1:ns2:example
表示名命名空间ns2下的”example”页面。命名空间ns2位于命名空间ns1下面;命名空间ns1位于当前命名空间下。

.ns1:ns2:
表示命名空间ns2的”开始”页面。命名空间ns2位于命名空间ns1下面;命名空间ns1位于当前命名空间下。

FIXME: 同样,[..namespace:] – 表示上级命名空间,——这应该记载在文档中。

删除命名空间

命名空间内的所有页面都被移除之时,该命名空间逻辑上不再存在。DokuWiki通常也会删除这个刚清空的文件夹。

如何重命名命名空间

你可以使用PageMove插件将每个页面从旧的命名空间移动到新的命名空间。请参考相关文档了解这是否满足你的需要。 手动的方式稍困难些:

  • 重命名表示命名空间的文件夹,这些文件夹在:
    • data/pages
    • data/media (如果存在)
  • 移除该命名空间在 data/meta下的元数据
  • 移除该命名空间在data/attic下的历史记录数据(或者将它们移走,如果你想保留旧版)

例如,在Unix主机上,你可以:

  • mv /dokuwiki_base/data/pages/old_namespace /dokuwiki_base/data/pages/new_namespace
  • mv /dokuwiki_base/data/media/old_namespace /dokuwiki_base/data/media/new_namespace
  • rm -Rf /dokuwiki_base/data/meta/old_namespace
  • rm -Rf /dokuwiki_base/data/attic/old_namespace

要注意,对于非拉丁字符设置(例如希腊语、俄语等),需要编码 old_namespace 和/或 new_namespace 等词语。

  • (通过编辑链接)纠正指向已移除命名空间下所有页面的链接(在移除命名空间之前,你可以通过反向链接(backlink)发现需要修改的链接)。
  • 浏览新命名空间下的每个页面,这会创建已经丢失的已移除的命名空间下的页面的索引信息和元数据。

但是,你依然留下大量无用信息,例如data/changes.log中、cache下的各种文件(包括.idx文件等)。如何困难,你可以按照下面的方法从空白状态开始(同样,在Unix下),要注意的时,这意味着丢失所有的历史信息(也就是最近修改):

  • cat /dev/null > /dokuwiki_base/data/changes.log
  • rm -Rf /dokuwiki_base/data/attic/*
  • rm -Rf /dokuwiki_base/data/cache/?
  • rm -Rf /dokuwiki_base/data/cache/*.idx
  • rm -Rf /dokuwiki_base/data/cache/purgefile
  • 浏览你wiki的每一个页面

我知道这很费解(可能我忘记/弄乱一些你认为应该做的事情)。所有的都是PITA。你可以使用一些可重建整个wiki的搜索索引、删除整个cache和/或旧版wiki从而避免手动操作的插件

命名空间默认链接

对于以冒号结尾的链接ID(linked)[[foo:bar:]],可能指向命名空间下的默认文件。 链接指向哪个页面,取决于所存在的特定名字的文件。对于[[foo:bar:]],会检测以下页面:

foo:bar:$conf['start']
foo:bar:bar
foo:bar

系统按照上面的顺序检测页面,并会链接到最先找到的页面。对于这些链接,不会在链接中检查多种格式(autoplural linking)。 :!: 这个特征仅在2006-09-28 RC1版或更新版上可用。

DokuWiki格式语法说明

DokuWiki 支持一些简单的标记语言, 以尽最大可能使文档看上去更友好。本页面包含了所有你在编辑页面时可能用到的语法的说明。如果需要查看本页源码,只需要点击页面顶部或者底部的 编辑本页 按钮即可。
如果您是初尝Wiki,那么可以使用 Wiki砂箱 来尽情挥洒。
通过快捷按钮,您可以更方便地使用这些标记。

基本文本格式

DokuWiki支持 粗体斜体下划线 以及 等宽体 等格式。当然,您也可以 混合使用 所有这些格式。

DokuWiki支持 **粗体**, //斜体//, __下划线__ and ''等宽体'' 等格式。
当然,您也可以 **__//''混合使用''//__** 所有这些格式。

可以使用 下标上标

可以使用 <sub>下标</sub> 和 <sup>上标</sup>。

您也可以使用 删除线 标记某些信息。

您也可以使用 <del>删除线</del> 标记某些信息。

段落 是由空行所建立的。如果您想 强制建立新行 而不建立段落,您可以使用两个连续的反斜杠+空格或是回车作为标记。请看样例:

这是一些有着换行标记的文字。
请注意 反斜杠只在回车符之前
或者在
一个空格之前的时候才有效。 \\而这样就并不起作用。

这是一些有着换行标记的文字。\\ 请注意
反斜杠只在回车符之前\\
或者在\\ 一个空格之前的时候才有效。 \\而这样就并不起作用。

请只在必须的时候才使用强制的换行标记。

链接

DokuWiki支持多种形式的链接。

外部链接

外部链接会被自动地识别: http://www.google.com 或者简单地写作 www.google.com – 当然您也可以为链接设置名字: 链接到google. 类似这样的电子邮件地址:andi@splitbrain.org 也可以被识别。

DokuWiki支持多种形式的链接。外部链接会被自动地识别:
http://www.google.com 或者简单地写作 www.google.com
- 当然您也可以为链接设置名字: [[http://www.google.com|链接到google]]。
类似这样的电子邮件地址: <andi@splitbrain.org> 也可以被识别。
内部链接

内部链接可以用方括号创建。您可以只给出链接的地址:wiki:pagename,也可以附加上链接的名字:我的链接。Wiki的页面名字将会被自动地识别为小写字母,并且不允许使用特殊字符。

内部链接可以用方括号创建。您可以只给出链接的地址:[[pagename]],
也可以附加上链接的名字:[[pagename|我的链接]]。
Wiki的页面名字将会被自动地识别为小写字母,并且不允许使用特殊字符。

您可以通过在页面名中使用冒号的方式来使用 命名空间

您可以通过在页面名中使用冒号的方式来使用 [[wiki:namespaces|命名空间]]。

如果您需要关于命名空间(namespaces)的更详细的信息,请参见 wiki:namespaces

您也可以链接到一个网页内部的某一节,只需要将该节书签的名称以一个#号分隔加在网页的地址后面即可。这是一个连向 本节 的链接。

这是一个连向 [[syntax#internal|本节]] 的链接。

注:

  • 已存在页面 的链接和到 未存在页面 的链接,其外观是不同的。
  • 默认情况下,DokuWiki不使用 CamelCase 来自动建立链接,(CamelCase类似于PmWiki中的WikiWord)。但是也可以在 设置文件 中启用它。 Hint: If DokuWiki is a link, then it’s enabled.
  • 当一节的标题改变时,该节的书签也会改变,因此,请不要太依靠网页内的链接。
Wiki间链接

DokuWiki支持 Wiki间链接 ,即到其他wiki的链接。例如,这是一个到Wikipedia上关于Wiki的一个页面的的链接: Wiki

DokuWiki支持 [[interwiki|Wiki间链接]] ,即到其他wiki的链接。
例如,这是一个到Wikipedia上关于Wiki的一个页面的的链接: [[wp>Wiki]]
Windows共享文件夹

Windows共享文件夹,例如 this 也可以被识别。请注意,这只在内部 局域网 等环境中才可能被成功访问。

Windows共享文件夹,例如 [[\\server\share|this]] 也可以被识别。

注:

  • 出于安全原因,只有在微软IE浏览器上才能够直接访问Windows共享文件夹。
图像链接

您也可以用图像来作为一个内部或者外部的链接,只需同时使用链接和图像的语法,如下所示:

[[http://www.php.net|{{wiki:dokuwiki-128.png}}]]

请注意:在链接名中使用语法,只有显示图像的语法会被识别,请不要使用其它语法。

脚注

您可以使用两个连续小括号来添加脚注1)

您可以使用两个连续小括号来添加脚注((看这里,这是一个脚注))。

标题段落

您可以使用最多达5层的标题来使您的页面更富结构性。如果您使用了三个以上的标题,那么DokuWiki会自动在页面上生成一个名为“本页目录”的标题列表。当然,您也可以关闭这项特性,只需在编辑时在页面里加入 ~~NOTOC~~ 字样即可。

H3标题
H4标题
H5标题
==== H3标题 ====
=== H4标题 ===
== H5标题 ==

您可以通过连续的4个以上“-”号来创建一条水平分割线:


图像和其它文件

您可以使用双大括号来在页面中加入 图像 。您还可以选择是否指定图像的显示大小。

原始大小:

指定宽度:

指定宽度和高度:

重新指定宽度和高度的外部图像:

原始大小:                        {{wiki:dokuwiki-128.png}}
指定宽度:                        {{wiki:dokuwiki-128.png?50}}
指定宽度和高度:                  {{wiki:dokuwiki-128.png?200*50}}
重新指定宽度和高度的外部图像:    {{http://de3.php.net/images/php.gif?200x50}}

使用左方或者右方的空格,您可以选择对齐方式:

{{ wiki:dokuwiki-128.png}}
{{wiki:dokuwiki-128.png }}
{{ wiki:dokuwiki-128.png }}

当然,您也可以指定一个图像的名字,将鼠标移到图像上可以看到效果。

这是图像的名字

{{ wiki:dokuwiki-128.png |这是图像的名字}}

如果您指定的文件名(无论是外部的还是内部的)不是一个图像(gif,jpeg,png),那么它将被显示为一个链接。

列表

Dokuwiki支持带编号或不带编号的列表。要使用列表,在文字前加入两个空格,然后使用*标志不带编号的列表,用-标志带编号的列表。

  • 列表
  • 第二项
    • 下一层
  • 第三项
  1. 带编号的列表
  2. 第二项
    1. 用缩进表示更深的层
  3. 完了
  * 列表
  * 第二项
    * 下一层
  * 第三项

  - 带编号的列表
  - 第二项
    - 用缩进表示更深的层
  - 完了

表情符号

DokuWiki会将一些常用的 表情符号 转换为图像。除了默认的表情符号以外,您也可以在 smiley 文件夹中放入更多的表情图,然后在 conf/smileys.conf 中设置它们即可。下面是Dokuwiki包含了的表情图像:

  • 8-) 😎
  • 8-O 😯
  • :-( 🙁
  • :-) 🙂
  • =) =)
  • :-/ :-/
  • :-\ :-\
  • :-? 😕
  • :-D 😀
  • :-P 😛
  • :-O :-O
  • :-X :-X
  • :-| 😐
  • ;-) 😉
  • ^_^ ^_^
  • :?:
  • :!:
  • LOL LOL
  • FIXME FIXME
  • DELETEME DELETEME

印刷样式

DokuWiki可以将特定字符转换为印刷时所用的样式。下面是可以识别的这类字符的列表:

→ ← ↔ ⇒ ⇐ ⇔ » « – — 640×480 © ™ ® “He thought ‘It’s a man’s world’…”

-> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r)
"He thought 'It's a man's world'..."

请注意:在配置文件中可以禁用这类自动转换。

表格

DokuWiki可以用简单的语法创建表格。

标题1
标题2
标题3

(1,1)
(1,2)
(1,3)

(2,1)
展宽的单元格

(3,1)
(3,2)
(3,3)

表格的每一行都以分隔符 | (普通行)或者 ^ (标题行)作为开头和结束。

^ 标题1        ^ 标题2         ^ 标题3       ^
| (1,1)        | (1,2)         | (1,3)       |
| (2,1)        | 展宽的单元格               ||
| (3,1)        | (3,2)         | (3,3)       |

要水平合并单元格,只需要将后一个单元格设置为空即可,如上面演示的一样。请确保每一行有相同数量的单元格分隔符!

竖直的标题列也是可以实现的:

标题1
标题2

标题3
(1,2)
(1,3)

标题4
不再合并单元格

标题5
(2,2)
(2,3)

可以看到,单元格前面的分隔符决定了单元格的格式。

|          ^ 标题1          ^ 标题2          ^
^ 标题3    | (1,2)          | (1,3)          |
^ 标题4    | 不再合并单元格 |                |
^ 标题5    | (2,2)          | (2,3)          |

注:垂直合并单元格尚未实现。

您可以对齐表格的文字。只需要添加多余两个的空格在您需要对齐的方向的反向即可:如果需要右对齐,在左边添加两个空格;反之,则在右边添加。在两边均添加空格可以实现中间对齐。

有对齐的表格

右对齐
居中
左对齐

左对齐
右对齐
居中

xxxxxxxxxxxx
xxxxxxxxxxxx
xxxxxxxxxxxx

下面是源文件中的格式:

^           有对齐的表格                   ^^^
|        右对齐|     居中     |左对齐        |
|左对齐        |        右对齐|     居中     |
| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |

无格式区块

在一段文字的最前面加上 2 个空白,来直接作为「文本框」不对它做加工处理(就像前面那些说明一样)。或者也可以用 <code><file> 这两个标签(tag)都可以达到类似效果。

这段是用 <code> 产生的,所有空格及所有原始格式都会照样显示,还其本色。
 就像       <-这个

或者
    方与圆  似刚与柔
    圆契合于方
    方契合于圆
    两心同一点
这段跟上段很像,但是改用 <file> ,可以把它用在「引述名言(Quote)」效果上。  
  
        remember, information is not knowledge,
                  knowledge is not wisdom
                  wisdom is not truth
                  truth is not beauty
                  beauty is not love
                  love is not music
                  music is the best
  
                                                -- frank zappa

若要略过某段内含 WIKI 语法,不对该段文字作任何处理, 可以使用 <nowiki> 标签或更简单一点用 2 个 %% 放在该段文字的前后,请参考下面例子:

<nowiki>这段字不要用 [[WIKI]] 语法</nowiki> 或是%%这段字不要用 [[WIKI]] 语法%%

这一段包含一些原本会在 WIKI 内有特殊处理,像是 http://www.splitbrain.org 及 **强调语气的文字** ,但是正如所看到的,这里什么都不做任何处理。

您可以看本页的原始写法来察看这一段是怎么写的。

语法的高亮度显示

DokuWiki 可把原始码语法来做高亮度显示(Syntax Highlighting),来更加具可读性。 它采用的是 GeSHi Generic Syntax Highlighter —— 所以只要 GeSHi 有支持的,DokuWiki 亦可。

用法就类似前例的 <code> ,但要在标签(tag)内指定该原始码所使用的语言。比如 <code java> 举例:

/** 
 * The HelloWorldApp class implements an application that
 * simply displays "Hello World!" to the standard output.
 */   class HelloWorldApp {   public static void main(String[] args) {
        System.out.println("Hello World!"); //Display the string.
    }
}

目前支持的语言有: actionscript, ada, apache, asm, asp, bash, caddcl, cadlisp, c, c_mac, cpp, csharp, css, delphi, html4strict, java, javascript, lisp, lua, mpasm, nsis, objc, oobas, oracle8, pascal, perl, php-brief, php, python, qbasic, smarty, sql, vb, vbnet, visualfoxpro, xml

可下载的代码块

若您使用上述的「<code>」或「<file>」语法,您或許希望让浏览者直接下载该段代码。您可以在语言代码后方指定一個文件名,方便浏览者下载:

<file php myexample.php>
<?php echo "hello world!"; ?>
</file>
myexample.php
<?php echo "hello world!"; ?>

若您不想把语法高亮显示出,但想方便浏览者下载,您可以用链接号「-」作语言代码。例如:「<code – myfile.foo>」。

RSS/ATOM Feed聚合

DokuWiki能從外部XML feed中聚合數據。爲分析這些XML feed,DokuWiki使用了SimplePie。凡是SimplePie能理解的格式,都可用於DokuWiki中。您可以更改不同的參數,以改變其渲染。參數之間請用空格隔開:

參數
描述

any number
最多顯示多少項內容;預設值是8。

reverse
將最新條目顯示在前面。

author
顯示條目的作者名字。

date
顯示條目數據。

description
顯示條目的描述;如果HTML被禁用,所有標籤將被過濾掉

n[dhm]
刷新周期,其中,d=日數,h=小時數,m=分。例如,12h=12小時。

預設的刷新周期是4小時。小於10分鐘者亦視爲10分鐘。DokuWiki通常會提供頁面的暫存版,但這做法不適用於包含動態外部內容的頁面。上面的參數則告訴DokuWiki:若對上一次渲染時間已經過了刷新周期,就要重新渲染頁面。

範例:

{{rss>http://slashdot.org/index.rss 5 author date 1h }}

控制巨集

有些語法會影響DokuWiki對頁面的渲染,而自身不輸出任何內容。可用的控制巨集如下:

巨集
描述

~~NOTOC~~
如果頁面出現該控制巨集,將不會創建目錄。

~~NOCACHE~~
DokuWiki預設會緩存所有的輸出。有時您並不希望這樣(例如您使用了上述的<php>語法),便可使用這控制巨集,強制DokuWiki在每次訪問時都重新渲染頁面。

語法附加元件

運用附加元件,可以擴充DokuWiki的語法。附加元件的安裝方法,請見其他相應頁面中說明。本wiki系統使用了下列附加元件:

  • Info Plugin 2013-02-16Andreas Gohr
    Displays information about various DokuWiki internals
  • Wrap Plugin 2013-03-24Anika Henke
    Universal plugin which combines functionalities of many other plugins. Wrap wiki text inside containers (divs or spans) and give them a class (choose from a variety of preset classes), a width and/or a language with its associated text direction.
  • Translation Plugin 2013-09-25Andreas Gohr
    Supports the easy setup of a multi-language wiki.

1) 看这里,这是一个脚注

Testlink中文问题修改

最近在评价testlink,但是装上testlink1.6.2显示中文不正确,在经过在网上查找资料、钻研后,终于问题解决了。记录一下: 1.解决界面中文乱码:编辑config.inc. php 文件,找到 define(‘TL_TPL_CHARSET’, DB_SUPPORTS_UTF8 ? ‘UTF-8’ : ‘ISO-8859-1’); //defi

最近在评价testlink,但是装上testlink1.6.2显示中文不正确,在经过在网上查找资料、钻研后,终于问题解决了。记录一下: 1.解决界面中文乱码:编辑config.inc.php文件,找到  define(‘TL_TPL_CHARSET’, DB_SUPPORTS_UTF8  ? ‘UTF-8’ : ‘ISO-8859-1’);
//define(‘TL_TPL_CHARSET’, ‘gb2312’); // Chinese charset 替换为: //define(‘TL_TPL_CHARSET’, DB_SUPPORTS_UTF8  ? ‘UTF-8’ : ‘ISO-8859-1’);
define(‘TL_TPL_CHARSET’, ‘gb2312’); // Chinese charset
此时在页面配置选择简体中文,则可以正确显示中文字体了。   2.解决中文输入不正常:找到lib/functions/logging.inc.php,找到do_mysql_query函数,在 $nQuery++;下面加上,下面一行: mysql_query(“SET NAMES ‘latin1′”); Ok,中文输入的问题也解决了。 3.解决测试用例时间的乱码问题:
编辑:config.inc.php,找到$g_locales_date_format这变量,把其对应的 ‘zh_CN’ => “%Y&Auml;ê%mÔÂ%dÈÕ”串乱码,改成正确的中文。 4.最后这些项都调整正确后,可能还是存在firefox中文显示正确,ie中文显示不正确的现象。

这个问题是因为apache本身的问题引起的,需要调整apache2triad\conf\下的httpd.conf文件,加上 AddDefaultCharset GBK

5.更改mysql_query(“SET NAMES ‘latin1′”);后需要解决的问题:

在修改2。的问题,会导致设定测试计划的权限出错,不能对人员赋予测试计划的权限。

经过多天的摸索,发现是和建库脚本的默认数据格式有关,需要修改testlink\install\installnewdb.php

找到$sql_create = “CREATE DATABASE `” . mysql_escape_string($db) . “` CHARACTER SET utf8 “;

把它修改为$sql_create = “CREATE DATABASE `” . mysql_escape_string($db) . “` CHARACTER SET latin1 “;就可以解决这个问题了。

,但是装上testlink1.6.2显示中文不正确,在经过在网上查找资料、钻研后,终于问题解决了。记录一下: 1.解决界面中文乱码:编辑config.inc.php文件,找到  define(‘TL_TPL_CHARSET’, DB_SUPPORTS_UTF8  ? ‘UTF-8’ : ‘ISO-8859-1’);
//define(‘TL_TPL_CHARSET’, ‘gb2312’); // Chinese charset 替换为: //define(‘TL_TPL_CHARSET’, DB_SUPPORTS_UTF8  ? ‘UTF-8’ : ‘ISO-8859-1’);
define(‘TL_TPL_CHARSET’, ‘gb2312’); // Chinese charset
此时在页面配置选择简体中文,则可以正确显示中文字体了。   2.解决中文输入不正常:找到lib/functions/logging.inc.php,找到do_mysql_query函数,在 $nQuery++;下面加上,下面一行: mysql_query(“SET NAMES ‘latin1′”); Ok,中文输入的问题也解决了。 3.解决测试用例时间的乱码问题:
编辑:config.inc.php,找到$g_locales_date_format这变量,把其对应的 ‘zh_CN’ => “%YÄê%mÔÂ%dÈÕ”串乱码,改成正确的中文。 4.最后这些项都调整正确后,可能还是存在firefox中文显示正确,ie中文显示不正确的现象。

这个问题是因为apache本身的问题引起的,需要调整apache2triad\conf\下的httpd.conf文件,加上 AddDefaultCharset GBK

5.更改mysql_query(“SET NAMES ‘latin1′”);后需要解决的问题:

在修改2。的问题,会导致设定测试计划的权限出错,不能对人员赋予测试计划的权限。

经过多天的摸索,发现是和建库脚本的默认数据格式有关,需要修改testlink\install\installnewdb.php

找到$sql_create = “CREATE DATABASE `” . mysql_escape_string($db) . “` CHARACTER SET utf8 “;

把它修改为$sql_create = “CREATE DATABASE `” . mysql_escape_string($db) . “` CHARACTER SET latin1 “;就可以解决这个问题了。

搭建自己的Wiki ,用于发布进度和自己的工作心得

0 need to know:

DokuWiki是一个针对小公司文件需求而開發的Wiki引擎。DokuWiki是用程序设计语言PHP开发的并以GPL 2发布。DokuWiki基于文本存储,所以不需要数据库,其数据文件在Wiki系统外也是可读的。DokuWiki的功能齐全,支持UTF-8,最新版支持中文链接。能够单独编辑页面中的某个章节,能够自动生成目录,适合中小企业、个人使用,用作资料归档、指南、读书笔记等。DokuWiki安装很简单,默认提供配置工具。
 
  • 文本存储:DokuWiki通过txt文件存储页面,不需要数据库
  • 版本控制:DokuWiki存储每一个Wiki页面的所有版本,允许用户比较当前版本和任何历史版本。使用了和MediaWiki类似的差异引擎(比较版本间的差异的软件)。通过计时锁定机制,可以防止不同用户编辑同一个页面时产生冲突。
  • 访问控制:访问控制可以通过用户管理程序完成,用户管理程序允许定义用户和用户组,以及定义访问控制列表,其中管理员用户可以定义页面和名字空间级别的权限。
  • 插件:DokuWiki具有一个通用的插件接口,这个接口简化插件的开发和维护的过程。目前已经有超过100个可用的插件。管理员用户在插件管理程序的帮助下可以很容易地集成和管理这些插件。
  • 模板:Wiki的外观可以自定义。开发社群已经提供了许多不同的模板。
  • 国际化和本地化:DokuWiki全面支持Unicode(UTF-8),所以可以显示如中文泰文希伯来文等语言。目前DokuWiki的界面已经有约40种语言。
  • 缓存:DokuWiki存储Wiki页面渲染后的的输出,以减少服务器的负载。
  • 全文检索:DokuWiki集成有一个索引搜索引擎,用户可以在Wiki上搜索关键字。
  • 没有所見即所得的编辑器:DokuWiki不提供所见即所得的编辑器,但有提供编辑工具条。

DokuWiki的其它特性可参见其主页的特性列表

–from 维基百科

1 准备工作

i.安装apache2
  1. sudo apt-get install apache2  

然后在浏览器中输入:

localhost
如果显示 It works ,说明web server已经运行。
 
ii.安装php5
 
  1. sudo apt-get install php5  
  2. sudo apt-get install libapache2-mod-php5  
  3. sudo /etc/init.d/apache2 restart  

测试是否成功:
vi /var/www/test.php
添加以下内容
<?phpinfo()?>
再次登录网页,输入:
localhost/test.php
如果显示了php的版本信息等,那么就说明成功支持PHP,到此准备工作完毕

2 安装DokuWiki

Step 1: 从这里下载 Download Page.
Step 2: 阅读 security page 关于如何保证自己的Wiki安全. 如果有疑问,这里是mailing list
Step 3: 下载好的压缩文件,解压后的dokuwiki,放在/var/www/文件夹下,当然,修改一下权限,可读可写.
Step 4: 在浏览器中输入”localhost/dokuwiki/install.php”,按照提示,点击安装,如果发生错误,一般是权限不足,chmod a+rw -R dokuwiki/

3 使用方法

访问我们建好的wiki,这是我自己新建的一个简单的HelloWorld

如果想学习更多DokuWiki可以做到的事情,你可以看官方的视频,也可以看手册,但是最简单有效的
方法是去edit官方网站的网页(你才知道这个也是DokuWiki做的?)看看它的效果是怎么做出来的

 

Edit:

Dokuwiki主题/模板制作

之前也有写过,不过已经删掉了,因为提到的方法什么的都过时了,很多内容也没说清楚。看评论时发现这方面的东西还是有人需要的,于是决定重新写一遍。对于主题/模板的制作,除了官方文档之外,也可以在符合 Dokuwiki 标准的 starter 模板基础上进行修改,不少不错的模板都是基于它的。和官方文档类似,这里以 Starter 模板为例。

先安装 Starter 模板,并将 lib/tpl/starter 重命名为 lib/tpl/[你的模板名称] (名称应仅包含 a-z 和 0-9),然后在配置管理器里选择这个新模板。

目录结构

Starter 模板的目录下有不少文件,其中必要的有:

  • main.php: 主要的页面布局文件,决定我们一般所看到的页面的布局
  • detail.php: 图片的详细信息页布局
  • mediamanager.php: 媒体管理器/选择器窗口的布局
  • style.ini: 样式控制文件,决定每个样式表应用的情形(屏幕、打印等),并定义一些全站通用的颜色
  • template.info.txt: 模板的信息文件,包括名字、作者的信息等。

页面布局 (HTML+PHP)

页面布局的三个文件中,通常只需要修改 main.php,因为它影响一般所看到的页面的布局。没有特别需求的话,detail.phpmediamanager.php 不必修改,也可以直接复制默认模板的。布局文件是HTML+PHP,可以调用 Dokuwiki 提供的模板函数来显示标题、维基内容等等,也可以调用全局变量。Starter 模板的 main.php 比较复杂,可以先看一个简单的例子

<html>
  <head><title><?php echo $conf['title']?></title></head>
  <body>
    <div class="dokuwiki">
      <?php tpl_content()?>
      <?php tpl_indexerWebBug()?>
    </div>
  </body>
</html>

这会在标题栏显示网站名称,在页面上显示维基的内容。其中 $conf 是一个全局变量,包含 Dokuwiki 的配置信息。而 tpl_content() 是一个模板函数,可以显示带目录的文章内容。另外一个tpl_indexerWebBug()是每个模板都必须有的函数,否则搜索的索引可能无法建立。

模板函数中的 tpl_includeFile() 可以引用模板目录下的其它文件,从而方便用户添加自定义的内容。比如在 main.php 中写

<head>
    <?php tpl_includeFile('meta.html') ?>
</head>

可以将当前目录下的 meta.html 的内容放入。另外,在被引用的文件中也可以使用 PHP 代码。默认模板和 Starter 模板都预先定义了一些钩子,参见 Include Hooks

页面样式 (CSS)

对于模板的样式,Dokuwiki 会先读取 style.ini 文件 (参考 devel:style.ini)。这个文件决定需要哪些 CSS/LESS 文件以及每个文件应该用于何种情形(屏幕,打印等),同时对全站通用的颜色占位符进行定义。比如

[stylesheets]
css/basic.css  = screen
css/design.less = screen
css/print.css  = print   [replacements]
__text__ = "#333" ; @ini_text

这表示 css/basic.csscss/design.less 将应用于屏幕显示,而 css/print.css 用于打印,同时定义了__text__占位符代表的颜色。之后只需编辑相应的 CSS/LESS 文件就可以了。在 CSS 中使用颜色占位符的示例如下

body {
    color: __text__;   
}

如果是 LESS 则是

body {
    color: @ini_text;
}

Dokuwiki模版Vector使用总结

Dokuwiki模版Vector使用总结

Posted on 2012 年 11 月 8 日   11373 Views

Contents [hide]

模版介绍

仿维基百科主题,有侧边栏、用户页、讨论页、标签页功能,支持中文。

可以自定义 LOGO、CSS 样式、侧栏、标签页等。所有修改都在 lib/tpl/vector/user 目录下。

  • 自定义 LOGO:将图片命名为 logo,扩展名可以是 png、gif、jpg。然后放入 user 目录下。
  • 自定义 Favicon:将图片命名为 favicon.ico,放入 user 目录。(最好再放一个在根目录,方便搜索引擎收录 favicon 图片)
  • 自定义 CSS:要改变页面的显示样式,编辑 user 目录下的 screen.css 文件。要改变打印样式,编辑 print.css
  • 自定义 JavaScript:编辑 user 目录下的 user.js 文件。需要在配置设置里激活——载入“vector/user /user.js“?
  • 自定义标签页:标签页就是上面那一排“文章”、“讨论”之类的,可以添加自己的。在 user 目录的 tabs.php 里编辑,文件里有例子可以参考。
  • 自定义底部按钮:在 user 目录下的 buttons.php 中,文件里有例子。
  • 自定义侧栏内容:可以添加自己的区块,在 user 目录下的 boxes.php 中,文件里有例子。

增加自定义顶部导航

在user/screen.css中添加css代码

/*导航条*/

#diynav {

width: 450px;

height: 20px;

background: transparent url(http://localhost/wiki/lib/images/back.png) top left no-repeat;

position: absolute;

top: 0;

left: 36%;

margin-left: -225px;

padding: 0;

font: 14px Arial;

list-style-type:none;

}

#diynav a {

display: block;

text-align:center;

}

#diynav a:link  {

color:#666;

text-decoration:none;

}

#diynav a:visited  {

color:#666;

text-decoration:none;

}

#diynav a:hover  {

color:#9AC0CD;

text-decoration:none;

font-weight:bold;

}

#diynav li {

float: left;

}

#diynav li a:hover{

background:#D9D9D9;

}

#diynav li:hover ul {

left: auto;

}

#diynav li.sfhover ul {

left: auto;

}

修改main.php,在结尾加入导航代码

1

<!–开始设置导航条–>

1

<!–导航条设置结束–>

用户自定义样式的使用

可以调整页面和目录字体

 

/*重定义页面文字大小*/

#bodyContent {

font-size:14px;

}

/*重定义目录文字大小*/

.toc .level1 {

font-size:14px;

}

.toc .level2 {

font-size:13px;

}

.toc .level3 {

font-size:12px;

}

重定义标题样式

 

/*重定义标题样式*/

div.dokuwiki h3 {

font-size:120%;

margin-left:40px;

border-bottom:none;

padding:0.2em 0.4em;

background-color:#DDEFBD;

}