我试图在OSX上使用Laravel 4中的迁移函数。然而,我得到以下错误:

Laravel requires the Mcrypt PHP extension.

据我所知,它已经启用了(见下图)。

出了什么问题,我该如何解决?


当前回答

对于Ubuntu 14.04上的php-fpm安装,以下操作对我来说是有效的:

安装php5-mcrypt

这将在/etc/php5/mods-available/中创建mcrypt.ini文件

然后

Sudo php5enmod McRypt

将在:/etc/php5/fpm/conf.d/

重启php-fpm服务即可 Sudo service php5-fpm restart

其他回答

或者,使用:

sudo apt-get install php5-mcrypt

不确定这是否适用于标准的PHP安装-我使用包安装了PHP 5.5.7:

sudo add-apt-repository ppa:ondrej/php5 
sudo apt-get update

只是为了美味,

yum install php-mcrypt
service httpd restart
chown -R apache:apache apppath

也许你需要安装remi repo

如果你正在使用Z Shell,只需执行以下操作:

打开终端 Sudo nano ~/.zshrc 粘贴;导出路径= /应用程序/ MAMP / bin / php / php5.6.10 / bin:美元的道路 保存 执行source ~/.zshrc命令 运行该php -您应该得到MAMP 5.6.10路径

5.6.10是你在MAMP中设置的PHP版本。

对于ubuntu,如果其他步骤不工作,请尝试以下步骤:

cd ~ Sudo apt-get删除php5-mcrypt 安装php5-mcrypt Sudo php5enmod McRypt Sudo服务apache2重启

希望这能有所帮助。谢谢!

对于今天仍然来到这里的人:

Laravel不再需要mcrypt扩展了。McRypt已经过时,libmcrypt的最后一次更新是在2007年。Laravel 4.2也过时了,没有更多的支持。最好(=安全)的解决方案是更新到Laravel 9。x+ (Laravel 8;X还是可以的。但如果你正在升级,那么就升级到最新版本)。

Mcrypt于2015年6月从Laravel删除:https://github.com/laravel/framework/pull/9041