Mediawiki允许多种文件类型(格式)文件上传设置

开启Mediawiki上传设置,默认支持的文件格式是: ‘png’, ‘gif’, ‘jpg’, ‘jpeg’ 。

支持多种文件类型上传设置

当上传其他文件格式时会提示(假设.svg格式)

“.svg”是一种不准许的文件类型。容许的多种文件类型有png, gif, jpg, jpeg

找到“includes/DefaultSettings.php”修改

$wgFileExtensions = array( ‘png’, ‘gif’, ‘jpg’, ‘jpeg’ );

$wgFileExtensions = array( ‘png’, ‘gif’, ‘jpg’, ‘jpeg’, ‘svg’ );

保存后就可以上传”.svg”格式的文件了,当然你也可以添加更多其他格式的文件类型,比如我的:

$wgFileExtensions = array( ‘png’, ‘gif’, ‘jpg’, ‘jpeg’ ,’docx’,’rar’,’zip’,’pdf’);

引用下Wikimedia的原文:

Supported file types

By default, MediaWiki only allows you to upload certain types of files (extensions gif, jpg, jpeg, ogg and png). This is managed by the orders in includes/DefaultSettings.php

参考:http://meta.wikimedia.org/wiki/Help:Images_and_other_uploaded_files

取消 MIME类别”application/zip”的文件格式限制

当上传pdf的时候没有问题,但是上传docx或者zip格式的文件时就会提示:

不可以上传这个文件,因为 Internet Explorer 会将它侦测为 “application/zip”,它是一种不容许以及有潜在危险性之文件类型。

同上面找到“includes/DefaultSettings.php”默认配置文件修改 $wgMimeTypeBlacklist的值

$wgMimeTypeBlacklist= array(
# HTML may contain cookie-stealing JavaScript and web bugs
‘text/html’, ‘text/javascript’, ‘text/x-javascript’, ‘application/x-shellscript’,
# PHP scripts may execute arbitrary code on the server
‘application/x-php’, ‘text/x-php’,
# Other types that may be interpreted by some servers
‘text/x-python’, ‘text/x-perl’, ‘text/x-bash’, ‘text/x-sh’, ‘text/x-csh’,
# Client-side hazards on Internet Explorer
‘text/scriptlet’, ‘application/x-msdownload’,
# Windows metafile, client-side vulnerability on some systems
‘application/x-msmetafile’,
# A ZIP file may be a valid Java archive containing an applet which exploits the
# same-origin policy to steal cookies
‘application/zip’, //by baicailin
);

在’application/zip’前面加#号(注释掉这行),然后上传zip文件,通过!

ziptest.zip‎ (文件大小:248 KB,MIME类型:application/zip)
警告:该文件类型可能包含恶意代码。运行它可能对您的系统带来危险。

附注 配置MIME类型(设置):

配置Apache MIME 类型

默认,Apache 通过检查文件的扩展名来决定与每个文件一起发送的媒体类型。扩展名类型映射存储于 httpd/conf 目录(通常是类似 /usr/httpd/conf 或 /etc/httpd/conf 的目录)下的 mime.types 文件中。

配置IIS的MIME类型

多用途 Internet 邮件扩展 (MIME) 类型用于标识可从 Web 服务器向浏览器或邮件客户端提供的内容类型。当浏览器从 Web 服务器中请求内容时,它也会请求该内容的 MIME 类型。在返回内容之前,IIS 会将该 MIME 类型作为 HTTP 头中的 Content_Type 字段返回给浏览器,以便浏览器知道如何处理或显示该内容。

IIS 使用默认的全局 MIME 类型列表确定要提供的内容类型。如果 Web 服务器上未定义客户端请求的 MIME 类型,IIS 将返回 404.3 错误。

由于 IIS6 默认没有添加上一些 MIME ,在下载这些文件时会提示找不到文件,所以要手动添加上去,而且还要在IIS中,进入网站的属性,把主目录里面的执行权限设置成纯脚本。

参考:http://technet.microsoft.com/zh-cn/library/cc753281%28WS.10%29.aspx

升级到 MediaWiki 1.15.1

从MediaWiki 1.12.0 直接升过来的,按照升级说明,一路很顺利,用的最后一种办法,重新安装来升级的。

升级前准备,备份数据库,备份配置文件 LocalSettings.old.php 为LocalSettings.old.php ,修改好模板文件(若你先前修改过的话),删除多余的语言文件(不是必须的)。

安装的时候的数据库和原配置一样,不记得的可以打开 LocalSettings.old.php 看看。
安装成功之后删除新生成的 LocalSettings.php ,然后改 LocalSettings.old.php 为 LocalSettings.php 。

升级完成,测试基本功能是否正常。。

补充:

找到的关闭新用户注册的办法,也发到这里来了

就是在配置文件 LocalSettings.php 中添加以下语句:

#Disallow creating accounts
$wgGroupPermissions[‘*’][‘createaccount’] = false;

关闭游客顶部的IP地址显示(可减轻服务器负载):

$wgShowIPinHeader = false;

关闭游客编辑权限:

$wgGroupPermissions[‘*’][‘edit’] = false;

查看更多关于 Mediawiki LocalSettings配置变量索引 :http://clin003.com/wiki/index-of-all-supported-configuration-options-based-on-the-localsettings-file-1489/

Mediawiki LocalSettings配置变量索引

这里的变量索引很全的呢,忙着搞那个UCH,不翻译啦,直接出示地址以后参考ing

his is an index of all supported configuration options based on the DefaultSettings.php file.

Never edit DefaultSettings.php; copy appropriate lines to LocalSettings.php instead and amend them as appropriate.

维基百科地址:http://www.mediawiki.org/wiki/Manual:Configuration_settings

1 General Settings

2 Paths

3 Global Objects

4 Email settings

4.1 Email notification (Enotif) settings

5 Database settings

5.1 LoadBalancer settings

5.2 MySQL specific

5.3 PostgreSQL specific

5.4 SQLite specific

5.5 Shared DB settings

5.6 Sysop SQL queries

5.7 Compressed Storage Support

6 Localization

6.1 Timezone settings

6.2 Chinese-specific

6.3 Hindi/Arabic-specific

7 Debug/logging

7.1 Profiling

8 Site customization

8.1 Ajax

8.2 CSS/Js

8.3 Namespaces

8.4 Robot policies

9 Site Statistics

10 Skins

11 Category

12 Cache

12.1 Client side caching

12.2 File Cache

12.3 Message Cache

12.4 Sidebar Cache

12.5 Parser Cache

12.6 Persistent Link Cache

12.7 Memcached settings

13 Interwiki

14 Access

14.1 API

14.2 Wiki locking

15 Rate limiter

16 Proxies

17 Squid

18 Cookies

19 Reduction

20 Uploads

20.1 Shared uploads

20.2 MIME types

20.3 Images

20.3.1 DjVu

20.3.2 EXIF

20.3.3 ImageMagick

20.3.4 SVG

20.3.5 Thumbnail settings

20.4 Antivirus

21 Parser

21.1 HTML

21.2 TeX

21.3 Tidy

22 Special pages

22.1 Recent changes

22.1.1 UDP updates

23 Users

23.1 User Access

23.2 User agent

24 Feed

25 Copyright

26 Jobs

27 Extensions

28 Search

29 HTCP multicast purging

30 Maintenance Scripts setting

31 Miscellaneous settings

Mediawiki允许图片上传设置

开放图片上传功能

编辑LocalSettings.php,修改下面这一行为true即可(去掉前边的“#”)。

请不要使用windows自带的记事本改程序!mediawiki使用utf-8格式保存程序,记事本会在文件开始多出三个字节,而这会导致网站运行出错。推荐使用EmEditor进行编辑(另存为utf-8,不要unicode标记)。
(如果服务器上安装了ImageMagick库,可再取消$wgUseImageMagick行的注释。据说ImageMagick比GD库的缩略图效果稍好)

#$wgEnableUploads       = true;

单击左侧的“工具箱”中的“上传文件”即可上传文件。

如果上传png格式的图片,会发现,png类型的文件被系统禁止了。调查includes/DefaultSettings.php的$wgFileExtensions 变量,可以看到png格式是允许的。为什么呢?JPG和GIF都正常上传啊。

原因是MediaWiki会判断上传文件的MIME Type,并禁止某些类型的MIME Type上传。而文件的MIME Type获取是通过php的mime_magic模块进行的,默认情况下这个模块无法正确识别png格式,所以png图像就无法得到正确的MIME Type,于是上传失败。

在phpinfo()中可以看到这样几行文字:
mime_magic support    enabled
Directive    Local Value    Master Value
mime_magic.debug    Off    Off
mime_magic.magicfile    /etc/httpd/conf/magic    /etc/httpd/conf/magic

得知mime_magic的配置文件是 /etc/httpd/conf/magic。打开此文件就可以发现其中并没有PNG格式。

在GIF和JPG文件的附近添加这样一行:

# PNG 1 string PNG image/png

然后重新启动httpd。这样PNG文件就可以正常上传了。

参考:http://tech.idv2.com/2008/07/25/file-upload-in-mediawiki/

引用外部图片(直接在页面中放入图片url链接保存就可以看到图片)

在localsettings.php增加下面一行即可(可能引起安全问题):

$wgAllowExternalImages = true;

通过图片URL进行上传(使用可被公开访问的图片链接进行远程图片上传(这个功能很酷,:) 不过只有操作员才可以用,嘿嘿,安全考虑,这样很有必要呢))

在localsettings.php增加下面一行(可能引起安全问题):

$wgAllowCopyUploads = true;

在就是限制上传文件大小啦

在localsettings.php增加下面一行

$wgMaxUploadSize = 5020;

单位为字节,这个在新(versions 1.9.3 到 1.12)版本中已经不起作用啦。

需要在php环境中进行限制

那么还有个警告大文件上传的警示大小是在DefaultSetting.php中的,默认为150k,如果嫌烦,可以调大些(建议不用调)。

补充:

mediawiki中文件上传的尺寸主要受限于php环境和mediawiki本身环境:

参考:http://www.sogg.name/archives/tag/mediawiki

ok,myblog:http://clin003.com/

Mediawiki代码高亮显示GeSHiHighlight扩展安装使用

GeSHi – Generic Syntax Highlighter

是一个非常优秀的代码格式高亮显示的PHP的东东(扩展,库,)

如果你对英文安装说明比较闹心,那么可以参考下我这里的安装经验

ok,myblog:http://clin003.com/

下边来看看怎样在Mediawiki中安装使用吧 🙂

mediawiki的介绍地址在:http://www.mediawiki.org/wiki/Extension:GeSHiHighlight#Installation

Installation

  • Install GeSHi per the GeSHi install instructions (link above)
  • Cut & paste the above code to a file called GeSHiHighlight.php
  • Put GeSHiHighlight.php in your MediaWiki installations’ extensions folder
  • Add:
    include("extensions/GeSHiHighlight.php");

    to LocalSettings.php

介绍很简单的,只是如果仅仅是按照上边的操作还是会有机会出错的(不会提示出错信息,但却没有高亮显示代码效果!)

下边说下我具体怎么做的:

  • 下载最新的GeSHi(http://qbnz.com/highlighter/)。
  • 解压,然后复制或剪切geshi(geshi-1.0.7.22\geshi)目录到你的mediawiki的扩展目录(extensions)下(建议删除contrib和docs两个目录及其内容)。
  • 接着复制这里的代码(http://www.mediawiki.org/wiki/Extension:GeSHiHighlight#MediaWiki_and_GeSHi)到(可以新建个记事本文件重命名)GeSHiHighlight.php中。
  • 然后把GeSHiHighlight.php放到mediawiki的扩展目录(extensions)下。
  • 然后打开mediawiki根目录下的LocalSettings.php,添加include(“extensions/GeSHiHighlight.php”);(放到定义$wgSitename($wgSitename         = “Clin003”;)的上边一行)。

然后就ok啦,可以去添加的代码看看效果。 😮

添加高亮代码的格式为:

<code>把代码放放在这里</code>

比如放段php的代码

<php>echo “hello word”</php>

这样就ok啦。

修改Mediawiki发送邮件的头信息

算是前几天说的“STSGMassMailer助Mediawiki邮件群发”的补充吧,为啦群发邮件时,接收者不能看到其他接收者的邮件地址信息,才想这样隐藏的..

效果图。

修改的mediawiki的文件,不推荐修改以免给以后造成不必要的麻烦

原代码

$headers =
“MIME-Version: 1.0$endl” .
“Content-type: text/plain; charset={$wgOutputEncoding}$endl” .
“Content-Transfer-Encoding: 8bit$endl” .
“X-Mailer: MediaWiki mailer$endl”.
‘From: ‘ . $from->toString();

修改后的代码

$headers =
“MIME-Version: 1.0$endl” .
“Content-type: text/plain; charset={$wgOutputEncoding}$endl” .
“Content-Transfer-Encoding: 8bit$endl” .
“X-Mailer: MediaWiki mailer$endl”.
“To:abc$endl”.
“From:def “;

在include/usermailer.php的行171——行176位置,若想把所有发送出去的邮件头都自定义修改的话可以找找上边还有一处,修改成自己想要的就可以啦。每行的结束是以”$endl”结束的,这点需要注意。

不明白的可以对比截图内容。。

如果只是为啦群发邮件可以参考mail函数直接发送。。

< ?php
$message=”测试ing”;
mail(“wiki@192.168.1.6”, “测试啊”, $message, “From: wiki2@192.168.1.6\nReply-To: wiki2@192.168.1.6\nX-Mailer: PHP”);
?>