ImagickException:尝试执行安全策略" PDF"不允许的操作

时间:2020-02-23 14:45:21  来源:igfitidea点击:

从早期版本将ImageMagick更新到6.9.10.23+版本后,会发生以下现象:

  • 从PDF,XPS,PS和EPS生成的缩略图不再起作用
  • 在Web服务器错误日志中可以找到以下输出:
PHP Fatal error: Uncaught ImagickException: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408 in /path/to//pdfThumb.php:7\nStack trace:\n#0 /path/to/pdfThumb.php(7): Imagick->__construct('../files/9984/C...')\n#1 {main}\n thrown in /path/to/pdfThumb.php on line 7, referer: https://hostname.theitroad.com

这是由于在较新版本中添加了一项禁用幻影脚本格式的策略。

1.编辑ImageMagick策略文件:

/etc/ImageMagick-6/policy.xml

2.找到以下几行(通常在文件的最底部,第89至95行附近):

<!-- disable ghostscript format types -->
  <policy domain="coder" rights="none" pattern="PS" 
  <policy domain="coder" rights="none" pattern="PS2" 
  <policy domain="coder" rights="none" pattern="PS3" 
  <policy domain="coder" rights="none" pattern="EPS" 
  <policy domain="coder" rights="none" pattern="PDF" 
  <policy domain="coder" rights="none" pattern="XPS" 

3.注释或者删除这些条目,然后重新启动Web服务器服务。