alexandrknyazev13071995
@alexandrknyazev13071995

Как заставить работать встроенный в локальный сервер Open Server модуль Imagick?

Установил Open server. Перешел на него с Denwer'a, так как не смог туда поставить Imagick, а здесь он встроенный. Вот только отчего-то он работать не хочет, словно и не стоит никакого модуля. Я загружаю скрипт на хостинг, там работает, а все же разрабатывать на хостинге - дело неудобное.
Может Imagick надо как-то включить? Хотя в интернете об этом ничего не нашел.
Php_info сообщает, о том что Imagick подключен.
После того, как в Path в свойствах компьютера добавил путь до папки, в которой установлен Imagick - работает функция convert через cmd. Но мне надо через php
При попытке вставки такого кода:
<?php
$image = new Imagick('im.jpg');
// Если в качестве ширины или высоты передан 0,
// то сохраняется соотношение сторон
$image->thumbnailImage(100, 0);
?>

Выдает такую ошибку скрипт:
Fatal error: Uncaught exception 'ImagickException' with message 'unable to open image `im.jpg': No such file or directory @ error/blob.c/OpenBlob/2709' in F:\OpenServer\domains\Mozart\php_info.php:4 Stack trace: #0 F:\OpenServer\domains\Mozart\php_info.php(4): Imagick->__construct('im.jpg') #1 {main} thrown in F:\OpenServer\domains\Mozart\php_info.php on line 4

Прочитал, что возможно нужно указывать полный путь до файла, сделал так:
$image = new Imagick('http://project/im.jpg');

Выдало следующее:
Fatal error: Uncaught exception 'ImagickException' with message 'Failed to read the file' in F:\OpenServer\domains\Mozart\php_info.php:4 Stack trace: #0 F:\OpenServer\domains\Mozart\php_info.php(4): Imagick->__construct('mozart/i...') #1 {main} thrown in F:\OpenServer\domains\Mozart\php_info.php on line 4
  • Вопрос задан
  • 3866 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Вам нужно указать путь, а не url.
http: //project/im.jpg
- это урл.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Yadalay
Php, Mysql, Html, Css, Js/Jquery/Ajax, Laravel
В каком случае показывается сообщение о том, что Imagick не подключен?
Я раньше сталкивался с такой проблемой, когда работал с терминалом в PhpStorm'e. Использую тоже OpenServer.
Тот вопрос я решил так:
1. Правая клавиша по иконке OpenServer'a.
2. Настройки - вкладка "Закладки".
2.1. Имя - любой название (я использовал PhpStorm).
2.2. Категория - любая (я новую использовал - IDE).
2.3. Выполнить - путь до exe'шника PhpStorm'a.
3. Добавить.
4. Сохранить.
5. Перезагрузить сервер.
6. Запустить PhpStorm через закладки, а не иконку на рабочем столе или пуске.
6.1. Правая клавиша по иконке OpenServer'a.
6.2. Мои закладки - категория (которую указывали) - название (которое указывали).
После всего этого я мог пользоваться терминалом в PhpStorm'e без этой ошибки уже.
Ответ написан
Комментировать
@Demin_Nick
Под Windows imagick видит только абсолютные пути, __DIR__ нужен.

$image = new Imagick(__DIR__.'/file_name');
Ответ написан
Комментировать
Jakim
@Jakim
Laravel - developer
Если работаете в CMS используйте константу к примеру DIR_IMAGE -OpenCart
Если самопис или не знаете констант используйте $_SERVER['DOCUMENT_ROOT'] и дальше указывайте путь к изображению.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы