将“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。,consume,dechunk,mcrypt。 ,mdecrypt。
PHP警告:未知:依赖系统的时区设置是不安全的。您必需使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们现在选择了时区'UTC',但请设置date.timezone以选择您的时区。在第0行的未知中
的mcrypt
mcrypt support =>启用
mcrypt_filter support =>启用
mcrypt.algorithms_dir =>没有价值=>没有价值
mcrypt.modes_dir =>没有价值=>没有价值
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小组
Zend Engine v2.6.0,版权所有(c)1998-2015 Zend Technologies
我安装了mcrypt:
brew install php56-mcrypt
我做到了:
brew链接php56-mcrypt
为什么mcrypt不能正常工作?
提前谢谢你。
真诚的菲利普。
答案 0 :(得分: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)