Laravel需要Mcrypt PHP扩展

我正在尝试在OSX上使用Laravel 4migrate功能。 但是,我收到以下错误:

Laravel requires the Mcrypt PHP extension.

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

什么是错的,我该如何解决?

在这里输入图像描述


启用了Web的扩展和启用命令行的扩展可能会有所不同。 在您的终端中运行php -m并检查是否列出了mcrypt 。 如果不是,那么通过在终端上运行php --ini来检查命令行加载php.ini文件的位置。

在这个php.ini文件中,你可以启用扩展。

OSX

我听说OSX上的人遇到问题,因为终端指向OSX附带的原生PHP。 您应该更新您的bash配置文件以包含PHP的实际路径。 就像这样(我实际上并没有使用OSX,所以这可能不是100%):

export PATH=/usr/local/php5/bin:$PATH

Ubuntu的

在早期版本的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来做到这php5enmod

sudo php5enmod mcrypt
sudo service apache2 restart

笔记

  • 不推荐使用PHP 7.1,mcrypt和7.2已完全删除mcrypt扩展
  • Laravel 5.1和更高版本删除了对mcrypt的需求

  • 你有MAMP吗?

    在终端中使用which 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版本。

    然后restart终端以查看您正在使用哪个PHP。

    它现在应该工作。


    对于那些使用XAMPP 1.7.3和Mac的用户

  • 去终端
  • 输入which php
  • 如果它显示/usr/bin/php ,则继续执行3。
  • 输入sudo nano ~/.bash_profile (或者如果你知道如何使用sudo vim ~/.bash_profile
  • 然后粘贴这个export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
  • 然后按Ctrl + O进行保存,然后按Ctrl + X退出。
  • 键入cd ~
  • 类型. .bash_profile . .bash_profile
  • 重启终端。
  • 输入which php 。 如果你做得对,它应该和#4中的路径一样。
  • mcrypt错误的原因是因为您的Mac使用其原生的php,您需要将其更改为一个xampp。

    PS我建议为Mac用户使用MAMP for Laravel 4,这个问题将随PHP文件信息错误一起解决,而不会出汗,而xampp的php版本已经过时。

    链接地址: http://www.djcxy.com/p/71127.html

    上一篇: Laravel requires the Mcrypt PHP extension

    下一篇: how to enable .zip extension in server