Mediawiki
摘要: 本文讲述如何使用Mediawiki搭建个人wiki系统、以及wiki的部分基本操作和设置
日常开发中总会有许多东西需要记录,很多软件都可以做到这一点,例如有道云笔记,或者写博客。但个人偏爱于Mediawiki,因为wiki可定制性强,总给人一种高端大气的感觉。起初对wiki这种东西一无所知,受老总的影响,开始在公司推广wiki,可惜到现在没有推广成功,不过自己倒是喜欢上这东西了。废话少扯,进入正题吧。
首先大致说说wiki是什么吧。在我看来,wiki就是一种学术性的博客,但是更加严谨,相当于字典,也不完全像字典一样拘束与单词,总之,我也说不清楚,形象的说,就是一个文档系统吧。当前有很多wiki软件,例如Wikipedia使用的Mediawiki,以及MoinMoin,还有其他的很多版本;而Mediawiki应该是最广为人知的吧。
Wiki安装
Mediawiki基于php,可以选择MySQL、Sqlite等诸多数据库,在windows上首选wamp server来配置神一般的Php+MySQL环境。本文使用的是Mediawiki1.21.2,Wamp2.4 ,windows8 pro x64的环境。可以建一个专门放网站的目录,例如d:/work/www,将wiki解压到该目录下即可。在wamp安装目录下的alias目录下,新建一个配置文件,例如wiki.conf,内容如下:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot "D:/Work/www/mediawiki-1.21.2/"
ServerName solee.org
</virtualHost>
因为是本机的缘故,我在host中将solee.org解析到127.0.0.1,穷人买不起虚拟主机。这样访问localhost,将会进入Mediawiki的初始化安装界面。该安装程序实际上是引导你生成LocalSettings.php,当然也可以手工设置。建议先自己选择,这样会生成一个LocalSettings.php文件,并执行相应的数据库初始化,将此php下载后放到wiki的根目录下面,直接再访问localhost即可进入wiki。好了,wiki安装就这样简单。
基本配置
wiki配置很丰富,下面介绍几种可能感兴趣的配置:
#个人wiki,禁止创建帐号功能,除非登陆才能访问
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['read'] = false;
#启用详细异常显示.
$wgShowExceptionDetails = true;
#去除底部powered by图标
unset($wgFooterIcons['poweredby']);
#对于没有登录的用户,没有登录的用户移除页面顶部的讨论页链接
$wgShowIPinHeader = false;
#默认在新标签页中打开链接
$wgExternalLinkTarget = '_blank';
其他诸如图标、主题、短链接等配置可以自行探索。
常用插件
常用的插件,主要是富文本编辑器了,当个人倾向于使用纯文本编辑器,也就是Mediawiki自己提供的编辑器。默认的工具条很丑,可以在页面右上角的设置->编辑中开启增强功能。
富文本编辑器可选用WYSIWYG,搜索合适的版本下载之后,解压到extensions目录,并在LocalSettings.php中添加一行,加载此拓展:
富文本编辑器
require_once( "$IP/extensions/WYSIWYG/WYSIWYG.php" );
这样安装好之后,可以在设置中选择喜欢的编辑器,或者选择在文本和富文本编辑器中自由切换。
代码高亮
1.21.2的代码高亮插件已经默认集成了,如果没有集成,可以搜索Mediawiki Geshi安装此插件。
pdf导出
Mediawiki的 pdf导出应该说算是比较头疼的问题了,其实支持pdf导出的插件不少,但是对中文的支持非常不好,目前可以用PdfExport插件比较完美的实现。官方的PdfExport插件已经过时(目前不知道是否更新了),需要进行部分修改:
Mediawiki1.21.2导出,可以使用PdfExport插件+Mpdf进行。当前HtmlDoc等其他后端均不能支持中文。 Mpdf需要配置支持CJK字符
配置LocalSettings.php
#pdf导出插件
require_once("$IP/extensions/PdfExport/PdfExport.php");
#使用Mpdf作为PdfExport的后端,但必须配置支持ckj字体
$wgPdfExportMPdf = $IP . '/extensions/Mpdf/mpdf.php'; // Path to the main mPDF.php file
配置字体config_font.php(需要将字体添加到字体文件夹中)
"sun-exta" => array(
'R' => "Sun-ExtA.ttf",
'sip-ext' => 'sun-extb',
),
"sun-extb" => array(
'R' => "Sun-ExtB.ttf",
),
修改config_cp.php
CASE "zh":
$unifonts = "sun-exta,sun-extb";
break;
修改MPdfConverter.php
$mpdf = new mPDF('zh');
$mpdf->SetAutoFont(AUTOFONT_ALL);
$mpdf->WriteHTML($html);
修改config.php
$this->useAdobeCJK = true;
另外,需要注释掉下面的函数调用:
//wfLoadExtensionMessages('PdfPrint');
其他插件:
#Flash插件
require_once("$IP/extensions/oflash/orificeflash.php");
#视频插件
require_once("$IP/extensions/MediawikiPlayer/MediawikiPlayer.php");
#批量导入插件
require_once("$IP/extensions/MultiUpload/MultiUpload.php");
当然具体的插件需要自己去下载。通常谷歌Mdiawiki <插件名称>即可找到官方的下载地址。
备注:
#禁用掉此扩展,否则可能不能正常进入wiki
#require_once( "$IP/extensions/LocalisationUpdate/LocalisationUpdate.php" );
备份及优化
备份主要涉及到数据库的备份及Wiki的备份。对于这种非分布式、非云计算(哈哈——)的东西来说,备份就显得尤为重要了。
D:\Prog\wamp\bin\mysql\mysql5.6.12\bin\mysqldump -u root -ppassword solee_wiki_db >F:\wiki.sql
wiki备份直接把wiki的文件夹打个包即可。如果是采取sqlite数据库的话,数据库备份更加简单了。
在windows上一个比较烦人的问题就是,wamp的mysql内存占用甚是大,在我4G内存的机器上吃了500M,这不能忍啊,因此需要优化一下mysql:
[mysqld]
port=3306
max_connections = 100
#加入以下内容
performance_schema_max_table_instances=600
table_definition_cache=400
table_open_cache=256
最后来张效果图吧:

Mediawiki的更多相关文章
- ubuntu下mediawiki的使用
wiki语法确实比较麻烦 终于找到一种简单的方法,LibreOffice可以直接导出为wiki格式 https://apps.ubuntu.com/cat/applications/libreoffi ...
- ubuntu14.04下安装ngnix,mediawiki,nodebb,everything,gitlab
本周折腾了以下几个东西,mediawiki(维基),nodebb(论坛),gitlab(私有git服务器). 本来的目的是搭建一个wiki,选用了mediawiki后,使用apache搭建好了. 搭论 ...
- mediawiki安装
下载wiki,我用的mediawiki-1.23.6 版本. 服务器是window2008 r2 的. 下载xampp,或者wamp都可以,我的用的禅道安装的xampp,解压后直接放在htdocs目录 ...
- MediaWiki安装与配置(Ubuntu 10.4)
实验室准备发布一个网站,本来是准备外包给别人做的,后来自己调研了一下,发现也没有想象的复杂和困难,于是最近一周自己吭哧吭哧地把网站搭好了. 之所以使用Mediawiki,一是考虑到是以实验室发布,不想 ...
- MediaWiki使用指南
MediaWiki使用指南 MediaWiki是著名的开源wiki引擎,全球最大的wiki项目维基百科(百科词条协作系统)是使用MediaWiki的成功范例,MediaWiki的最大作用在于对知识的归 ...
- MediaWiki隐藏index
Apache 在httpd.conf配置文件中加载mod_rewrite.so模块,将前面的'#'去掉,如果没有则添加这句话: #LoadModule rewrite_module modules/m ...
- 腾讯云CentOS 安装MediaWiki
参考 : https://www.digitalocean.com/community/tutorials/how-to-install-mediawiki-on-centos-7 //安装好很多次终 ...
- mediawiki的安装与配置
apache的配置: 1. 开启php module 查看mods-enabled/php5.load 是否存在,不存在的话, 就从mods-avaliable中复制一个到mods-enabled中. ...
- mediawiki的管理与使用
本文主要讲述搭建好私有的mediawiki之后,管理员可能需要用到的几个功能. 维基百科的设计思路与我以往使用的系统不太一样,以管理员模式进入之后,并没有我预想的添加wiki页面入口,和侧边栏导航 ...
随机推荐
- Java中ProcessBuilder应用实例
系列说明 浅析Java.lang.Runtime类 浅析Java.lang.Process类 浅析Java.lang.ProcessBuilder类 可以使用java中的ProcessBuilder执 ...
- 安装VS2012以后打开office 2007 的任何程序都跳出VS2012配置界面的解决方案
前两天闲来无事,下载了vs2012,打算学点mvc4的东西,装好以后,问题来了,打开word文档,直接弹出个windows正在配置vs2012的界面,等就等一下吧,结束以后还能正常看,结果谁知道,每次 ...
- C#调用RAR压缩与解压
public void RARsave(string rarPatch, string rarFiles,string patch,string rarName) { ...
- [转]使用 Xcode 5 和 Interface Builder创建 Hello World App
转载地址:http://www.ithome.me/archives/581.html 使用 Xcode 5 和 Interface Builder创建 Hello World App 发表回复 当x ...
- c++多线程の死锁与防止死锁
如果有两把锁 lock1(mutex_gard 方式)和lock: 两者的调用顺序不同,会出现相互等待的情况,从而造成死锁: 为了避免死锁,我们可以: 1.每个线程中锁的调用顺序都相同: 2.使用st ...
- [转]VB Winsock 控件TCP与UDP连接实例
[-] 可能的用途 选择通讯协议 协议的设置 确定计算机的名称 TCP 连接初步 接受多个连接请求 UDP 初步 关于 Bind 方法 利用 WinSock 控件可以与远程计算机建立连接,并通过用 ...
- App瘦身
http://www.zoomfeng.com/blog/ipa-size-thin.html https://github.com/ming1016/SMCheckProject
- sizeof、strlen、字符串、数组,整到一块,你还清楚吗?
写在前面 sizeof.strlen.字符串.数组,提到这些概念,相信学过C语言的人都能耳熟能详,也能谈得头头是道,但是,在实际运用中,当这些内容交织在一起时,大家却不一定能搞地清清楚楚,本文的目的正 ...
- Windows安装Scrapy遇坑解决办
PS: Windows真心不适合开发.且行且珍惜.... 坑: error: Setup script exited with error: Microsoft Visual C++ 9.0 is r ...
- hdu 4920 Matrix multiplication bitset优化常数
Matrix multiplication Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/ ...