在 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正式版怎么升级 升级教程