PHP ImagickException:未经授权

Luk*_*OLO 22 php ubuntu imagemagick

任何想法如何解决这一问题 ?

 ImagickException: not authorized `/tmp/magick-1552lvf2nIjaqx1W' @ error/constitute.c/ReadImage/412 
Run Code Online (Sandbox Code Playgroud)

我认为这是一个权限问题所以只是为了测试它我将我的/ tmp目录设置为777.没有变化.这让我疯狂.

命令 :

<?php


$image = new \Imagick();
$image->readImageBlob('<?xml version="1.0" encoding="UTF-8" standalone="no"?>' . $graph);
Run Code Online (Sandbox Code Playgroud)

小智 32

我已按照以下步骤修复致命错误:

Uncaught ImagickException: not authorized `../../c02_001.pdf'
@ error/constitute.c/ReadImage/412 
Run Code Online (Sandbox Code Playgroud)
  1. sudo vi policy.xml from etc/Imagemagick-6/
  2. 评论以下行

    <!-- <policy domain="coder" rights="none" pattern="MVG" /> -->
    
    Run Code Online (Sandbox Code Playgroud)
  3. 重写以下行

    <policy domain="coder" rights="none" pattern="PDF" />
    
    Run Code Online (Sandbox Code Playgroud)

    <policy domain="coder" rights="read|write" pattern="PDF" />
    
    Run Code Online (Sandbox Code Playgroud)
  4. sudo apt-get install inkscape

  5. 使用以下命令重启apache sudo restart apache2

  • <policy domain ="coder"rights ="read | write"pattern ="PDF"/>这对我有用. (3认同)
  • 如果您使用的是php-fpm,请使用`sudo service php7.2-fpm restart`(或您的PHP版本),而不是重新启动apache。 (2认同)

小智 20

您的政策"MVG"可能就是原因.只是评论

<policy domain="coder" rights="none" pattern="MVG" />
Run Code Online (Sandbox Code Playgroud)

/etc/ImageMagick/policy.xml和重新启动Apache服务器.

  • 如果位置不同,您可以运行`locate policy.xm`来查找文件.然后做替换:`sudo sed -i -e's/rights ="none"pattern ="PDF"/ rights ="read | write"pattern ="PDF"/'/etc/ImageMagick-6/policy.xml `,请参阅下面的/sf/answers/3687430141/. (5认同)