繁体   English   中英

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

[英]Undefined function mcrypt after update OSX to “El Capitan”

将“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 =>启用
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安装php56-mcrypt

我这样做了:

brew链接php56-mcrypt

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

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

我能够通过卸载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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM