Mediawiki

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

摘要: 本文讲述如何使用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,内容如下:

1
2
3
4
5
<code class = "hljs xml" >NameVirtualHost  * : 80
<span class = "hljs-tag" ><span class = "hljs-tag" ><<span class = "hljs-name" ><span class = "hljs-tag" ><span class = "hljs-name" >VirtualHost<span class = "hljs-tag" * <span class = "hljs-attr" ><span class = "hljs-tag" ><span class = "hljs-attr" >: 80 <span class = "hljs-tag" >>
     DocumentRoot  "D:/Work/www/mediawiki-1.21.2/"
     ServerName solee.org
<span class = "hljs-tag" ><span class = "hljs-tag" >< / <span class = "hljs-name" ><span class = "hljs-tag" ><span class = "hljs-name" >virtualHost<span class = "hljs-tag" >>< / span>< / span>< / span>< / span>< / span>< / span>< / span>< / span>< / span>< / span>< / span>< / span>< / span>< / span>< / span>< / span>< / code>

 

    因为是本机的缘故,我在host中将solee.org解析到127.0.0.1,穷人买不起虚拟主机。这样访问localhost,将会进入Mediawiki的初始化安装界面。该安装程序实际上是引导你生成LocalSettings.php,当然也可以手工设置。建议先自己选择,这样会生成一个LocalSettings.php文件,并执行相应的数据库初始化,将此php下载后放到wiki的根目录下面,直接再访问localhost即可进入wiki。好了,wiki安装就这样简单。

基本配置

    wiki配置很丰富,下面介绍几种可能感兴趣的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<code class = "hljs markdown" ><span class = "hljs-section" >#个人wiki,禁止创建帐号功能,除非登陆才能访问
$wgGroupPermissions [<span class = "hljs-string" > '*' ][<span class = "hljs-symbol" > 'createaccount' ] = false;
$wgGroupPermissions [<span class = "hljs-string" > '*' ][<span class = "hljs-symbol" > 'edit' ] = false;
$wgGroupPermissions [<span class = "hljs-string" > '*' ][<span class = "hljs-symbol" > 'read' ] = false;
 
<span class = "hljs-section" >#启用详细异常显示.
$wgShowExceptionDetails  = true;
 
<span class = "hljs-section" >#去除底部powered by图标
unset( $wgFooterIcons [ 'poweredby' ]);
 
<span class = "hljs-section" >#对于没有登录的用户,没有登录的用户移除页面顶部的讨论页链接
$wgShowIPinHeader  = false;
 
<span class = "hljs-section" >#默认在新标签页中打开链接
$wgExternalLinkTarget  '_blank' ;</span></span></span></span></span></span></span></span></span></span></span></code>

 

    其他诸如图标、主题、短链接等配置可以自行探索。

常用插件

    常用的插件,主要是富文本编辑器了,当个人倾向于使用纯文本编辑器,也就是Mediawiki自己提供的编辑器。默认的工具条很丑,可以在页面右上角的设置->编辑中开启增强功能。

    富文本编辑器可选用WYSIWYG,搜索合适的版本下载之后,解压到extensions目录,并在LocalSettings.php中添加一行,加载此拓展:

富文本编辑器

1
<code class = "hljs lisp" > require_once ( <span class = "hljs-string" > "$IP/extensions/WYSIWYG/WYSIWYG.php"  )<span class = "hljs-comment" >;</span></span></code>

    这样安装好之后,可以在设置中选择喜欢的编辑器,或者选择在文本和富文本编辑器中自由切换。

代码高亮

    1.21.2的代码高亮插件已经默认集成了,如果没有集成,可以搜索Mediawiki Geshi安装此插件。

pdf导出

   Mediawiki的 pdf导出应该说算是比较头疼的问题了,其实支持pdf导出的插件不少,但是对中文的支持非常不好,目前可以用PdfExport插件比较完美的实现。官方的PdfExport插件已经过时(目前不知道是否更新了),需要进行部分修改:

Mediawiki1.21.2导出,可以使用PdfExport插件+Mpdf进行。当前HtmlDoc等其他后端均不能支持中文。 Mpdf需要配置支持CJK字符

配置LocalSettings.php

1
2
3
4
<code class = "hljs php" ><span class = "hljs-comment" >#pdf导出插件
<span class = "hljs-keyword" > require_once (<span class = "hljs-string" > "$IP/extensions/PdfExport/PdfExport.php" );
<span class = "hljs-comment" >#使用Mpdf作为PdfExport的后端,但必须配置支持ckj字体
$wgPdfExportMPdf  =   $IP  . <span class = "hljs-string" > '/extensions/Mpdf/mpdf.php' ; <span class = "hljs-comment" > // Path to the main mPDF.php file</span></span></span></span></span></span></code>


配置字体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');

其他插件:

1
2
3
4
5
6
<code class = "hljs less" ><span class = "hljs-selector-id" >#Flash插件
<span class = "hljs-selector-tag" > require_once (<span class = "hljs-string" > "$IP/extensions/oflash/orificeflash.php" );
#视频插件
<span class = "hljs-selector-tag" > require_once (<span class = "hljs-string" > "$IP/extensions/MediawikiPlayer/MediawikiPlayer.php" );
#批量导入插件
<span class = "hljs-selector-tag" > require_once (<span class = "hljs-string" > "$IP/extensions/MultiUpload/MultiUpload.php" );</span></span></span></span></span></span></span></code>

    当然具体的插件需要自己去下载。通常谷歌Mdiawiki  <插件名称>即可找到官方的下载地址。

备注:

1
2
<code class = "hljs less" >#禁用掉此扩展,否则可能不能正常进入<span class = "hljs-selector-tag" >wiki
<span class = "hljs-selector-id" ># require_once ( <span class = "hljs-string" > "$IP/extensions/LocalisationUpdate/LocalisationUpdate.php"  );</span></span></span></code>

备份及优化

    备份主要涉及到数据库的备份及Wiki的备份。对于这种非分布式、非云计算(哈哈——)的东西来说,备份就显得尤为重要了。

1
<code class= "hljs css" >    <span class= "hljs-selector-tag" >D:\<span class= "hljs-selector-tag" >Prog\<span class= "hljs-selector-tag" >wamp\<span class= "hljs-selector-tag" >bin\<span class= "hljs-selector-tag" >mysql\<span class= "hljs-selector-tag" >mysql5<span class= "hljs-selector-class" >.6<span class= "hljs-selector-class" >.12\<span class= "hljs-selector-tag" >bin\<span class= "hljs-selector-tag" >mysqldump <span class= "hljs-selector-tag" >-u <span class= "hljs-selector-tag" >root <span class= "hljs-selector-tag" >-ppassword <span class= "hljs-selector-tag" >solee_wiki_db ><span class= "hljs-selector-tag" >F:\<span class= "hljs-selector-tag" >wiki<span class= "hljs-selector-class" >.sql</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>

    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

最后来张效果图吧:

 https://my.oschina.net/std/blog/190639
mediawiki 还可以参考
http://www.cnblogs.com/ToDoToTry/p/4475067.html
http://blog.csdn.net/wangnan537/article/details/37743497
https://my.oschina.net/tanyixiu/blog/109350



本文转自茄子_2008博客园博客,原文链接:http://www.cnblogs.com/xd502djj/p/6195794.html ,如需转载请自行联系原作者。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5月前
|
关系型数据库 MySQL 数据库连接
WAMP搭建靶场
WAMP搭建靶场
33 0
|
弹性计算 数据安全/隐私保护 云计算
使用 MediaWiki | 学习笔记
快速学习使用 MediaWiki
406 0
|
弹性计算 数据库 数据安全/隐私保护
安装 MediaWiki | 学习笔记
快速学习安装 MediaWiki
600 0
uiu
|
关系型数据库 MySQL Apache
Xampp + Wordpress 部署【亲测】
Xampp + Wordpress 部署【亲测】
uiu
151 0
Xampp + Wordpress 部署【亲测】
|
程序员
dokuwiki安装问题
工作了几年,虽然在程序员这个道路上才算开始,希望以后能够有所成长,为了把平时遇到的技术问题,记录下来,第一个想到的就是写wiki,博客虽然创建了许久,但是没有坚持写下去,在网上找了许多的wiki程序,dokuwiki是最符合的。
1971 0
|
Web App开发 关系型数据库 PHP
基于WorsPress+Xampp搭建博客
总结了在服务器Windows server 2012r2利用WorsPress+Xampp搭建博客。 首先先下载WorsPress+Xampp的安装包,具体网址如下: 1.下载之后:复制到服务器中,解压安装xampp,注意安装目录最好选择C盘之外的其它磁盘,由于权限原因,会出现创建一些文件失败的问题。
1597 0
|
关系型数据库 PHP Apache
|
Web App开发 关系型数据库 PHP
|
关系型数据库

热门文章

最新文章