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

Laravel requires the Mcrypt PHP extension.

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

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


当前回答

使用Ubuntu

sudo php5enmod mcrypt

帮我搞定了。你不需要重新启动Apache,因为你只需要从CLI使用PHP。

其他回答

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

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

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

或者,使用:

sudo apt-get install php5-mcrypt

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

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

你安装了MAMP吗?

在终端中使用哪个php来查看您正在使用的php版本。

如果它不是来自MAMP的PHP版本,您应该在用户的主目录中编辑或添加.bash_profile,即:cd ~

在.bash_profile中添加以下行:

export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH

编辑:首先你应该使用cd /Applications/MAMP/bin/php命令来检查你使用的是MAMP中的哪个php版本,然后用上面的php版本替换。

然后重新启动终端,查看您现在使用的是哪个PHP。

现在应该可以工作了。

这在我的Linux Mint本地环境https://askubuntu.com/questions/350942/cannot-get-mcrypt-for-php5上解决了它

我需要在以下文件夹/etc/php5/apache2/conf.d/mcrypt.ini和/etc/php5/cli/conf.d/mcrypt.ini中创建一个符号链接到我的/etc/php5/conf.d/mcrypt.ini文件

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

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

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