您的系统缺少所请求的 PHP 扩展 ext-mcrypt *

您的系统缺少所请求的 PHP 扩展 ext-mcrypt *

我已经将我的 php 更新到版本 5.4.13 等,并且在终端中我的 php 版本显示此信息

   PHP 5.4.12 (cli) (built: Mar 16 2013 21:46:23)

但是运行 composer install io 会出现以下错误。

  The requested PHP extension ext-mcrypt * is missing from your system

无论如何,我尝试了几种方法来让它工作,但没有任何效果:

我使用了以下方法:解决方案一解决方案二,它们都使用了类似的方法,但我仍然遇到错误。

然后我做了一个 php 信息测试,结果显示版本是5.3.15然后mycrypt 表示已启用 mcrypt 支持

所以我的服务器使用这个 php 而我的终端使用另一个 php 就像这样

任何想法如何解决这一问题?

我正在使用带有 Mountain Lion Sever(最新)的 MAC Mountain Lion、xcode 和所有操作都是最新的,并且我已经重新启动了服务器。

答案1

在 Linux(Ubuntu 14.04) 中遇到了同样的错误

检查 ini 是否存在

/etc/php5/mods-available/mcrypt.ini

如果是,请检查您是否有指向 ini 的符号链接。例如在目录中/etc/php5/cli/conf.d

05-mcrypt.ini -> ../../mods-available/mcrypt.ini

如果没有符号链接,请创建它。安装php5-mcrypt扩展后,我没有符号链接,只有 ini 文件。这就是为什么要手动创建符号链接。

您可以使用sudo php5enmod mcrypt启用该模块。它将为您创建符号链接。

答案2

请尝试以下解决方案:

sudo apt-get install php5-mcrypt
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt
sudo service apache2 restart

祝你好运,

—尤利安

答案3

我遇到了同样的问题 - mcrypt 显示已安装 CLI,但未通过命令行安装。为了修复,我运行了

#php -i

找到命令行版本的 php.ini 文件的位置,然后添加

extension=mcrypt.so

之后,运行#php -m将显示为命令行版本安装了哪些模块,并且 mcrypt 应该在那里。如果没有,您的“解决方案 1”和“解决方案 2”选项应该可以帮助您构建模块 - 然后只需确保模块已安装(或已复制)到您的 php 安装的模块(扩展)目录(类似于/usr/lib/php/extensions/no-debug-non-zts-20100525/或检查extensions_dirphp.ini 中的值指向的位置)。

答案4

好吧,我只是回到基础部分,卸载了 Mac Server,然后返回到 MAMP,这执行了所有最新的更新和安装,因为我的系统与两个单独的安装相冲突等

相关内容