обратите внимание, что в следующих шагах установите новейший PHP 5.5.x
Чтобы проверить, установлены ли gd и mcrypt, используйте $ php -m
для отображения скомпилированных в модулях, продолжайте, если вам не хватает желаемых модулей, и, пожалуйста, см. Принятый ответ .
Итак, Apple установила GD (и вы используете их сборку PHP, что хорошо), но не включала поддержку PNG.
Вам определенно не хватает «полного» gd (с поддержкой png), если отсутствует функция imagecreatefrompng () .
"Call to undefined function imagecreatefrompng()"
установить варево, используя принятый ответ и пропустить часть с установкой gd (если вам это не нужно), и использовать следующие шаги:
$ brew search mcrypt
$ brew install php55-mcrypt
$ php -m | grep mcrypt
$ php -m | grep mcrypt
Зайдите на brew-php-switcher и следуйте инструкциям.
Вы правы, встроенный PHP-модуль Yosemite поставляется без поддержки PNG и FreeType.
Обновление 2015/10 для El Captian: с OS X 10.11 Поддержка ElGit PNG вернулась, но FreeType все еще отсутствует.
Решение
Используйте диспетчер пакетов Homebrew для безболезненного создания и установки полного PHP и замены его в конфигурации Apache. Весь процесс занимает около десяти минут, если вы выполните следующие шаги.
Быстрая (но полная) прогулка
(Примечание 1: Я использую Homebrew здесь, систему управления пакетами для OS X. Если вы знакомы с MacPorts – другим диспетчером пакетов – вы можете получить те же результаты с этой системой. Также можно использовать мое решение для дома, существующая установка MacPorts на вашем компьютере.)
(Примечание 2: Если вы хотите прочитать все детали процесса установки, посмотрите базовую установку Homebrew и информацию об установке Homebrew PHP, но вам это не понадобится, если вы выполните следующие шаги.)
Теперь давайте пойдем …
Сначала установите Xcode из App Store . Если у вас уже есть это, проверьте App Store еще раз, чтобы убедиться, что у вас есть последняя версия!
Теперь вам нужно установить инструменты командной строки Xcode . Для этого откройте терминал и введите:
xcode-select --install
Следующая команда установит систему диспетчера пакетов Homebrew:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Сценарий объясняет, что он будет делать, а затем делает паузу, прежде чем он это сделает.
Следующая команда для входа – это своего рода тест состояния системы:
brew doctor
Это проверяет основы установки Homebrew.
Я получил предупреждение «У вас установлены MacPorts или Fink: / opt / local / bin / port …», которые я проигнорировал успешно. 😉
Теперь настройте кран домашней / обломочной машины, у которого есть зависимости, которые нам нужны:
brew tap homebrew/dupes
Настройте ключ доморощенного / версии, который также имеет необходимые зависимости:
brew tap homebrew/versions
Затем выполните следующую команду:
brew tap homebrew/homebrew-php
Теперь вы готовы окончательно построить PHP. Для получения списка доступных параметров конфигурации вы можете запустить один из них:
brew options php55 brew options php56
Но я был в порядке, используя настройки по умолчанию.
Для этого введите ОДИН из этих двух, в зависимости от ваших потребностей:
brew install php55 brew install php56
(Это займет некоторое время, пожалуйста, будьте терпеливы!)
при установке php56 (5.6.x) на Yosemite (10.10.5) есть ошибка, см. эту проблему в github. вместо этого используйте
brew install php56 --without-ldap
.
Если вы получите сообщение об ошибке «Не можете найти OpenSSL», вы не установили инструменты командной строки Xcode, как я сказал вам в начале. 😉 Идите дальше, установите их и запустите последнюю команду.
PHP теперь построен, и скрипт завершит некоторые подробности о том, как его использовать:
Откройте httpd.conf (должен быть расположен в /private/etc/apache2/httpd.conf) и включите PHP, добавив ОДИН из этих двух строк, в зависимости от того, какая версия PHP вы только что установили:
LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
Не забудьте прокомментировать любую существующую строку LoadModule php5_module …, которая может присутствовать на собственной PHP-версии Yosemite!
Перезапустить Apache
sudo apachectl restart
Ваш новый файл php.ini можно найти в: /usr/local/etc/php/5.5/php.ini
Наслаждайтесь!
Ответ от @Jpsy хорош, но есть еще один вариант, от ребята от liip, здесь . Это пакет PHP, готовый для Yosemite (более старые версии тоже работают), но это всего лишь одна строка кода:
curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5
После этого все готово к работе, как ожидалось. Конфигурация, связанная с этой установкой, хорошо подходит для разработки Symfony 2, но она должна отлично работать с другими вариантами использования.
Наконец, если вам также нужно использовать обновленный CLI-интерфейс PHP, но вы не хотите использовать версию PHP, поставляемую вместе с ОС, то вы также можете добавить в свой .bash_profile
или аналогичную эту строку кода:
export PATH=/usr/local/php5/bin:$PATH
У меня недостаточно комментариев, чтобы сделать комментарий, но если вы используете OS X Server для Yosemite (версия 4 из App Store), файл для редактирования:
/library/server/web/config/apache2/httpd_server_app.conf
мой вид выглядит сейчас и подтвердил, что он работает после использования php 5.6 из homebrew.
#LoadModule php5_module libexec/apache2/libphp5.so LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
Стандартный Apache приступает с Yosemite для обновления файла после
sudo brew install php55
находится в /etc/apache2/httpd.conf
Обратите внимание, что местоположение php.ini также изменено. Стандартный, который поставляется с Yosemite, находится в /etc/php.ini, тот, у кого есть домашняя версия, находится в /usr/local/etc/php/5.5/php.ini