我更改了我的策略.xml以允许更大的最大图像大小。在命令行中运行脚本时:
$ php image.php
64000
但是当我在浏览器中加载它时:
16000
该脚本仅包含:
<?php echo Imagick::getResourceLimit(9);
如何使相同的策略应用于提供的脚本?
编辑:回答多条评论:
因此,策略文件/etc/ImageMagick-6/policy.xml
与find /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 文件的路径。