在 Mac OS X Yosemite 10.10 上使用 Mamp Pro 进行 Mcrypt

Posted

技术标签:

【中文标题】在 Mac OS X Yosemite 10.10 上使用 Mamp Pro 进行 Mcrypt【英文标题】:Mcrypt with Mamp Pro on Mac OS X Yosemite 10.10 【发布时间】:2014-12-14 11:15:10 【问题描述】:

在昨天 Yosemite 更新后,Mcrypt 扩展出现了问题。 基于 php 的 artistan CLI of the Laravel framework 返回:

需要 Mcrypt PHP 扩展。

PATH 变量似乎是正确的。错误配置在哪里?更新前一切正常。

++++ 配置++++

'which php'的输出:

/Applications/MAMP/bin/php/php5.6.1/bin/php

'php -v':

PHP 5.6.1 (cli)(构建时间:2014 年 10 月 13 日 18:41:35)版权所有 (c) 1997-2014 PHP Group Zend Engine v2.6.0,版权所有 (c) 1998-2014 Zend 技术

.bash_profile 的内容:

export EDITOR=纳米导出 PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/texbin:/usr/local/mysql/bin 导出 PATH=/Applications/MAMP/bin/php/php5.6.1/bin:$PATH

phpinfo():

MAMP 专业版:

3.0.7.1

更新:

Mamp-log 说明 php.ini 中启用的每个扩展:

PHP 警告:PHP 启动:无法加载动态库 '/Applications/MAMP/bin/php/php5.6.1/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so' -dlopen(/Applications/MAMP/bin/php/php5.6.1/lib/php/extensions/no-debug-non-zts-20121212/mcrypt.so, 9): 在第 0 行的 Unknown 中找不到图像

【问题讨论】:

php -m | grep mcrypt 的输出是什么? 这意味着扩展未启用或可能未安装。签入您的php.ini 以获取extension=mcrypt.so;如果它不在那里,请在动态编译的扩展部分下添加。 在 /Applications/MAMP/bin/php/php5.6.1/conf/php.ini 中启用 如果 extension=mcrypt.so 在 php.ini 中并且它仍然无法工作,那么您应该检查扩展是否实际安装,这意味着 mcrypt.so 文件。我的位于/lib/php/extensions/no-debug-non-zts-20141012/mcrypt.so 我的也在那里。其他扩展的 MAMP 日志中也出现错误。查看更新后的帖子。 【参考方案1】:

我已经联系了 MAMP 支持,这就是他们的回复。

嗨,

我们的 php.ini 文件在 5.6.1 中被搞砸了。转到您的模板文件并更改此行

/Applications/MAMP/bin/php/php5.6.1 ....

/Applications/MAMP/bin/php/php5.6.1/lib/php/extensions/no-debug-non-zts-20131226

我们将在几天后进行全面修复。您也可以只降级到 php 5.5。同时。

【讨论】:

像魅力一样工作。非常感谢! (Y) MAMP 发布了一个新的更新,3.0.7.2 修复了这些问题。 mamp.info/en/downloads【参考方案2】:

我也遇到了同样的问题。

只需在 MAMP 中使用 PHP 版本 5.5.17,一切都会再次正常运行。

记得在你的 .bash_profile 中切换版本:

export PATH=/Applications/MAMP/bin/php/php5.5.17/bin:$PATH

【讨论】:

这是在优胜美地对我有用的唯一解决方案! +1【参考方案3】:

今天早上应用了修补程序 MAMP & MAMP PRO 3.0.7.2 发布时间:2014-10-21。 默认php 5.6.2

别忘了更新 .bash_profile

导出 PATH=/Applications/MAMP/bin/php/php5.6.2/bin:$PATH

在我的本地上一切正常,在 drush 上也可以正常工作(对于那些使用它的人)

【讨论】:

【参考方案4】:

你也犯了同样的错误,但我现在完美解决了:

停止你的 MAMP 打开/Applications/MAMP/bin/php/php5.6.1/conf/php.ini 查找所有“no-debug-non-zts-20121212”替换为“no-debug-non-zts-20131226” 打开/Applications/MAMP/bin/php/php5.6.1/conf/pear.conf 找到“no-debug-non-zts-20100525”替换为“no-debug-non-zts-20131226” 启动您的服务器

我建议你卸载 OS X 的默认 php 和 apache 路径:

/etc/apache2
/usr/include/apahce2
/usr/libexec/apache2
/usr/php
/usr/bin/php
/usr/bin/php-config
/usr/bin/phpize
/usr/include/php
/usr/lib/php
/usr/share/man/man*/php*
/usr/bin/phar.phar

然后

sudo ln -s /Applications/MAMP/bin/php/php5.6.1/bin/pear /usr/bin/pear
sudo ln -s /Applications/MAMP/bin/php/php5.6.1/bin/peardev /usr/bin/peardev
sudo ln -s /Applications/MAMP/bin/php/php5.6.1/bin/pecl /usr/bin/pecl
sudo ln -s /Applications/MAMP/bin/php/php5.6.1/bin/phar.phar /usr/bin/phar.phar
sudo ln -s /Applications/MAMP/bin/php/php5.6.1/bin/php /usr/bin/php
sudo ln -s /Applications/MAMP/bin/php/php5.6.1/bin/php-cgi /usr/bin/php-cgi
sudo ln -s /Applications/MAMP/bin/php/php5.6.1/bin/php-config /usr/bin/php-config
sudo ln -s /Applications/MAMP/bin/php/php5.6.1/bin/phpize /usr/bin/phpize

【讨论】:

【参考方案5】:

1) 首先查看加载的是什么php.ini文件:

php --ini

您可能会看到没有加载任何文件。

2) 如果您不介意重新安装 php,您可以这样做:

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6

3) 然后设置新 php 安装的路径,以避免使用 OSX 自带的原生 php。

要设置路径,请使用此命令 - 类似这样,请记住您的路径可能不同:

导出 PATH=/usr/local/php5/bin:$PATH

【讨论】:

以上是关于在 Mac OS X Yosemite 10.10 上使用 Mamp Pro 进行 Mcrypt的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac OS X Yosemite 10.10 上使用 Mamp Pro 进行 Mcrypt

VMware Workstation 11 安装MAC OS X 10.10 Yosemite(14B25)图解 2015-01-13 12:26:01|

Mac OS 10.10 Yosemite正式版怎么升级 升级教程

sh OS X 10.10 Yosemite升级检查

mac os x10.10批量重命名教程:os x 10.10批量修改文件名步骤

Axure7.0在OS X Yosemite(10.10)中不能用的问题