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

Laravel requires the Mcrypt PHP extension.

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

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


当前回答

你需要一个all in one环境。您可以使用MAMP或XAMPP或任何其他工具。在安装这些工具之一之后,您将需要编辑(创建). bash_profile(假设您使用bash)。

或者甚至简单和更专业的你可以使用Laravel Homestead。

这里是官方文档的链接:http://laravel.com/docs/5.0/homestead

杰弗里还有一个关于它的免费教程: https://laracasts.com/series/laravel-5-fundamentals/episodes/2

我建议您使用homestead,因为您将预先安装以下所有工具。

Ubuntu 14.04 PHP 5.6 HHVM Nginx MySQL Postgres 节点(带有低沉、咕哝和吞咽) 复述, Memcached Beanstalkd Laravel特使 面料+ HipChat扩展

其他回答

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

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

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

你安装了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。

现在应该可以工作了。

Ubuntu 14.04

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

Ubuntu 16.04

sudo apt-get install php-mcrypt
sudo phpenmod mcrypt

Ubuntu 18.04

sudo apt install php7.0-mcrypt
sudo phpenmod mcrypt

or

sudo apt install php7.2-mcrypt
sudo phpenmod mcrypt

扩展一下@JetLaggy:

在一次又一次尝试用MAMP目录修改.bash_profile后,我改变了MAMP php目录的文件权限,并能够获得“which php”以显示正确的目录。问题是其他函数不起作用,比如'php -v'。

所以我更新了MAMP。http://documentation.mamp.info/en/mamp/installation/updating-mamp

这对我的特殊设置很有效。我必须调整我的PATH以反映更新的PHP版本,但一旦我这样做了,一切都工作了!

自带冲泡的OSX

$ brew install mcrypt php70-mcrypt

我运行的是PHP 7.0。X,所以将“php70”更改为您的版本,如果您正在使用不同的版本。 正如在其他答案中所述,您可以使用$ php -v查看您的php版本。