Instalación de php-gd + mcrypt en Yosemite / El Capitan


Cómo instalar/habilitar php-gd y mcrypt en Yosemite 10.10 - PHP 5.5.14 build?

tenga en cuenta que los siguientes pasos instalar más reciente PHP 5.5.x

Para verificar si tiene gd y mcrypt instalados, use $ php -m para mostrar los módulos compilados, continúe si le faltan los módulos deseados y consulte respuesta aceptada.


GD

Entonces, Apple instaló GD (y está utilizando su compilación de PHP, que es fine), pero no incluye soporte para PNG.

Definitivamente te falta el módulo" full " gd (con soporte png) si: falta la función imagecreatefrompng().

"Call to undefined function imagecreatefrompng()"

introduzca la descripción de la imagen aquí


Mcrypt

Instalar brew usando respuesta aceptada y omita la parte con la instalación de gd (a menos que lo necesite), y use los siguientes pasos:

  1. hacer búsqueda - $ brew search mcrypt
  2. elija la versión de PHP que want
  3. instalar - $ brew install php55-mcrypt
  4. confirme usando $ php -m | grep mcrypt

¿Quieres cambiar entre versiones de PHP?

Echa un vistazo a brew-php-switcher y sigue las instrucciones.

Author: Community, 2014-10-21

4 answers

Tiene razón, PHP incorporado de Yosemite viene sin soporte PNG y FreeType.
Actualización 2015/10 para El Captian: Con OS X 10.11 El Capitan PNG soporte está de vuelta, pero FreeType todavía falta.

Solución

Use el gestor de paquetes Homebrew para construir e instalar sin problemas un PHP completo y reemplazarlo en la configuración de Apache. Todo el proceso solo toma unos diez minutos si sigue los pasos a continuación.

Un rápido (pero completar) caminar por

(Nota 1: Utilizo Homebrew aquí, un sistema de gestión de paquetes para OS X. Si está familiarizado con MacPorts – otro gestor de paquetes – puede obtener los mismos resultados con ese sistema. También es posible utilizar my Homebrew solution en paralelo a una instalación MacPorts existente en su máquina.)
(Nota 2: Si desea leer todos los detalles sobre el proceso de instalación, eche un vistazo a Homebrew basic installation and the Homebrew PHP installation information. Pero realmente no necesitarás eso si sigues estos pasos.)

Ahora vamos...

Primero instale Xcode desde App Store. Si ya lo tienes, revisa App Store de nuevo, para asegurarte de que tienes la última versión.

Ahora necesita instalar las Herramientas de Línea de comandos Xcode. Para hacerlo, abra un Terminal e ingrese:

xcode-select --install

El siguiente comando instalará el Homebrew sistema gestor de paquetes:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

El script explica lo que hará y luego hace una pausa antes de hacerlo.

El siguiente comando a introducir es una especie de prueba de estado del sistema:

brew doctor

Esto comprueba los conceptos básicos de la instalación de Homebrew.
Recibí una advertencia "Tiene MacPorts o Fink instalados: /opt/local/bin/port ..." que ignoré con éxito. ;)

Ahora configura el homebrew / dupes tap que tiene dependencias que necesitamos:

brew tap homebrew/dupes

Configurar el homebrew / versions tap que también tiene dependencias que necesitamos:

brew tap homebrew/versions

Luego ejecute el siguiente comando:

brew tap homebrew/homebrew-php

Ahora está listo para finalmente compilar PHP. Para obtener una lista de opciones de configuración disponibles, puede ejecutar una de estas:

brew options php55
brew options php56

Pero estaba bien solo usando los valores predeterminados.
Para ello introduce UNO de estos dos, dependiendo de tus necesidades:

brew install php55
brew install php56

(Esto toma un tiempo, por favor, sea paciente!)

Al instalar php56 (5.6.x) on Yosemite (10.10.5) hay un error por favor vea este problema en github. use brew install php56 --without-ldap en su lugar.

Si obtienes un error de tipo "Cannot find Openssl's " no has instalado las Herramientas de línea de comandos de Xcode como te dije al principio. ;) Adelante, instálalos y vuelve a ejecutar el último comando.

PHP está construido ahora y el script terminará con algunos detalles sobre cómo usarlo:

Abra httpd.conf (debe estar ubicado en / private/etc/apache2 / httpd.conf) y habilita PHP agregando UNA de estas dos líneas, dependiendo de la versión de PHP que acabas de instalar:

LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so

No olvides comentar cualquier LoadModule php5_module existente... línea que podría estar presente desde la propia versión PHP de Yosemite!

Reiniciar Apache

sudo apachectl restart

Su nuevo php.archivo ini se puede encontrar en: /usr/local/etc/php/5.5/php.ini

¡Disfruta!

 80
Author: Jpsy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-28 12:11:59

La respuesta de @Jpsy es buena, pero hay otra opción, de los chicos de liip, aquí. Este es un paquete PHP que viene pre-construido para Yosemite (las versiones anteriores también funcionan) pero es solo una línea de código:

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

Después de eso, todo está listo para funcionar como se esperaba. La configuración que viene con esa instalación es muy adecuada para el desarrollo de Symfony 2, pero debería funcionar bien con otros casos de uso.

Finalmente, si necesita usar la CLI de PHP actualizada, también, pero no desea usar la versión de PHP que viene con el sistema operativo, entonces también podría agregar a su .bash_profile o similar esta línea de código:

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

 21
Author: Patrick D'appollonio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-11 22:59:06

No tengo suficiente rep para hacer un comentario, pero si estás usando OS X Server para Yosemite (Versión 4 de la App Store) el archivo a editar es:

/library/server/web/config/apache2/httpd_server_app.conf

El mío se ve así ahora y confirmó que está funcionando después de usar php 5.6 desde homebrew.

#LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
 3
Author: user1618341,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-05 20:46:26

Apache estándar viene con Yosemite el archivo a actualizar después de

sudo brew install php55

Está en /etc/apache2/httpd.conf

Tenga en cuenta que la ubicación de php.ini también se cambia. El estándar que viene con Yosemite está en /etc/php.ini, el que tiene la versión homebrewed está en /usr/local/etc/php/5.5/php.ini

 0
Author: a7d0rn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-10 16:53:34