После обновления PHP больше не поддерживает операции PNG

После обновления до Mac OS X 10.10 (Yosemite) и запуска Apache с поддержкой PHP все работает, как и раньше, за исключением любых операций с изображениями в файлах PNG. Я получаю Call to undefined function imagecreatefrompng(), в то время как любая операция с файлами JPEG работает. Так что GD присутствует, но не для PNG.

В phpinfo() есть одна строка, которая выглядит как проблема: '--with-png-dir=no'

phpinfo()

Раздел GD от phpinfo():

Введите здесь описание изображения

Как заставить включенный PHP работать с файлами PNG?


person Rainer Mohr    schedule 18.10.2014    source источник
comment
Я также обновился до yosemite и укусил это. Я исправил это, установив собственный php, но это не идеально. Что мы можем сделать, чтобы Apple исправила gd и png в будущих обновлениях?   -  person rjcarr    schedule 21.10.2014
comment
на случай, если кто-то из участников задается вопросом, откуда берутся все голоса - этот вопрос обсуждался на мета   -  person    schedule 23.10.2014
comment
Похоже, вы обновили либо свою библиотеку GD, либо модуль php-gd до версии без поддержки PNG, скомпилированной в ней. версия с поддержкой.   -  person Steve Shipway    schedule 24.10.2014
comment
Это хороший вопрос. Почему в ожидании??   -  person Sanne    schedule 24.10.2014
comment
Я не понимаю, почему этот вопрос отложен, это ОЧЕНЬ помогает (у меня похожий вопрос). Я не мог сделать **** без ответа @Jpsy на мой вопрос.   -  person Kyslik    schedule 24.10.2014
comment


Ответы (3)


Вот еще вариант, от ребят из liip, здесь. Это пакет PHP, который поставляется предварительно созданным для Yosemite (старые версии тоже работают), но это всего лишь одна строка кода:

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5

После этого все готово к работе, как положено. Конфигурация, поставляемая с этой установкой, хорошо подходит для разработки Symfony 2, но она должна прекрасно работать и в других случаях использования.

Наконец, если вам также нужно использовать обновленный PHP CLI, но вы не хотите использовать версию PHP, поставляемую с ОС, вы также можете добавить в свой .bash_profile или аналогичный эту строку кода:

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

person Patrick D'appollonio    schedule 25.10.2014
comment
прошел этот путь, очень безболезненно и легко сделать. работает как шарм - person Rainer Mohr; 26.10.2014
comment
Это обновляет PHP до версии 5.6 для сервера apache, что сломает множество кодовых баз. Как вы возвращаетесь после этого? - person John; 27.07.2015
comment
Может решить проблему, но, как заметил @John, нарушит многие кодовые базы. Он также запускает произвольный размещенный скрипт, прочитайте файл перед запуском людей - person sricks; 11.09.2015
comment
Я обновил код командной строки, чтобы использовать PHP 5.5 вместо 5.6. Технически вы можете выбрать любую версию между 5.3 и 5.6, используя тот же скрипт install.sh. - person Patrick D'appollonio; 04.10.2015


Как сказал @jtotheh, установка полной версии PHP с скомпилированной поддержкой PNG и FreeType — это путь.

Если вы не хотите возиться с этим процессом, я подготовил полные пошаговые инструкции в качестве ответа на аналогичный вопрос: https://stackoverflow.com/a/26505558/430742

person Jpsy    schedule 22.10.2014