3 votes

Erreur de configuration de mcrypt après la mise à niveau vers El Capitan

Je fais face au problème suivant après avoir mis à jour vers El Capitan. Il dit :

Installation des extensions partagées : /usr/lib/php/extensions/no-debug-non-zts-20121212/
cp: /usr/lib/php/extensions/no-debug-non-zts-20121212/#INST@826#: Opération non permise

lors de l'exécution de sudo make install dans le dossier mcrypt/php-5.6.13/ext/mcrypt. Je pense que cela est dû à SIP mais quelle est l'autre solution.

Qu'est-ce que SIP et comment savoir s'il cause cette erreur ?

6voto

Ullallulloo Points 333

Après avoir lu la réponse de @user980575 (qui est un peu redondante avec les répertoires) et un commentaire sur le billet de Coolest Guide's On The Planet concernant ce sujet (qui nécessite d'éditer manuellement votre script ./configure), j'ai trouvé une solution alternative. Remplacer le EXTENSION_DIR sur le moment.

Cela a demandé un peu d'essais et d'erreurs, mais lorsque vous êtes prêt à effectuer réellement l'installation après avoir passé phpize (est-ce un mot?), créez simplement le répertoire :

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

Ensuite exécutez :

./configure

make

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

Maintenant que l'extension est placée dans un répertoire non protégé, vous devez simplement mettre à jour votre php.ini pour pointer vers l'extension avec le chemin complet.

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

3voto

Rich Trouton Points 4092

El Capitan ajoute une nouvelle fonctionnalité de sécurité nommée System Integrity Protection (SIP). Entre autres choses, SIP empêche des parties autres qu'Apple d'ajouter, supprimer ou modifier des répertoires et fichiers stockés dans certains répertoires :

/bin
/sbin
/usr
/System

Apple a indiqué que les répertoires suivants sont accessibles aux développeurs :

/usr/local
/Applications
/Library
~/Library

Tous les répertoires dans /usr sauf /usr/local sont protégés par SIP.

Pour plus d'informations sur SIP, veuillez consulter cet article :

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

2voto

nohillside Points 82672

Oui, cela est dû à SIP. Donc, les deux options que vous avez sont

  • désactiver entièrement SIP
  • élever un défaut/demande de support contre mcrypt pour utiliser /usr/local au lieu de /usr pour l'installation

0 votes

Je fais face au même problème, qu'est-ce que SIP et comment puis-je le désactiver?

0 votes

Veuillez utiliser le champ de recherche en haut à droite

0voto

Jim Points 101

Il n'est pas nécessaire de désactiver la Protection de l'Intégrité du Système pour installer des extensions php. Créez simplement un répertoire approprié dans /usr/local, et utilisez la variable INSTALL_ROOT. Par exemple

% mkdir -p /usr/local/php56_ext

et dans votre répertoire d'extension :

% INSTALL_ROOT=/usr/local/php56_ext make install

Vous devrez activer l'extension en utilisant le chemin complet, donc dans votre php.ini, vous aurez besoin de la ligne :

extension=/usr/local/php56_ext/usr/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X