在 Debian/Linux 下
1. 安装程序
sh#apt-get install apache2
sh#apt-get install php5
sh#apt-get install php5-pgsql 或者 apt-get install php5-mysql
sh#apt-get install postgresql 或者 apt-get install mysql-server-5.0
sh#apt-get install mediawiki
2. sh#ln -s /var/lib/mediawiki /var/www/mediawiki
3. 浏览器打开 http://127.0.0.1/mediawiki 。 运行初始化安装。
4. sh#ln -s /var/www/mediawiki/config/LocalSettings.php /etc/mediawiki/LocalSettings.php
5. 允许上传图片
sh#nano /etc/mediawiki/LocalSettings.php
修改为:$wgEnableUploads = true;
sh#chmod o+w /var/www/mediawiki/images
6. 允许上传其它文件
sh#nano /var/www/mediawiki/includes/DefaultSettings.php
修改为:$wgFileExtensions = array('png', 'gif', 'jpg', 'jpeg', 'doc', 'xls', 'vsd');
7. 加 FCKeditor 编辑器
到 http://mediawiki.fckeditor.net 下载 http://www.fckeditor.net/nightly/FCKeditor_N.zip
解压到 /var/www/mediawiki/extensions
sh#nano /etc/mediawiki/LocalSettings.php
文件未增加内容:
require_once("$IP/extensions/FCKeditor/FCKeditor.php");
$wgUseAjax = true;
sh#nano /var/www/mediawiki/extensions/FCKeditor/fckeditor_config.js
文件未增加内容:
FCKConfig.AutoDetectPasteFromWord = true;
FCKConfig.CleanWordKeepsStructure = false;
FCKConfig.ForcePasteAsPlainText = false;
8.修改系统的邮件发送配置 sh#dpkg-reconfigure exim4-config
修改配置mediawiki的文件:
将
$wgErrorString = ''; $html_errors = ini_get( 'html_errors' ); ini_set( 'html_errors', '0' ); set_error_handler( array( 'UserMailer', 'errorHandler' ) ); wfDebug( "Sending mail via internal mail() function\n" ); if (function_exists('mail')) { if (is_array($to)) { foreach ($to as $recip) { $sent = mail( $recip->toString(), wfQuotedPrintable( $subject ), $body, $headers ); } } else { $sent = mail( $to->toString(), wfQuotedPrintable( $subject ), $body, $headers, ); } } else { $wgErrorString = 'PHP is not configured to send mail'; }
改为:
$params = "-oi -f [email protected]"; $wgErrorString = ''; $html_errors = ini_get( 'html_errors' ); ini_set( 'html_errors', '0' ); set_error_handler( array( 'UserMailer', 'errorHandler' ) ); wfDebug( "Sending mail via internal mail() function\n" ); if (function_exists('mail')) { if (is_array($to)) { foreach ($to as $recip) { $sent = mail( $recip->toString(), wfQuotedPrintable( $subject ), $body, $headers, $params ); } } else { $sent = mail( $to->toString(), wfQuotedPrintable( $subject ), $body, $headers, $params ); } } else { $wgErrorString = 'PHP is not configured to send mail'; }
http://blog.csdn.net/wangxg_7520/archive/2009/06/16/4274180.aspx
<!-- NewPP limit report Preprocessor node count: 7/1000000 Post-expand include size: 0/2097152 bytes Template argument size: 0/2097152 bytes Expensive parser function count: 0/100 --><!-- Saved in parser cache with key wikidb:pcache:idhash:21-0!1!0!!zh-hans!2 and timestamp 20110210015552 -->
<!-- end content -->
由于MediaWiki本身的搜索功能对于中文搜索存在若干问题,因此采用Lucene替换原本的搜索功能。
1、下载
2、安装
1、将“MWSearch”解压并放进mediawiki的extensions目录。
2、 将以下代码加入 LocalSettings.php:
$wgSearchType = 'LuceneSearch'; $wgLuceneHost = '127.0.0.1' $wgLucenePort = 8123; require_once("extensions/MWSearch/MWSearch.php"); # uncomment this if you use lucene-search 2.1 # (MUST be AFTER the require_once!) #$wgLuceneSearchVersion = 2.1;
如果采用多搜索$wgLuceneHost = array( "192.168.0.1", "192.168.0.2" );
3、将以下代码加入AdminSettings.php,如果该文件不存在,则创建:
$wgDBadminuser = "database_admin_username";
$wgDBadminpassword = "database_admin_password";
其中database_admin_username和database_admin_password更改为数据库的账号密码。
3、安装Lucene-search
Lucene-search 运行环境要求: Linux, Java 6+ (OpenJDK or Sun)。
Begin by downloading the binary release and unpack. Or, get the latest version from svn and then run "ant" to build the jar.
./configure <path to mediawiki root directory>
./build
./update
4、配置自动启动
5、配置自动更新索引
这里大概介绍一下语法高亮的用法,详细用法请看这里 。
大部分情况下可以直接使用"source"标签,后面跟语言类型,例如:
<source lang="php"> <?php $v = "string"; // sample initialization ?> html text <? echo $v; // end of php code ?> </source>显示效果为:
<?php $v = "string"; // sample initialization ?> html text <? echo $v; // end of php code ?>
ps:当我们高亮显示一些代码的时候,例如XML,中间很有可能出现 <source> 标签,这就与前面的标签冲突了,这时我们可以使用<syntaxhighlight>
标签,以避免冲突的发生。
source的参数及功能如下:
* lang: 定义语言 * line: 是否启用行号 * start: 开始的行号 * highlight: 高亮的代码行 * enclose: 包围代码的HTML标签 * strict: 是否使用严格模式(是否严格按照某种语言的语法来分析代码using-strict-mode)
举例如下:
<source lang="html4strict" line start="100" highlight="5"> HTML module goes here... </source>
显示的结果:
<table align=center style="background: ivory;color:maroon;font-style:italic;font-family:arial;font-weight:bold;font-size:10pt;">
<tr><th> Heading 1 </th><th> Heading 2 </th></tr>
<tr>
<td style="padding:10px;"> This is cell 1 text </td>
<td style="padding:10px;"> This is cell 2 text </td>
</tr>
</table>
在这种模式下可以直接点击编辑器右上角的图标,然后在弹出的窗口中贴入代码、写上语言种类即可,如下图示例:
点击确定并预览下:
注意在这种模式下有些代码在我们预览的时候就会被消去,比如<source lang="html4strict" line start="100" highlight="5">中的 line start="100" highlight="5" 就消失不见了。 这个是编辑器的问题,出现这种情况后换用原来的简单模式进行最后添加修改。
1、(权限极大型)用admin登陆,使用wiki的特殊页面,点击最下面的用户权限设置,输入一个用户名,点击编辑用户群组,就出现了wiki默认的分组,可以把这个用户加入 "操作员""行政员"中。那这个用户就和admin的权限是一样的大了。具有这个权限的用户可以查看、编辑所有页面!
2、(一般灵活型)这种方法能具体控制到一个页面(比如test):
2.1 建立用户组:
使用admin登陆,建立一个页面,页面的名称叫 Usergroup:testgroup (Usergroup前缀必不可少,testgroup表示组名),然后编辑这个页面(用我的和小黎的用户名做示例),输入下列内容:
*all() *zhuyx808 *Freeze(ro)
保存这个页面。
(说明:第一句的意思就是所有人不可读(当然更不能编辑了);第二句的意思就是用户zhuyx808具有读写权限;第三句的意思就是用户freeze具有只读权限。)
2.2 建立页面test:
新建一个页面test,编辑这个页面,在这个页面的最前面输入下列代码:
<accesscontrol>testgroup</accesscontrol> …test页面的具体内容…
保存后,这个页面就具有了下列的权限:
a、admin和zhuyx808具有读写权限(阅读和编辑);
b、admin、zhuyx808、freeze具有阅读权限;
c、其余人无权查看
<accesscontrol>testgroup,,testgroup2</accesscontrol>
<accesscontrol>testgroup,,testgroup2(ro)</accesscontrol>
2.3 综述:
从上面的实现看,要实现我们的功能有很多种方式,比较灵活多样,代表性的二种方式就是:一、建立用户组的时候就直接把权限划定好;二、在我们要控制的页面中对一个大的组进行设定。