我试图在OSX上使用Laravel 4中的migrate
函数.然而,我得到了以下错误:
Laravel requires the Mcrypt PHP extension.
据我所知,它已经启用(见下图).
出了什么问题,我该如何解决?
我试图在OSX上使用Laravel 4中的migrate
函数.然而,我得到了以下错误:
Laravel requires the Mcrypt PHP extension.
据我所知,它已经启用(见下图).
出了什么问题,我该如何解决?
启用Web的扩展和启用命令行的扩展可以不同.在您的终端中运行php -m
,并判断是否列出了mcrypt
.如果不是,那么通过从您的终端运行php --ini
来判断命令行从哪里加载php.ini
文件.
在这个php.ini
文件中,您可以启用扩展名.
我听说有人在OSX上遇到问题,因为终端指向OSX附带的本机PHP.相反,您应该更新bash配置文件,以包含PHP的实际路径.类似这样的东西(我实际上没有使用OSX,所以这可能不是100%):
export PATH=/usr/local/php5/bin:$PATH
在Ubuntu的早期版本(14.04之前)上,当你运行sudo apt-get install php5-mcrypt
时,它实际上并没有将扩展安装到mods-available
中.你需要把它符号化.
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini
在所有的Ubuntu版本上,你都需要在安装后启用mod.你可以用php5enmod
美元.
sudo php5enmod mcrypt
sudo service apache2 restart
笔记
- PHP7.1不推荐使用mcrypt,7.2有removed the mcrypt extension entirely个
- Laravel 5.1及更高版本removed the need for mcrypt