2021年1月8日更新
我错了,我以为缩略图的问题解决了,结果在SVG格式的图片上还是翻船了。而且这个问题之前就出现过,只是我偷懒没记录。
服务器重新配置前,SVG的文件虽然都已经生成了缩略图,但是通过媒体查看器打开的话,还是会报错。
打开错误提示,再次刷新页面,原来问题出在PHP的禁用函数上面。
进入控制台,修改配置文件后,缩略图的问题解决。
2021年1月3日更新
去年年底的时候再一次升级服务器,所以很多配置也随之改变,其中之一就是ImageMagick——因为MediaWiki的缩略图生成需要用到它。
从出错的情况来看就是少了Convert命令,而它就是由ImageMagick生成的(其他正常图片是服务器升级前就生成的,所以数据迁移后还是能够显示的)。于是直接按照下文中的方法安装ImageMagick。
yum -y install ImageMagick ImageMagick-devel
安装之后缩略图就可用了,而PHP的imagick扩展直接通过OneinStack的脚本就安装好了,所以无需单独再安装。
2018年3月14日原文
玩维基百科的朋友可能会注意到,在它的站点上使用了大量的 SVG 图片,那么它到底是个什么文件格式呢?
SVG简介
什么是SVG?
- SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
- SVG 用来定义用于网络的基于矢量的图形
- SVG 使用 XML 格式定义图形
- SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失
- SVG 是万维网联盟的标准
SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体
SVG 的优势
- SVG 可被非常多的工具读取和修改(比如记事本)
- SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。
- SVG 是可伸缩的
- SVG 图像可在任何的分辨率下被高质量地打印
- SVG 可在图像质量不下降的情况下被放大
- SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图)
- SVG 可以与 Java 技术一起运行
- SVG 是开放的标准
- SVG 文件是纯粹的 XML
注:以上内容均摘自互联网。
准备工作
安装ImageMagick
yum install ImageMagick
yum install ImageMagick-devel
yum install php-pear
yum -y install php-devel
安装imagick
yum install gcc
yum install gcc gcc-c++ autoconf automake
pecl install imagick
在PHP中启用imagick
可以在/etc/php.ini 加上extension=imagick.so,然后分别重启php-fpm和Nginx。
配置文件
在LocalSettings.php
中修改及添加如下代码:
## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads = true;//启用文件上传功能
$wgUseImageResize = true;
$wgUseImageMagick = true;//使用ImageMagick
$wgImageMagickConvertCommand = "/usr/bin/convert";//ImageMagick的转换程序
# 支持svg图像格式
$wgFileExtensions[] = 'svg';
$wgSVGConverter = 'ImageMagick';
$wgSVGConverterPath = "/usr/bin";