48

尝试设置 Laravel 并不断遇到此错误。我通过 brew 安装了 mcrypt,它位于 /usr/local/Cellar。有什么想法吗?.. 它也没有出现在终端命令 php -m 中,如果这很重要的话。我正在使用 macs 本机 Web 服务器运行 Mountaion Lion。

4

10 回答 10

66

Ubuntu 或任何基于 Debian 的 Linux 用户可以使用以下命令安装所需的软件包apt-get

sudo apt-get install php5-mcrypt

记得之后重启网络服务器:

sudo service apache2 restart

如果仍然不起作用,请尝试将配置文件链接到 Web 服务器的相应配置文件夹。感谢dave1010在评论中的提示。

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/   # for Apache
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/cli/conf.d/       # for CLI

再次,重新启动 Web 服务器:

sudo service apache2 restart

也许,如果还没有工作,您还需要@RahulPrasad 显示的行,带有php5enmod mcrypt.

于 2013-01-08T23:14:59.390 回答
39

您还需要在php.ini文件中启用它,并可能重新启动 Apache。

php.ini您将找到并从中;mcrypt.so删除。;

或者,如果它不在那里,只需添加mcrypt.so某个地方。

自 PHP 7.0.0 起,盐选项已被弃用。现在首选简单地使用默认生成的盐。

于 2012-09-18T15:22:11.143 回答
28

尝试sudo php5enmod mcrypt && sudo service apache2 restart

于 2014-07-13T17:54:21.080 回答
20

mcrypt当您真正需要php56-mcryptphp 模块时,您已经安装了。

你在你的问题中说你可以看到mcrypt安装在/usr/local/Cellar并且你正在使用OSX. 因此,使用Homebrew在 OSX 上安装 mcrypt PHP 模块的最简单方法是:

// assuming you have php56
brew install php56-mcrypt

如果 homebrew 找不到正确的包,您可能需要点击 GitHub 上的 PHP 存储库

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php

现在,当您发出命令时brew search mcrypt,您应该会看到如下内容:

libtomcrypt   mcrypt   php53-mcrypt   php54-mcrypt   php55-mcrypt   php56-mcrypt

其他几位海报提到需要编辑您的php.ini文件。这将是不必要的,因为自制软件会为您激活模块。它将配置文件放在/usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini

于 2013-05-22T08:29:38.900 回答
2

您没有安装 mcrypt PHP 扩展。

对于 Mac,我按照以下说明操作: mcrypt on Mac 10.7 or 10.8

它们看起来很多,但事实并非如此,它很容易遵循它的工作原理!

于 2012-11-29T21:53:36.037 回答
1

您可能已经安装了 mycrypt 但没有安装/启用 php_mcrypt 模块。

于 2012-09-18T15:55:18.147 回答
1

只是给最近升级到 PHP 7 的人的注意事项 - MCRYPT 库已被弃用。如果您升级到 PHP 7 并且现在看到此错误,这就是原因。您应该切换到替代库,此线程中提到了一些替代方案。

于 2017-09-28T18:18:28.463 回答
0

转到 php 安装中的 CLI 文件夹,并在其中找到 php.ini 并启用 mcrypt。终端有时会使用另一个 php.ini,它通常位于 CLI 文件夹中。

于 2014-02-22T11:20:48.990 回答
0

brew update我用 Homebrew 安装了 php 和 mcrypt,但做了几次后我仍然遇到这个错误。我认为我的设置随着时间的推移变得有点无聊。

事实证明,我的 php 是从/private/etc/php.ini配置的,而不是 Homebrew 推荐的/usr/local/etc/php/5.4/php.ini 。Mcrypt 甚至没有包含在/usr/local/etc/php/5.4/ext-mcrypt.ini中,考虑到这对我来说没有多大意义php -i

Configuration File (php.ini) Path => /usr/local/etc/php/5.4
Loaded Configuration File => /usr/local/etc/php/5.4/php.ini
Scan this dir for additional .ini files => /usr/local/etc/php/5.4/conf.d
Additional .ini files parsed => /usr/local/etc/php/5.4/conf.d/ext-mcrypt.ini

我的解决方案:

  1. /private/etc/php.ini以超级用户身份编辑
  2. 添加extension="/usr/local/Cellar/php54-mcrypt/5.4.28/mcrypt.so"并保存
  3. 重启Apachesudo apachectl restart
于 2014-05-20T20:19:34.327 回答
0

这最终对我有用:

brew reinstall --with-homebrew-curl --with-httpd php56
brew reinstall --build-from-source php56-mcrypt

我也必须这样做,sudo chmod 777 /usr/local/etc/php/5.6/conf.d因为当第二个brew reinstall尝试将其添加ext-mcrypt.ini到该目录时出现错误。

于 2018-02-05T06:38:03.973 回答