Ресурс imagick max отличается в скрипте php от командной строки php

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

Не могли бы вы добавить здесь изменение policy.xml (не весь файл, а только измененную строку конфигурации). Возможно, вам придется прибегнуть к установке его на лету с помощью setResourceLimit .. Конфигурация между php командной строки и apache php может иногда отличаться.

IncredibleHat 04.09.2018 18:10

Где вы редактировали свой policy.xml - в каком каталоге? Если ваш хостинг устанавливает какое-то значение, вы можете сделать его только более строгим, а не менее строгим.

fmw42 04.09.2018 18:14

Вы запускали оба на одном компьютере? Или один локально, а другой на сервере?

fmw42 04.09.2018 18:55

Я отредактировал свое сообщение, включив в него эти

Jam3sn 05.09.2018 10:25

Любые идеи? @IncredibleHat

Jam3sn 06.09.2018 12:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
6
5
289
1

Ответы 1

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

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

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

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

Другие вопросы по теме