升级到“El Capitan”后,出现未定义函数mcrypt。

5
我在将"Yosemite"升级为"El Capitan"后遇到了mcrypt扩展的问题。
在我的php.ini中,我添加了以下行:
extension="/usr/local/Cellar/php56-mcrypt/5.6.13/mcrypt.so"
当我运行以下命令时: php -i | grep 'mcrypt'
我得到:
Additional .ini files parsed => /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini Registered Stream Filters => zlib., bzip2., convert.iconv., string.rot13, string.toupper, string.tolower, string.strip_tags, convert., consumed, dechunk, mcrypt., mdecrypt. PHP Warning: Unknown: It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in Unknown on line 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) (built: Oct 2 2015 23:07:16) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
我使用以下命令安装了mcrypt:
brew install php56-mcrypt
我使用以下命令进行了链接:
brew link php56-mcrypt
为什么mcrypt无法工作?
谢谢。 Philippe.

你解决了你的问题吗?因为我也遇到了同样的问题。 - Aviv Paz
2
不好意思,我已经禁用了"SIP",但是问题仍然存在。 - Pilipe
2
我在这里找到了解决方案:plugging-mcrypt-into-php-on-mac-os-x-el-capitan-10-11 现在一切都运行完美。 - Pilipe
请看我在这里的回答:http://stackoverflow.com/questions/32908829/error-in-mcrypt-after-upgrading-into-el-capitan-os - Zakaria
1个回答

1
我通过卸载Homebrew、重新安装Homebrew,然后安装php 5.6 mcrypt包来解决了这个问题。这种方法的优点是不需要禁用新的系统完整性保护(SIP),与Pilipe的解决方案相比。
// 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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接