找不到mcrypt =>调用未定义的函数Laravel \ mcrypt_create_iv()

试图build立Laravel并不断受到这个错误的打击。 我通过brew安装了mcrypt,位于/ usr / local / Cellar。 有什么想法吗? ..它不显示在terminal命令php -m,如果这很重要。 我正在使用mac本地web服务器运行Mountaion Lion。

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

php.ini你会发现;mcrypt.so并删除; 从中。

或者,如果不在那里,只需在某处添加mcrypt.so

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

 sudo apt-get install php5-mcrypt 

请记住在之后重新启动Web服务器:

 sudo service apache2 restart 

如果仍然无效,请尝试将configuration文件链接到Web服务器的相应configuration文件夹。 感谢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 

也许,如果还没有工作,你还需要使用php5enmod mcrypt @RahulPrasad显示的行。

试试sudo php5enmod mcrypt && sudo service apache2 restart

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

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

 // assuming you have php56 brew install php56-mcrypt 

如果自制程序无法find正确的软件包,则可能需要点击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文件。 这将是不必要的,因为自制软件会为您启动模块。 它将configuration文件放在/usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini

您没有安装mcrypt PHP扩展。

对于Mac,我遵循这些指示: mcrypt在Mac 10.7或10.8 。

他们看起来很多,但不是,它很容易遵循它的作品!

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

转到你的php instalation中的CLI文件夹,findphp.ini,并启用mcrypt。 terminal有时使用另一个php.ini,通常在CLI文件夹中。

我安装了PHP和mcrypt与自制软件,但我仍然经历了几次brew update后,经历了这个错误。 我觉得我的设置随着时间的推移已经变得有点麻烦了。

事实certificate,我的PHP是从/private/etc/php.iniconfiguration的, 而不是 /usr/local/etc/php/5.4/php.ini作为Homebrew的build议。 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 

我的解决scheme

  1. 以超级用户身份编辑/private/etc/php.ini
  2. 添加extension="/usr/local/Cellar/php54-mcrypt/5.4.28/mcrypt.so"并保存
  3. sudo apachectl restart启动Apache

只是最近升级到PHP 7的人的一个说明 – MCRYPT库已被弃用 。 如果你升级到PHP 7,现在看到这个错误,那就是为什么。 你应该切换到另一个库,在这个线程中提到了一些替代scheme。