找不到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
- 以超级用户身份编辑
/private/etc/php.ini
- 添加
extension="/usr/local/Cellar/php54-mcrypt/5.4.28/mcrypt.so"
并保存 - 用
sudo apachectl restart
启动Apache
只是最近升级到PHP 7的人的一个说明 – MCRYPT库已被弃用 。 如果你升级到PHP 7,现在看到这个错误,那就是为什么。 你应该切换到另一个库,在这个线程中提到了一些替代scheme。