Назад | Перейти на главную страницу

Imagemagick, по-видимому, настроен правильно, по-прежнему не будет работать под IIS 7.5 + PHP 5.3.2

Мне удалось заставить работать imagemagick (проверено с использованием примера командной строки на их веб-сайте)
Также кажется, что расширение php установлено правильно: я вижу его в списке в моем phpinfo(); список.

Однако когда я пытаюсь запустить следующий код:

    $im = new imagick( 'examples.jpg' );
    $im->thumbnailImage( 200, 0);
    $im->writeImage( 'a_thumbnail.jpg' );

Выполнение останавливается на второй строке, потому что не может найти метод thumbnailImage.

Я могу думать о том, что у какого-то пользователя недостаточно прав для доступа / запуска чего-то еще, но я, очевидно, не могу предоставить пользователю доступ ко всему.
Другая возможность состоит в том, что расширение PHP, которое я использую, не подходит для последнего дистрибутива imagemagick.

У меня была такая же проблема. Взгляните на версию Visual Studio, используемую для компиляции a) ImageMagick, b) php_imagick.dll, c) php и обратите внимание на флаги безопасности потоков для файла php. Версии Visual Studio должны быть одинаковыми. Самым важным в этой очереди и в этом сценарии является версия VS, используемая для компиляции ImageMagick. Они поместили библиотеки времени выполнения VS-C ++ в файл установки ImageMagick. Они называются msvcr [71 | 90 | 100] .dll и msvcp [71 | 90 | 100] .dll.

Мой тест был:

  1. запустите "convert logo: logo.gif" в командной строке
  2. запустите "imdisplay logo.gif" в командной строке (это не удалось для последней версии ImageMagick из-за проблем с VS2010 и ImageMagick (http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=17303 && http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=17720)) -> ImageMagick понижен до 6.5.9 (http://image_magick.veidrodis.com/image_magick/binaries/)
  3. запустите свой php-скрипт через командную строку (/path/to/php.exe /path/to/php-script.php> /path/to/output.jpg) (он не удастся, если VS-версии не совпадают ) (для меня php от (http://valokuva.org/?page_id=50) и ImageMagick 6.5.9 работал)
  4. запустите php-скрипт через ваш веб-сервер и браузер
  5. поднять error_level в php (php_imagick вызывает ошибку, если разрешение на запись для временной папки неверно) -> исправьте их (разрешите запись для пользователя системы веб-сервера)
  6. тестовый шаг 4 снова
  7. php_imagick работает на iis

Может быть связано с тем, что PHP работает в безопасном режиме.

http://www.imagemagick.org/discourse-server/viewtopic.php?f=10&t=13055

http://www.theukwebdesigncompany.com/articles/php-imagemagick.php

цитата: Если на вашем сервере работает PHP в безопасном режиме, что, вероятно, будет, если вы используете (бесплатный) общий хост, ваши сценарии не имеют права выполнять команды оболочки. Поскольку этот сценарий запускает ImageMagick как команду оболочки, вы не сможете его использовать. Вы могли бы. попросите своего хостинг-провайдера отключить безопасный режим или b. используйте библиотеку GD для создания ваших изображений. ImageMagick намного мощнее библиотеки GD, но вы можете использовать последнюю даже в безопасном режиме.

Я использовал следующую статью, чтобы установить магию изображений на свой компьютер с Windows 7 с IIS 7.5, и он работает нормально. Я бы посоветовал проверить то же самое:

http://gary-greendale.blogspot.com/2011/01/install-php-imagemagick-and-imagick-for.html