обратите внимание, что следующие шаги установить новейший 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-коммутатор и следуйте инструкциям.
Вы правы, встроенный PHP Yosemite поставляется без поддержки PNG и FreeType.
Обновление 2015/10 для El Captian: С OS X 10.11 El Capitan PNG поддержка вернулась, но FreeType по-прежнему отсутствует.
Решение
Используйте менеджер пакетов Homebrew, чтобы безболезненно собрать и установить полный PHP и заменить его в конфигурации Apache. Весь процесс занимает около десяти минут, если вы выполните следующие шаги.
Быстрая (но полная) прогулка
(Примечание 1: я использую Homebrew здесь система управления пакетами для OS X. Если вы знакомы с MacPorts — другой менеджер пакетов — вы можете достичь тех же результатов с этой системой. Также возможно использовать моё решение Homebrew параллельно с существующей установкой MacPorts на вашем компьютере.)
(Примечание 2: Если вы хотите прочитать все подробности о процессе установки, посмотрите на Доморощенная базовая установка и Доморощенная установка 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 …» которую я успешно проигнорировал. 😉
Теперь настройте кран homebrew / dupes, у которого есть зависимости, которые нам нужны:
brew tap homebrew/dupes
Настройте кран homebrew / version, который также имеет зависимости, которые нам нужны:
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, но она должна прекрасно работать с другими вариантами использования.
Наконец, если вам нужно использовать обновленный PHP CLI, но вы не хотите использовать версию 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