Ресурс Imagick Max отличается в php-скрипте от командной строки php - PullRequest
0 голосов
/ 04 сентября 2018

Я изменил свой policy.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.

И запуск файла в командной строке, и браузер были выполнены только на сервере.

Вот мой скорректированный файл политики, я увеличил все это в том случае, если какой-либо из них вызывал ограничение. Максимальный размер файла для изображения составляет 2 ГБ и приблизительно 32000 пикселей при 300 точек на дюйм (это для печати):

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

1 Ответ

0 голосов
/ 08 октября 2018

В моей версии CLI и Nginx используют разные INI-файлы.

CLI использует /etc/php/{version}/cli/php.ini, а Nginx использует FPM /etc/php/{version}/fpm/php.ini, я думаю, ваш конфиг будет аналогичным.

Если это так, убедитесь, что значения, которые вы хотите сопоставить, соответствуют.

Вы можете легко проверить; создайте файл, содержащий phpinfo();, и проверьте путь к своему INI-файлу из CLI и веб-браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...