找不到mcrypt =>调用未定义的函数Laravel\mcrypt_create_iv()

cor*_*ryj 46 php mcrypt laravel osx-mountain-lion

试图设置Laravel并继续遇到此错误.我通过brew安装了mcrypt,它位于/ usr/local/Cellar.有什么想法吗?..它没有出现在终端命令php -m中,如果这很重要.我正在使用macs本地Web服务器运行Mountaion Lion.

Sop*_*phy 66

Ubuntu或任何基于Debian的Linux用户都可以安装所需的包apt-get:

sudo apt-get install php5-mcrypt
Run Code Online (Sandbox Code Playgroud)

请记住以后重新启动Web服务器:

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

如果仍然不起作用,请尝试将配置文件链接到Web服务器的相应配置文件夹.感谢dave1010在评论中的这个暗示.

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/   # for Apache
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/cli/conf.d/       # for CLI
Run Code Online (Sandbox Code Playgroud)

再次,重新启动Web服务器:

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

也许,如果还没有工作,你还需要@RahulPrasad所展示的那条线php5enmod mcrypt.

  • 出于某种原因,在Ubuntu上,PHP没有拿起mcrypt.ini.这解决了它:`sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/; sudo ln -s /etc/php5/conf.d/mcrypt.ini/etc/php5/apache2/conf.d /` (8认同)
  • 对我来说,mcrypt.ini在`/ etc/php5/mods-available/mcrypt.ini`.我正在使用Ubuntu 14.04 LTS和PHP 5.5.9-1ubuntu4.3. (4认同)

Dei*_*ite 39

您还需要在php.ini文件中启用它,并可能重新启动Apache.

php.ini你将找到;mcrypt.so并删除;它.

或者,如果它不在那里,只需添加一个mcrypt.so地方.

从PHP 7.0.0开始,salt选项也已被弃用.现在优选简单地使用默认生成的盐.

  • 似乎没有工作..找到这行代码`code` [mcrypt]; 有关mcrypt设置的更多信息,请参阅http://php.net/mcrypt-module-open; 目录在哪里加载mcrypt算法; 默认值:编译成libmcrypt(通常是/ usr/local/lib/libmcrypt); mcrypt.algorithms_dir =; 目录加载mcrypt模式的位置; 默认值:编译成libmcrypt(通常是/ usr/local/lib/libmcrypt); mcrypt.modes_dir =`code` (4认同)
  • debian/ubuntu的新版本更容易(并且需要)`apt-get install php5-mcyrpt`;,`php5enmod mcrypt`;,`service php5-fpm restart` (2认同)

Rah*_*sad 28

尝试 sudo php5enmod mcrypt && sudo service apache2 restart


dar*_*onz 20

您已经安装了mcrypt实际需要php56-mcryptphp模块的时候.

您在问题中说明了您可以看到mcrypt安装在/usr/local/Cellar您正在使用的内容中OSX.因此,使用Homebrew在OSX上安装mcrypt PHP模块的最简单方法是:

// assuming you have php56
brew install php56-mcrypt
Run Code Online (Sandbox Code Playgroud)

如果自制软件找不到正确的软件包,您可能需要点击GitHub上的PHP存储库:

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php
Run Code Online (Sandbox Code Playgroud)

现在当你发出命令时brew search mcrypt,你应该看到类似的东西:

libtomcrypt   mcrypt   php53-mcrypt   php54-mcrypt   php55-mcrypt   php56-mcrypt
Run Code Online (Sandbox Code Playgroud)

其他几张海报都提到了编辑php.ini文件的必要性.这是不必要的,因为自制软件将负责为您激活模块.它将配置文件放在/usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini

  • PO肯定应该使用这些解决方案来解决他的问题...`brew`是在Mac OS X上安装软件包的方法. (2认同)