【问题标题】:Mcrypt with Mamp Pro on Mac OS X Yosemite 10.10在 Mac OS X Yosemite 10.10 上使用 Mamp Pro 进行 Mcrypt
【发布时间】: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 日志中也出现错误。查看更新后的帖子。

标签: php macos laravel mamp osx-yosemite


【解决方案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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-16
        • 1970-01-01
        • 2017-03-13
        • 2015-09-04
        • 2015-03-22
        • 2014-11-10
        • 2014-12-24
        相关资源
        最近更新 更多