将OSX更新为"El Capitan"后未定义的函数mcrypt

Pil*_*ipe 5 php mcrypt osx-elcapitan

将"Yosemite"更新为"El Capitan"后,我遇到了mcrypt扩展问题.

致命错误:在第68行的/Users/Pilipe/Sites/prestashop-test/classes/Rijndael.php中调用未定义的函数mcrypt_decrypt()

在我的php.ini中,我添加了这一行:

扩展= "/ USR /本地/地窖/ php56-mcrypt的/ 5.6.13/mcrypt.so"

当我启动此命令行时:

php -i | grep'mcrypt'

我有 :

已解析的其他.ini文件=> /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini已
注册的流过滤器=> zlib.,bzip2.,convert.iconv.,string.rot13,string.toupper,string.tolower,string.strip_tags,convert.消费,消遣,mcrypt.,mdecrypt.
PHP警告:未知:依赖系统的时区设置是不安全的.您需要使用date.timezone设置或date_default_timezone_set()函数.如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符.我们现在选择了时区'UTC',但请设置date.timezone以选择您的时区.在第0行的未知中
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value
PWD => /usr/local/Cellar/php56-mcrypt/5.6.13
_SERVER ["PWD"] => /usr/local/Cellar/php56-mcrypt/5.6.13

命令php -v:

PHP 5.6.13(cli)(建于2015年10月2日23:07:16)
版权所有(c)1997-2015 PHP Group
Zend Engine v2.6.0,版权所有(c)1998-2015 Zend Technologies

我安装了mcrypt:

brew安装php56-mcrypt

我这样做了:

brew链接php56-mcrypt

为什么mcrypt它无法正常工作?

先感谢您.
真诚的菲利普.

Bre*_*ody 1

我可以通过卸载 Homebrew、重新安装 Homebrew,然后安装 php 5.6 mcrypt 包来解决此问题。与 Pilipe 的解决方案相比,此方法的优点是它不需要禁用新的系统完整性保护 (SIP)。

// Uninstall Homebrew
[sudo] rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup

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

// Install mcrypt
brew install php53-mcrypt

// Test mcrypt
mcrypt -v
// should result in 
// Mcrypt v.0.9.9 (i386-apple-darwin15.0.0)
// Linked against libmcrypt v.2.5.8
// Copyright (C) 1998-2002 Nikos Mavroyanopoulos (nmav@gnutls.org)
Run Code Online (Sandbox Code Playgroud)