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

Posted

技术标签:

【中文标题】将 OSX 更新为“El Capitan”后未定义的函数 mcrypt【英文标题】:Undefined function mcrypt after update OSX to "El Capitan" 【发布时间】:2015-12-31 05:03:51 【问题描述】:

在将“Yosemite”更新为“El Capitan”后,我遇到了 mcrypt 扩展问题。

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

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

extension="/usr/local/Cellar/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., 消费, dechunk, mcrypt., mdecrypt. PHP 警告:未知:依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们现在选择时区“UTC”,但请设置 date.timezone 以选择您的时区。在第 0 行的未知中 mcrypt mcrypt 支持 => 已启用 mcrypt_filter 支持 => 启用 mcrypt.algorithms_dir => 没有价值 => 没有价值 mcrypt.modes_dir => 没有价值 => 没有价值 密码 => /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

我做到了:

酿造链接 php56-mcrypt

为什么 mcrypt 不起作用?

提前谢谢你。 真诚的菲利普。

【问题讨论】:

您的问题解决了吗?因为我有同样的问题。 不抱歉,我禁用了“SIP”,但我仍然遇到同样的问题。 我在这里找到了解决方案:plugging-mcrypt-into-php-on-mac-os-x-el-capitan-10-11 现在一切正常。 看看我的回答***.com/questions/32908829/… 【参考方案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)

【讨论】:

以上是关于将 OSX 更新为“El Capitan”后未定义的函数 mcrypt的主要内容,如果未能解决你的问题,请参考以下文章

架构 x86_64 的未定义符号:El Capitan [重复]

graphviz 错误:点:无法打开 hello.dot(OSX El Capitan)

如何在 mac osx 10.11 El Capitan 上安装 php 7.4 版? [复制]

在 OSX 10.11 El Capitan 上安装 therubyracer gem

python 在python中使用来自OSX 10.11 El Capitan的SharedFileList(.sfl)文件

在 OSX El Capitan 中使用 Homebrew 的 Boost::Log 链接错误