Imagick max资源在php脚本中与php命令行不同

Jam*_*3sn 5 php imagemagick nginx imagick

我已经更改了我的policy.xml以允许更大的最大图像大小.在命令行中运行脚本时:

$ php image.php
64000
Run Code Online (Sandbox Code Playgroud)

但是当我在浏览器中加载它时:

16000
Run Code Online (Sandbox Code Playgroud)

该脚本只包含:

<?php echo Imagick::getResourceLimit(9);
Run Code Online (Sandbox Code Playgroud)

如何将相同的策略应用于所服务的脚本?

编辑:回答多条评论:

所以策略文件/etc/ImageMagick-6/policy.xml位于find /usr /opt / -name policy.xml.服务器是nginx,它是一个DigitalOcean Droplet,所以我有完全控制权.

我已经尝试在实例化Imagick和之后设置资源限制,两者都返回相同的16000限制.

在命令行中运行文件和浏览器都只在服务器上完成.

这是我的调整后的政策文件,我已经把它全部搞砸了,因为它们中的任何一个都造成了限制.图像的最大文件大小为2GB,300dpi时大约为32000px(用于打印):

  <policy domain="resource" name="memory" value="1GB"/>
  <policy domain="resource" name="map" value="1GB"/>
  <policy domain="resource" name="width" value="64KB"/>
  <policy domain="resource" name="height" value="64KB"/>
  <policy domain="resource" name="area" value="1GB"/>
  <policy domain="resource" name="disk" value="2GB"/>
Run Code Online (Sandbox Code Playgroud)

Ale*_*man 0

在我的版本上,CLI 和 Nginx 使用不同的 ini 文件。

CLI 使用/etc/php/{version}/cli/php.ini而 Nginx 使用 FPM /etc/php/{version}/fpm/php.ini,我猜你的配置是相似的。

如果是,请确保您想要匹配的值是这样。

您可以轻松检查;创建一个包含phpinfo();ini 文件的文件,并从 CLI 和 Web 浏览器检查 ini 文件的路径。