Error al configurar mcrypt después de actualizar a El Capitan

Estoy enfrentando el siguiente problema después de actualizar a El Capitán. Dice:

Installing shanetworking extensions: /usr/lib/php/extensions/no-debug-non-zts-20121212/ cp: /usr/lib/php/extensions/no-debug-non-zts-20121212/#INST@826#: Operation not permitted 

mientras ejecuta sudo make install en la carpeta mcrypt / php-5.6.13 / ext / mcrypt. Creo que esto se debe a SIP, pero ¿qué es al revés?

¿Qué es SIP y cómo sé si está causando este error?

  • ¿No hay "csrutil" disponible en Recovery HD?
  • ¿Cómo puedo eliminar una aplicación preinstalada en macOS Sierra?
  • El Capitan - Problemas de inicio de session con SIP habilitado
  • ¿Cuándo SIP apagará la computadora para evitar el sobrecalentamiento?
  • Monitorear el número acumulado de bytes escritos por un process en la Terminal?
  • ¿Cómo eliminar la partición de Ubuntu inutilizable después de actualizar a OS X 10.11?
  • Extensión Kernel no cargada
  • Una forma de probar el SIP de Protección Integrity del Sistema (NO sobre cómo activar / desactivar)?
  • 4 Solutions collect form web for “Error al configurar mcrypt después de actualizar a El Capitan”

    Sí, esto se debe a SIP. Entonces las dos opciones que tienes son

    • deshabilitar SIP por completo
    • plantear una request de defecto / soporte contra mcrypt para usar /usr/local lugar de /usr para la installation

    Después de leer la respuesta de @ user980575 (que es un poco networkingundante con los directorys) y un comentario en la publicación de Coolest Guide en The Planet sobre este tema (que requiere editar manualmente su script ./configure ), se me ocurrió una solución alternativa. Anulando el EXTENSION_DIR sobre la marcha.

    Tomó un poco de testing y error, pero cuando estás listo para realizar la installation después de phpizar (¿es una palabra?) Simplemente crea el directory:

     mkdir -p /usr/local/lib/php/extensions 

    Y luego ejecuta:

     ./configure make sudo make EXTENSION_DIR='/usr/local/lib/php/extensions' install 

    Ahora que la extensión se coloca en un directory no protegido, solo tiene que actualizar su php.ini para que apunte a la extensión con la ruta completa.

     extension=/usr/local/lib/php/extensions/mcrypt.so 

    El Capitan agrega una nueva característica de security llamada System Integrity Protection (SIP). Entre otras cosas, SIP evita que otras partes que no sean Apple añadan, eliminen o modifiquen directorys y files almacenados en ciertos directorys:

     /bin /sbin /usr /System 

    Apple ha indicado que los siguientes directorys están disponibles para que los desarrolladores accedan:

     /usr/local /Applications /Library ~/Library 

    Todos los directorys en /usr exception de /usr/local están protegidos por SIP.

    Para get más información sobre SIP, consulte esta publicación:

    https://derflounder.wordpress.com/2015/10/01/system-integrity-protection-adding-another-layer-to-apples-security-model/

    No es necesario deshabilitar la Protección de Integridad del Sistema para instalar extensiones de PHP. Simplemente cree un directory adecuado en / usr / local, y use la variable INSTALL_ROOT. p.ej

     % mkdir -p /usr/local/php56_ext 

    y en su directory de extensión:

     % INSTALL_ROOT=/usr/local/php56_ext make install 

    Tendrá que activar la extensión usando la ruta completa, por lo que en su php.ini, necesitará la línea:

     extension=/usr/local/php56_ext/usr/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).