尝试设置Laravel并继续遇到此错误。我通过brew安装了mcrypt,它位于/ usr / local / Cellar。有什么想法吗? ..它没有出现在终端命令php -m中,如果这很重要。我正在使用macs本地Web服务器运行Mountaion Lion。
答案 0 :(得分:66)
Ubuntu或任何基于Debian的Linux用户都可以使用apt-get
安装所需的软件包:
sudo apt-get install php5-mcrypt
请记住以后重新启动Web服务器:
sudo service apache2 restart
如果仍然无效,请尝试将配置文件链接到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
再次,重新启动Web服务器:
sudo service apache2 restart
也许,如果还没有工作,你还需要@RahulPrasad显示的行php5enmod mcrypt
。
答案 1 :(得分:38)
您还需要在php.ini
文件中启用它,并可能重新启动Apache。
在php.ini
中,您会找到;mcrypt.so
并从中移除;
。
或者,如果它不在那里,只需在某处添加mcrypt.so
。
自PHP 7.0.0起,salt选项也已弃用。现在最好只使用默认生成的盐。
答案 2 :(得分:28)
尝试sudo php5enmod mcrypt && sudo service apache2 restart
答案 3 :(得分:20)
当您真正想要mcrypt
php模块时,您已经安装了php56-mcrypt
。
您在问题中声明,您可以在mcrypt
中看到/usr/local/Cellar
,并且您正在使用OSX
。因此,使用Homebrew在OSX上安装mcrypt PHP模块的最简单方法是:
// assuming you have php56
brew install php56-mcrypt
如果自制软件找不到正确的软件包,您可能需要tap the PHP repositories found on GitHub:
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php
现在当您发出命令brew search mcrypt
时,您应该看到类似的内容:
libtomcrypt mcrypt php53-mcrypt php54-mcrypt php55-mcrypt php56-mcrypt
其他几张海报都提到需要编辑php.ini
文件。这是不必要的,因为自制软件将负责为您激活模块。它将配置文件放在/usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini
答案 4 :(得分:2)
答案 5 :(得分:1)
您可能已安装mycrypt但未安装/启用php_mcrypt模块。
答案 6 :(得分:1)
对于最近升级到PHP 7的人来说只是一个注释 - MCRYPT库已经deprecated。如果您升级到PHP 7并且现在看到此错误,那就是原因。您应该切换到另一个库,this thread中提到了一些替代方案。
答案 7 :(得分:0)
转到php安装中的CLI文件夹,在那里找到php.ini并启用mcrypt。终端有时使用另一个php.ini,它通常位于CLI文件夹中。
答案 8 :(得分:0)
我用Homebrew安装了php和mcrypt,但是在brew update
做了几次之后我仍然遇到了这个错误。我认为我的设置随着时间的推移而变得有点不自在。
事实证明我的php是从 /private/etc/php.ini 配置的,不是 /usr/local/etc/php/5.4/ php.ini 正如Homebrew推荐的那样。 Mcrypt甚至不包含在 /usr/local/etc/php/5.4/ext-mcrypt.ini 中,考虑到php -i
为我生成这个内容并没有多大意义:
Configuration File (php.ini) Path => /usr/local/etc/php/5.4
Loaded Configuration File => /usr/local/etc/php/5.4/php.ini
Scan this dir for additional .ini files => /usr/local/etc/php/5.4/conf.d
Additional .ini files parsed => /usr/local/etc/php/5.4/conf.d/ext-mcrypt.ini
我的解决方案:
/private/etc/php.ini
extension="/usr/local/Cellar/php54-mcrypt/5.4.28/mcrypt.so"
并保存sudo apachectl restart
答案 9 :(得分:0)
这最终对我有用:
brew reinstall --with-homebrew-curl --with-httpd php56
brew reinstall --build-from-source php56-mcrypt
我还必须执行sudo chmod 777 /usr/local/etc/php/5.6/conf.d
,因为当第二个brew reinstall
尝试将ext-mcrypt.ini
添加到该目录时出现错误。