with the sierra php71 php70 name mac extension error available php macos apache mcrypt

the - Instalación de la extensión mcrypt para PHP en OSX Mountain Lion



mcrypt php extension required mac (16)

sudo apt-get install php5-mcrypt

ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/fpm/conf.d/mcrypt.ini

servicio php5-fpm restart

service nginx restart

Disculpas de antemano por las posibles preguntas n00b, estoy tratando de instalar la extensión mcrypt para PHP en mi máquina OSX Mountain Lion.

Los siguientes pasos en la terminal es lo que he hecho hasta ahora para lograr mi instalación de PHP

cd /path/to/downloaded/php-5.3.21/ext/mcrypt/ /usr/bin/phpize ./configure cd /path/to/downloaded/php-5.3.21 ./configure --with-config-file-path=/private/etc/php.ini --with-apxs2=/usr/sbin/apxs make sudo make install

Lo cual parece funcionar bien e instala PHP 5.3.21 bien. Entonces he hecho

sudo nano /private/etc/php.ini

E incluido

extension=mcrypt.so

Junto con un reinicio de Apache, phpinfo () no muestra que la extensión mcrypt está cargada.

Luego intenté especificar el archivo extension_dir dentro de php.ini, nuevamente sin suerte.

he hecho

locate mcrypt.so /opt/local/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so /usr/local/Cellar/php53-mcrypt/5.3.18/mcrypt.so

Y probé ambos directorios como el extension_dir, sin suerte.

También he intentado lo siguiente, después de mucho googlear

./configure --with-config-file-path=/private/etc/php.ini --with-apxs2=/usr/sbin/apxs --with-mcrypt

Lo cual parece funcionar bien, pero luego al "hacer", regresa

ext/mcrypt/mcrypt.o: No such file or directory ext/mcrypt/mcrypt_filter.o: No such file or directory

De nuevo, sin éxito.

¿Qué estoy haciendo mal? Parece que la compilación física de mcrypt.so no está sucediendo, o se está compilando incorrectamente, ya que sospecho que hay otra mcrypt.so encontrada en locate.

¿Alguien por favor ayuda? ¡He recorrido páginas y páginas de búsquedas de Google sin suerte!


Instalando mcrypt sin el uso de port o brew

Nota: estas instrucciones son largas porque pretenden ser minuciosas. El proceso es bastante directo. Si eres optimista, puedes saltar a la sección de construcción de la extensión mcrypt , pero es muy posible que veas los errores que hice y me libmcrypt primero instale autoconf y libmcrypt .

Acabo de pasar por esto en una nueva instalación de OSX 10.9. La solución que funcionó para mí fue muy similar a la de ckm . Estoy incluyendo sus pasos y los míos en su totalidad, para completar. Mi objetivo principal (aparte de "tener mcrypt ") era realizar la instalación de una manera que dejara el menor impacto en el sistema como un todo. Eso significa hacer cosas manualmente (sin port , sin brew )

Para hacer cosas manualmente, primero necesitará un par de dependencias: una para construir módulos PHP, y otra para mcrypt específicamente. Estos son autoconf y libmcrypt , cualquiera de los cuales ya podría tener, pero ninguno de los cuales tendrá en una nueva instalación de OSX 10.9.

autoconf

Autoconf (a falta de una mejor descripción) se usa para decir sistemas no muy dispares, pero aún muy diferentes, de cómo compilar cosas. Te permite usar el mismo conjunto de comandos básicos para compilar módulos en Linux como lo harías en OSX, por ejemplo, a pesar de sus diferentes jerarquías de sistema de archivos, etc. Utilicé el método descrito por Ares en , que reproduciré aquí. por completitud. Este es muy directo:

$ mkdir -p ~/mcrypt/dependencies/autoconf $ cd ~/mcrypt/dependencies/autoconf $ curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gz $ tar xzf autoconf-latest.tar.gz $ cd autoconf-*/ $ ./configure --prefix=/usr/local $ make $ sudo make install

A continuación, verifique la instalación ejecutando:

$ which autoconf

que debería devolver /usr/local/bin/autoconf

libmcrypt

A continuación, necesitará libmcrypt , que se utiliza para proporcionar las agallas de la extensión mcrypt (la extensión misma es una provisión de una interfaz PHP en esta biblioteca). El método que utilicé se basó en el que se describe here , pero he intentado simplificar las cosas lo mejor que puedo:

Primero, descargue el libmcrypt fuente de libmcrypt , disponible de SourceForge , y disponible al momento de escribir este documento, específicamente, en:

http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2/download

Tendrá que saltar a través de los aros estándar de SourceForge para obtener el enlace de descarga real, pero una vez que lo tiene, puede pasarlo a algo como esto:

$ mkdir -p ~/mcrypt/dependencies/libmcrypt $ cd ~/mcrypt/dependencies/libmcrypt $ curl -L -o libmcrypt.tar.bz2 ''<SourceForge direct link URL>'' $ tar xjf libmcrypt.tar.bz2 $ cd libmcrypt-*/ $ ./configure $ make $ sudo make install

La única forma que conozco para verificar que esto ha funcionado es a través del paso ./configure para la extensión mcrypt (a continuación)

construyendo la extensión mcrypt

Este es nuestro objetivo real. Esperemos que la breve temporada en el infierno de la dependencia haya terminado ahora.

Primero, necesitaremos obtener el código fuente de la extensión mcrypt . Esto está más fácilmente disponible enterrado dentro del código fuente para todo PHP. Entonces: determine qué versión del código fuente de PHP necesita.

$ php --version # to get your PHP version

ahora, si tiene suerte, su versión actual estará disponible para su descarga desde las réplicas principales. Si es así, puede escribir algo como:

$ mkdir -p ~/mcrypt/php $ cd ~/mcrypt/php $ curl -L -o php-5.4.17.tar.bz2 http://www.php.net/get/php-5.4.17.tar.bz2/from/a/mirror

Desafortunadamente, mi versión actual (5.4.17, en este caso) no estaba disponible, así que necesitaba usar los enlaces alternativos / históricos en http://downloads.php.net/stas/ (también un sitio oficial de descarga de PHP). Para estos, puedes usar algo como:

$ mkdir -p ~/mcrypt/php $ cd ~/mcrypt/php $ curl -LO http://downloads.php.net/stas/php-5.4.17.tar.bz2

Nuevamente, basado en su versión actual.

Una vez que lo tiene, (y todas las dependencias, desde arriba), puede acceder al proceso principal de realmente construir / instalar el módulo.

$ cd ~/mcrypt/php $ tar xjf php-*.tar.bz2 $ cd php-*/ext/mcrypt $ phpize $ ./configure # this is the step which fails without the above dependencies $ make $ make test $ sudo make install

En teoría, mcrypt.so ahora está en su directorio de extensiones PHP. A continuación, debemos contarle a PHP sobre esto.

configurando la extensión mcrypt

Su archivo php.ini necesita que le digan que cargue mcrypt . De forma predeterminada en OSX 10.9, en realidad tiene información de configuración específica de mcrypt , pero en realidad no activa mcrypt menos que se lo indique.

El archivo php.ini no existe, por defecto. En su lugar, el archivo /private/etc/php.ini.default enumera la configuración predeterminada y se puede utilizar como una buena plantilla para crear el php.ini "verdadero", si no existe.

Para determinar si php.ini ya existe, ejecute:

$ ls /private/etc/php.ini

Si hay un resultado, ya existe, y debe omitir el siguiente comando.

Para crear el archivo php.ini , ejecute:

$ sudo cp /private/etc/php.ini.default /private/etc/php.ini

Luego, debes agregar la línea:

extension=mcrypt.so

En algún lugar en el archivo. Recomendaría buscar en el archivo ;extension= , y agregarlo inmediatamente antes de la primera aparición.

Una vez hecho esto, la instalación y la configuración están completas. Puedes verificar que esto funcionó al ejecutar:

php -m | grep mcrypt

Que debería dar salida a " mcrypt ", y nada más.

Si su uso de PHP depende del httpd de Apache, deberá reiniciarlo antes de que note los cambios en la web. Puedes hacerlo a través de:

$ sudo apachectl restart

Y tu estas listo.


Por qué estás recibiendo este error

PHP se queja si uno de los archivos como mcrypt.so se incluye usando la sintaxis extension="mcrypt.so" pero el archivo no está en la ruta extension_dir (use <?php phpinfo(); ?> O php -i para verificar que )

También le indicará qué archivo de configuración de php.ini se está cargando para que sepa de dónde provienen las configuraciones. Lo más probable es que sea algo como /usr/local/etc/php/5.4/php.ini si está utilizando la versión homebrew.

Tome nota de la parte debajo que dice algo como "Escanee este directorio para archivos .ini adicionales" porque lo que significa es que le da un lugar para poner su propio archivo, como tweaks.ini que se carga después del archivo de configuración principal, por lo que puede hacer cambios y mantenerse al día con ellos fácilmente. También recuerde que todos los archivos en este directorio se cargan en orden alfabético, por lo que si tiene uno llamado mcrypt que contiene directivas mcrypt , y hay un mcrypt.ini , lo más probable es que su configuración se anule.

Una alternativa para especificar extension="mcrypt.so" es especificar la ruta completa al archivo mcrypt.so . La otra opción es editar la configuración extension_dir .

Lo que funcionó para mí

En Mavericks no tuve que hacer tampoco. Hice una nueva instalación de homebrew y luego agregué el toque de josegonzalez usando:

brew tap josegonzalez/homebrew-php

(Mi otra computadora portátil estaba ejecutando Mountain Lion y también estaba utilizando homebrew en esta configuración).

Después de que hayas tocado ese impresionante repositorio , puedes instalar php y mcrypt usando algo como:

brew install php54 php54-mcrypt

¿Qué pasa si esto no funciona (y por qué debería usar homebrew de todos modos?)

Recomiendo probar esta ruta antes de descargarla y compilarla desde la fuente. No es difícil construir desde la fuente, pero no quiero tener que mantener eso. En primer lugar, es una de las razones para usar homebrew : es un administrador de paquetes (con una comunidad ENORME).

Hay mucho desarrollo en el proyecto homebrew y, si tiene problemas, le sugiero que revise su página de problemas

Así que sí, puedes construirlo desde la fuente y eso podría parecer una buena opción en este momento si solo quieres que mcrypt funcione, pero es posible que te odies por hacer esto más tarde ...

Si no quieres usar php54 también está la rama php53 . Tienen algunas instrucciones en el repositorio sobre cómo usar ambas / cambiar entre ellas.

Si eres nuevo en homebrew, debes saber que verificas qué más está disponible usando brew search php54 , que da algo como:

php54 php54-lzf php54-snappy php54-amqp php54-mailparse php54-solr php54-apc php54-mcrypt php54-ssh2 php54-apcu php54-memcache php54-stats php54-boxwood php54-memcached php54-svm php54-chdb php54-midgard2 php54-tidy php54-couchbase php54-mongo php54-timezonedb php54-dbase php54-msgpack php54-tokyotyrant php54-ev php54-mysqlnd_ms php54-twig php54-gearman php54-oauth php54-uploadprogress php54-geoip php54-opcache php54-uuid php54-gmagick php54-parsekit php54-varnish php54-graphdat php54-pcntl php54-wbxml php54-http php54-pdflib php54-xcache php54-igbinary php54-phalcon php54-xdebug php54-imagick php54-proctitle php54-xhgui php54-inclued php54-pspell php54-xhp php54-intl php54-pthreads php54-xhprof php54-ioncubeloader php54-raphf php54-xmldiff php54-jsmin php54-redis php54-yac php54-judy php54-riak php54-yaf php54-leveldb php54-runkit php54-yaml php54-libevent php54-scrypt php54-yaz php54-libvirt

TLDR

  • Debes usar homebrew para instalar mcrypt si es posible
  • Si obtiene errores, probablemente se deba a que sus archivos de configuración están en mal estado. Compruebe la ruta del extension_dir y mcrypt.so dónde está el archivo mcrypt.so y vea si hay una discrepancia (o especifique la ruta completa)

Acabo de pasar por esto en Mountain Lion. Homebrew bloqueó en libiconv, que pensó que faltaba, pero que en realidad estaba actualizado. Después de una hora de tratar de que reconozca libiconv, me di por vencido y lo instalé a la vieja usanza, lo que me llevó los cinco minutos ...

(download your php version) $ wget http://www.php.net/get/php-5.3.21.tar.gz/from/a/mirror $ tar -xvzf php-5.3.21.tar.gz $ cd php-5.3.21/ext/mcrypt $ phpize $ ./configure $ make $ make test $ sudo make install

mcrypt.so ahora está en su directorio ext de PHP ( /usr/lib/php/extensions/no-debug-non-zts-20090626/ en mi caso), ahora necesita agregar a php.ini como un módulo

$ vi /etc/php.ini $ (insert) extension=mcrypt.so $ sudo apachectl restart

Hecho: no es necesario preparar cerveza. HTH alguien.


Así que después de ejecutar brew install mcrypt php , tuve que instalar php-mcrypt a través de pecl:

pecl install mcrypt-1.0.1

Al momento de escribir, mcrypt no tiene una versión pecl estable, 1.0.1 es la versión actual para php 7.2 y 7.3, y brew install php instalará php 7.2.


Con los cambios recientes en brew (deprecation of homebrew / php) ahora instala php con mcrypt con lo siguiente.

brew install [email protected] -with-mcrypt=mcrypt

Puede que tenga que desinstalar las instalaciones previas de php


Crearía un script de shell para instalar el módulo mcrypt para PHP 5.3 sin homebrew.

Los scripts instalan php autoconf si es necesario y compilan el módulo para su versión de php.

El enlace está aquí: https://gist.github.com/lucasgameiro/8730619

Gracias


Esto es lo que hice:

$ wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download $ tar xzvf libmcrypt-2.5.8.tar.gz $ ./configure $ make $ sudo make install $ brew install autoconf $ wget file:///Users/rmatikolai/Downloads/php-5.4.24.tar.bz2 $ tar xjvf php-5.4.24.tar.bz2 $ cd php-5.4.24/ext/mcrypt $ phpize $ ./configure # this is the step which fails without the above dependencies $ make $ make test $ sudo make install $ sudo cp /private/etc/php.ini.default /private/etc/php.ini $ sudo vi /private/etc/php.ini

Luego, debes agregar la línea:

extension=mcrypt.so $ sudo apachectl restart


La solución con cerveza solo funcionó después de lo siguiente: en su php.ini

nano /private/etc/php.ini

agregue esta línea:

extension="/usr/local/Cellar/php53-mcrypt/5.3.26/mcrypt.so"

¡Advertencia! Establezca la versión de PHP correcta.


Nada funcionó y finalmente lo hizo funcionar usando resource @ Here and Here ; Solo recuerde que para OSX Mavericks (10.9) debería usar PHP 5.4.17 o fuente estable de PHP 5.4.22 para compilar mcrypt. Php Source 5.4.22 aquí


Otra posibilidad para aquellos que desean mantener OS X lo más limpio posible, es usar vagrant [1] para definir un entorno de desarrollo php. Vagrant puede usar VirtualBox [2] en modo sin cabeza (~ 3% de CPU en mi 13-inch, Mid 2009 MacBook Pro) para ejecutar una máquina virtual con el servidor web y php y todo.

Para crear fácilmente el entorno vagabundo, puede utilizar esta gran herramienta https://puphpet.com/

  1. http://www.vagrantup.com/
  2. https://www.virtualbox.org/

Para mí, en Yosemite

$ brew install mcrypt php56-mcrypt

reiniciar la computadora

Hizo el truco.


Tiendo a usar Homebrew en Mac. Instalará y configurará todo para usted.
http://mxcl.github.com/homebrew/

Entonces deberías poder instalarlo con brew install mcrypt php53-mcrypt y solo funcionará (tm).

Puede reemplazar el 53 con la versión de PHP que esté utilizando, como php56-mcrypt o php70-mcrypt . Si no está seguro, use brew search php .

También recuerde que si está utilizando el PHP incorporado de Mac que está instalado en /usr/bin , puede ver qué php está usando con which php en el terminal y devolverá la ruta.


Yo recomendaría instalar todo a través de homebrew si tienes la opción. Fui en círculos por un tiempo, pero la instalación de php 5.x a través de brew y luego los módulos necesarios funcionó una delicia. Estaba trabajando con php 5.4 y lo usé para comenzar:

https://github.com/josegonzalez/homebrew-php

y luego instalé los módulos adicionales con:

brew install php54-redis brew install php54-xdebug brew install php54-mcrypt

...


mycrypt.o y mcrypt_filter.o están en ext / .libs de su directorio descargado de php. Simplemente copie los archivos a ext / mcrypt, luego ejecute make && make install nuevamente.


La solución de base de cerveza funcionó para mí

  1. Instala estos paquetes

    $ brew install brew install mcrypt php54-mcrypt

  2. Copie php.ini.default por defecto a php.ini

    $ sudo cp /private/etc/php.ini.default /private/etc/php.ini

  3. Agregue esta línea a la sección de extensión de archivo php.ini - verifique la ruta de extensión con la ubicación de instalación en su máquina

    extension = "/ usr / local / Cellar / php54-mcrypt / 5.3.26 / mcrypt.so"

  4. Reinicie su servidor Apache

    $ apache restart