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



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

$ php image.php
64000

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

16000

该脚本仅包含:

<?php echo Imagick::getResourceLimit(9);

如何使相同的策略应用于提供的脚本?

编辑:回答多条评论:

因此,策略文件/etc/ImageMagick-6/policy.xmlfind /usr /opt / -name policy.xml一起定位。服务器是nginx,它是一个DigitalOcean液滴,所以我可以完全控制。

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

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

这是我调整后的策略文件,我已经将其全部提高了,以防其中任何一个导致限制。图像的最大文件大小为 2GB,300dpi 时约为 32000 像素(用于打印(:

<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"/>

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

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

如果是,请确保要匹配的值匹配。

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

最新更新