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

3

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

Installing shared 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 a la inversa.

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

    
pregunta shivamkss 03.10.2015 - 08:00

4 respuestas

2

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

respondido por el nohillside 03.10.2015 - 08:22
6

Después de leer la respuesta de @ user980575 (que es un poco redundante con los directorios) y un comentario en La guía más increíble de On The Planet con respecto a esto Asunto (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 prueba y error, pero cuando esté listo para realizar la instalación después de phpizing (¿es una palabra?) simplemente haga el directorio:

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 encuentra en un directorio 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
    
respondido por el Vagari 02.05.2016 - 22:20
3

El Capitan agrega una nueva función de seguridad llamada Protección de integridad del sistema (SIP). Entre otras cosas, SIP evita que otras partes además de Apple agreguen, eliminen o modifiquen directorios y archivos almacenados en ciertos directorios:

/bin
/sbin
/usr
/System

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

/usr/local
/Applications
/Library
~/Library

Todos los directorios en /usr a excepción de /usr/local están protegidos por SIP.

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

enlace

    
respondido por el Rich Trouton 06.10.2015 - 20:06
0

No es necesario deshabilitar la protección de integridad del sistema para instalar extensiones php. Simplemente cree un directorio adecuado en / usr / local, y use la variable INSTALL_ROOT. p.ej.

% mkdir -p /usr/local/php56_ext

y en su directorio de extensión:

% INSTALL_ROOT=/usr/local/php56_ext make install

Necesitará activar la extensión utilizando 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
    
respondido por el Jim 10.11.2015 - 02:16

Lea otras preguntas en las etiquetas