ImageMagick Brew установка с PHP-модулем в Mac OS X
Я установил ImageMagick с помощью brew install imagemagick
. Все это отлично работало, и я могу запустить любую команду ImageMagick из командной строки Terminal/Command.
Теперь, когда я пытаюсь использовать классы ImageMagick в PHP, я получаю сообщение об ошибке Class 'Imagick' not found in ...
. Я думаю, это потому, что модуль ImageMagick не загружен.
Может ли кто-нибудь помочь мне заставить эту работу работать на PHP? Спасибо!
Дополнительная информация:
Mac OS X Версия: 10.8: Горный Лев
Версия PHP: 5.3.13
Ответы
Ответ 1
Вашей установки ImageMagick недостаточно. Вам также понадобится пакет Imagick (возможно, называемый php72-imagick
или аналогичный для домашнего приготовления).
Imagick не выполняет саму работу, это собственное расширение PHP для создания и изменения изображений с помощью API ImageMagick.
Попробуйте найти точное название пакета через brew search imagick
.
Ответ 2
Я просто сделал это после много экспериментов. На данный момент это, по-видимому, способ сделать это для php 5.3:
brew tap josegonzalez/php
brew tap homebrew/dupes
brew install php53-imagick
Не знаю, кто такой Хосе Гонсалес, но, видимо, мы находимся в его долге....
Ответ 3
Я использую Йосемити. Для меня решение представляет собой комбинацию ответов и комментариев, уже перечисленных здесь.
brew install imagemagick
brew install php55-imagick
Измените/etc/php.ini, чтобы включить imagick
extension=/usr/local/Cellar/php55-imagick/{version of php55-imagick}/imagick.so
Пример:
extension = /usr/local/Cellar/php55-imagick/3.1.2_1/imagick.so
Ответ 4
У меня была такая же проблема. Это шаги, которые работали для меня, если вы используете php 5.6
-
brew install php56-imagick
-
brew install imagemagick
-
find /usr/local/Cellar -name "imagick.so"
скопируйте путь из вывода этой команды в файл php.ini
например extension=/usr/local/Cellar/php56-imagick/3.3.0_2/imagick.so
сохраните файл. Теперь, чтобы проверить, что класс imagemagick существует тип
-
php -r "print(class_exists('imagick'));"
Brew symlinking не работал у меня, поэтому мне пришлось поместить полный путь в файл php.ini, чтобы заставить его работать.
Надеюсь, что это поможет
Ответ 5
php72-imagick
устарела, так как imagick является частью самого бинарника php. Используйте pecl
для установки imagick, например:
brew install php
brew install imagemagick
pecl install imagick
Ответ 6
этот работал для меня:
brew install imagemagick # If it not already installed
mkdir /usr/local/lib/php/pecl # On my system this dir didn't exist and this caused pecl install to fail
pecl install imagick
здесь
Ответ 7
Try:
brew install homebrew/php/php53-imagick
Ответ 8
Я искал правильный способ установить imagick на Mojavie и нашел решение, которое полностью работало.
- brew установить imagemagick @6
- brew install [email protected]
- Установить заголовки (Xcode-select --install)
- Загрузите исходный код imagick по адресу: https://pecl.php.net/package/imagick.
- Откройте терминал и войдите в распакованную папку imagick-3.4.3/imagick-3.4.3 (в моем случае)
- Запустите команду phpize
- . /configure
- делать
И теперь, если ошибка возникает, как MagicWand не найден, отредактируйте файл Makefile и найдите CPPFLAGS = -I/usr/local/opt/imagemagick @6/include/. Проверьте, нет ли в папке include другой папки. В моем случае это должно быть так: CPPFLAGS = -I/usr/local/opt/imagemagick @6/include/ImageMagick-6
сохранить и вернуться в терминал и набрать make (после завершения) sudo make install
imagick.so находится в imagick-3.4.3/imagick-3.4.3/modules
Ответ 9
Хорошо, через 1 час, я понял это. Mac не дает разрешениям pecl-скрипта создавать каталог PHP. Для разрешения сделайте следующее.
brew install imagemagick
Sudo pecl install imagick .
php --ini | grep "Loaded Configuration File"
Add extension=imagick.so under extensions.
Установка будет завершена. Затем для пробного запуска:
php -r "print(class_exists('imagick'));"
Ответ 10
От: ошибка php: класс 'Imagick' не найден
Вы добавили extension=imagick.so
в свой php.ini
(или /etc/php.d/imagick.ini
) файл?
Ответ 11
У меня была такая же ошибка, уже установлен imagemagick
и php71-imagick
.
brew upgrade imagemagick
- сделал свое дело для меня.
Вам может понадобиться sudo
:
sudo brew upgrade imagemagick
Вам может потребоваться перезапустить apache
/php-fpm
/<other webserver>
.
Ответ 12
Я не могу добавлять комментарии из-за репутации, но чтобы добавить к этому ответу:
ответил 12 Апр в 16:52
Гжегож Мицкевич
Я получил недостающий файл php.h, поэтому в соответствии с установкой xdebug на MacOs Mojave - файл 'php.h' не найден, я установил необходимый файл с помощью следующей команды:
установщик sudo -pkg/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target/