Доморощенный: установите новую формулу php72-imagick - PullRequest
0 голосов
/ 27 апреля 2018

Мне нужно установить модуль imagick на мой php 7.2

Понятно

brew search php72
==> Searching local taps...
==> Searching taps on GitHub...
==> Searching blacklisted, migrated and deleted formulae...
No formula found for "php72".
Closed pull requests:
...
php72-imagick 3.4.3 (new formula) (https://github.com/Homebrew/homebrew-php/pull/4267)

Как я могу это сделать?

Также мне нужна поддержка аргона

Ответы [ 3 ]

0 голосов
/ 25 мая 2018

Я думаю, все изменилось в апреле 2018 года. Homebrew больше не действует как менеджер пакетов для PHP, поэтому все вещи php-imagick, php-redis и php-other-extension исчезли, и теперь вы должны управлять пакетами PHP, используя pecl, как и все остальные делает.

Итак, как получить Imagick под PHP? Обратите внимание, что Imagick и ImageMagick - это две разные вещи:

  • ImageMagick - это полный набор ImageMagick
  • Imagick просто PHP-привязка

Вот шаги - если кто-то знает лучше или какие-либо улучшения, дайте мне знать через комментарий, и я буду обновлять.


Шаг 1 - Удалить все, что может конфликтовать

Перед началом работы лучше всего очистить все, что сломано или не нужно. Сделайте столько, сколько вам удобно:

brew rm php php@5.6 php@7.0 php@7.1
brew rm imagemagick

Шаг 2 - Обновите инструменты командной строки Xcode и получите пакеты сборки

Убедитесь, что вы установили инструменты командной строки Xcode с:

xcode-select --install

Перейдите в AppStore и нажмите Updates и обновите все пакеты, связанные с Xcode, особенно если вы недавно обновили macOS.

Установка доморощенных строительных инструментов:

brew install pkg-config

Шаг 3 - Установите ImageMagick

Проверьте, какие опции ImageMagick вы хотите использовать:

brew options imagemagick

Мне нравится использовать:

brew install imagemagick --with-x11 --with-librsvg --with-openexr --with-pango
hash -r

но вам может понравиться установка vanilla:

brew install imagemagick
hash -r

Шаг 4 - Установить доморощенный PHP

Далее установите версию PHP homebrew с:

brew install php
hash -r                    # Update bash's internal paths

Теперь критически убедитесь, что вы используете правильный homebrew PHP:

type php

Если это говорит вам:

/usr/local/...anything.../php

у вас homebrew PHP и вы можете перейти к следующему шагу.

Если он говорит вам:

/usr/bin/php

вы используете PHP от Apple. Если это то, что вы хотите запустить, игнорируйте весь мой ответ, который основан на том, что вы хотите использовать homebrew PHP. Если вы получили этот ответ, но хотите запустить homebrew PHP, ваш PATH установлен неправильно. Вам нужно поставить /usr/local/bin перед /usr/bin, чтобы забрать все пакеты homebrew перед программами Apple, т.е.

export PATH=/usr/local/bin:$PATH

Этот шаг дает вам также pecl - менеджер пакетов PHP - так как он является частью homebrew PHP.


Шаг 5 - Установите Imagick

Теперь вы можете установить Imagick с pecl:

pecl install imagick

Если что-то пойдет не так, вот несколько вопросов и ответов ...

Q1. Как я могу найти, где находится мой php.ini файл?

Попробуйте любую из следующих команд:

pecl config-get php_ini                  # I get "/usr/local/etc/php/7.2/php.ini"
brew info php
php -i | grep "Loaded Configuration"     # I get "Loaded Configuration File => /usr/local/etc/php/7.2/php.ini"

Q2. Как я могу найти, где pecl устанавливает модули?

pecl config-get ext_dir                 # I get "/usr/local/lib/php/pecl/20170718"

Q3. Как узнать, какие модули PHP загружены?

php -m

Q4. Почему PHP не может найти мой модуль?

Сначала найдите каталог модулей, используя Q2. Мне нравится помещать это в буфер обмена с помощью:

pecl config-get ext_dir | pbcopy

Затем отредактируйте файл php.ini из Q1. Я использую vi, поэтому я бы сделал:

vi "$(pecl config-get php_ini)"

Затем найдите строку в этом файле, которая выглядит следующим образом:

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir

и затем (используя содержимое буфера вставки) сделайте следующую строку похожей на эту (без точки с запятой в начале):

extension_dir = "/usr/local/lib/php/pecl/XXXXXX"

на моей машине XXXXXX равно 20170718. Если вы понимаете это правильно, любые и все модули, которые вы устанавливаете через pecl, будут видны вашему homebrew PHP.

В5. Как я могу увидеть все мои настройки PHP?

Проверьте конфигурацию, версии и настройки PHP:

php -i

Надеюсь, это поможет!

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

В моем случае (PHP 7.2.10 с Homebrew) работает:

pecl install imagick

Откройте файл php.ini и удалите расширение с расширением imagick.

Проверьте * .ini файлы с

php --ini

Вы можете видеть пути к файлам расширения. Создайте или отредактируйте файл imagick ini.

subl /usr/local/etc/php/7.2/conf.d/ext-imagick.ini

Содержимое файла может быть (проверьте путь к imagick.so)

[imagick]
extension="/usr/local/opt/php/pecl/20170718/imagick.so"

И перезапустите php с помощью

brew services restart php

Попробуйте, если сообщение об ошибке исчезнет:

php -v

И проверьте расширение imagick с помощью:

php -i | grep imagick

Если вы видите строку с imagick module => enabled , вы решили проблему.

0 голосов
/ 25 мая 2018

Вы хотите php72-gmagick, GraphicsMagick - это форк от ImageMagick 5.5.2.

Или вы можете pecl install imagick еще.

...