升级到 Mac OSX Sierra 时面临 mcrypt 错误问题

Posted

技术标签:

【中文标题】升级到 Mac OSX Sierra 时面临 mcrypt 错误问题【英文标题】:Facing mcrypt error issue on upgrading to Mac OSX Sierra 【发布时间】:2017-02-03 08:26:42 【问题描述】:

从 El Capitan 升级到 Mac OSX Sierra 后,我一运行 php,它就拒绝运行以前安装在我系统上的任何 php 项目。 在互联网上探索了这个问题之后,我想到了这些选项...... 运行以下命令后:

cd /etc/apache2/
sudo mv httpd.conf httpd.conf.sierra
sudo mv httpd.conf~previous httpd.conf

cd ..
sudo cp php.ini-previous php.ini

sudo apachectl restart

我让我的 php 项目像魅力一样工作。 但现在我遇到了另一个问题。那是 php mcrypt 扩展错误。 当我运行 php 项目(laravel 4.2 项目)时,该项目不起作用并显示错误 - “需要 PHP mcrypt 扩展!” 这个你能帮我吗.. 我的 php.ini 文件的 mcrypt 行是这样的

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20121212/"
; extension_dl = On
extension=mcrypt.so
; On windows:
; extension_dir = "ext"

你能告诉我我的系统出了什么问题吗?

【问题讨论】:

我建议不要使用系统自带的 apache 或 PHP,而是通过 Homebrew 将它们安装干净和分开。然后你就避免了整个过时和升级问题时的变化。 最好不要使用mcrypt,它是废弃软件,多年未更新,不支持标准PKCS#7(née PKCS#5)填充,只有非标准空填充可以'甚至不能与二进制数据一起使用。 mcrypt 有许多出色的 bugs 可以追溯到 2003 年。请考虑使用 defuse 或 RNCryptor,它们提供了完整的解决方案并且正在维护并且是正确的。 经历了每一步 - 我在 php 5.6.25 上,所有编译和文件都放在正确的位置,但是 php api 版本号突然不同了!不知道该去哪里,但它没有用。 【参考方案1】:

您需要设置动态扩展。

这一行是你的问题:

; extension_dl = On

你必须删除“;”

【讨论】:

【参考方案2】:

我解决了我的问题... 使 mcrypt 扩展工作(如果升级后出现错误) 然后从零开始关注this guide...

请使用上述指南中的更新版本的 libmcrypt 和 php(php 5.6 - OSX Sierra 随附)。

如果您的 mysql 在执行上述过程后停止工作(就像我发生的那样 :( ),那么只需从目录 /usr/local/mysql/data 中删除所有 .err 文件并再次重启你的mysql 欲了解更多信息 - see this

要重新启动 MySQL,请使用此命令

sudo /usr/local/mysql/support-files/mysql.server restart

希望它能帮助您毫无问题地升级您的 Mac OSX 并节省您宝贵的时间..!! :D

【讨论】:

我按照指南进行操作,但对于 Laravel 4.2 项目,我仍然遇到同样的错误。 Laravel 5.2 工作正常。 phpinfo() 不显示 mcrypt。也尝试了 Homebrew 安装,但还没有成功!有什么想法吗? @Jose,让我明确一下,请使用 Mac OSX Sierra 使用的最新 php 和 libmcrypt 版本。我提到的指南适用于 Mac OSX El Capitan,这就是为什么你应该遵循该指南,记住使用最新的东西来升级......!!我希望,否则一切都会像魅力一样发挥作用。【参考方案3】:
brew install homebrew/php/php70-mcrypt

【讨论】:

【参考方案4】:

就我而言,我通过以下步骤使其工作:

使用 PHP 7.0 安装 XAMPP

在 bash 配置文件中添加以下内容

 export PATH=/Applications/XAMPP/xamppfiles/bin/:$PATH

顺序非常重要,因为它会在系统一(5.6)之前找到 php 7.0。

【讨论】:

以上是关于升级到 Mac OSX Sierra 时面临 mcrypt 错误问题的主要内容,如果未能解决你的问题,请参考以下文章

MacOS Sierra很慢?为什么?以及如何解决?

PDFThumbnailView:无法在 Sierra 中为 MAC OSx 应用程序选择缩略图

ruby nokogiri gem install mac osx high sierra

本地主机配置 mac sierra

Mac High Sierra 上的 vim ruby​​ 不匹配

为啥mac升级之后,升级成mac OS Sierra 10.12.1,我的parallels Desktop就启动不了,需要重新安装吗?