新版的MediaWiki(1.11.1)默认情况下文件上传是关闭的,不过打开它非常容易。

编辑LocalSettings.php,修改下面这一行为true即可。

$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文件就可以正常上传了。