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

Laravel requires the Mcrypt PHP extension.

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

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


当前回答

Ubuntu (PHP-FPM,Nginx)

sudo apt-get install php5-mcrypt

安装php5-mcrypt后

你必须使一个符号链接到ini文件在mods-available:

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini

启用:

sudo php5enmod mcrypt

重启php5-fpm:

sudo service php5-fpm restart

更详细地

其他回答

让Laravel在Apache上工作

PHP版本:PHP 5.5.9

Ubuntu版本:14.04

我有一个关于窗户的laravel项目。当我把它复制到ubuntu服务器时,我开始得到McRypt错误。这是经过数小时的反复试验后得出的结论

让工匠指挥工作

(如果您在使用artisan命令行工具时出现McRypt错误)

我做了大量的试验和错误,所以每次我运行php5enmod命令时,我都有错误消息。但是在重新安装时没有错误消息。在这一步之后,我得到了工匠指挥工作

sudo rm /etc/php5/mods-available/mcrypt.ini
sudo apt-get purge php5-mcrypt
sudo apt-get install mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

修复浏览器错误

(如果您在访问本地laravel索引页面时浏览器出现McRypt错误)

sudo nano /etc/php5/apache2/php.ini

在PHP ini的动态编译扩展部分中添加以下行

extension=mcrypt.so

重新启动apache服务器,清除laravel缓存和所有工作

扩展一下@JetLaggy:

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

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

这对我的特殊设置很有效。我必须调整我的PATH以反映更新的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版本。

对于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

这在我的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文件