尝试设置 Laravel 并不断遇到此错误。我通过 brew 安装了 mcrypt,它位于 /usr/local/Cellar。有什么想法吗?.. 它也没有出现在终端命令 php -m 中,如果这很重要的话。我正在使用 macs 本机 Web 服务器运行 Mountaion Lion。
10 回答
Ubuntu 或任何基于 Debian 的 Linux 用户可以使用以下命令安装所需的软件包apt-get
:
sudo apt-get install php5-mcrypt
记得之后重启网络服务器:
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
.
您还需要在php.ini
文件中启用它,并可能重新启动 Apache。
在php.ini
您将找到并从中;mcrypt.so
删除。;
或者,如果它不在那里,只需添加mcrypt.so
某个地方。
自 PHP 7.0.0 起,盐选项已被弃用。现在首选简单地使用默认生成的盐。
尝试sudo php5enmod mcrypt && sudo service apache2 restart
mcrypt
当您真正需要php56-mcrypt
php 模块时,您已经安装了。
你在你的问题中说你可以看到mcrypt
安装在/usr/local/Cellar
并且你正在使用OSX
. 因此,使用Homebrew在 OSX 上安装 mcrypt PHP 模块的最简单方法是:
// assuming you have php56
brew install php56-mcrypt
如果 homebrew 找不到正确的包,您可能需要点击 GitHub 上的 PHP 存储库:
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
您可能已经安装了 mycrypt 但没有安装/启用 php_mcrypt 模块。
转到 php 安装中的 CLI 文件夹,并在其中找到 php.ini 并启用 mcrypt。终端有时会使用另一个 php.ini,它通常位于 CLI 文件夹中。
brew update
我用 Homebrew 安装了 php 和 mcrypt,但做了几次后我仍然遇到这个错误。我认为我的设置随着时间的推移变得有点无聊。
事实证明,我的 php 是从/private/etc/php.ini配置的,而不是 Homebrew 推荐的/usr/local/etc/php/5.4/php.ini 。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"
并保存 - 重启Apache
sudo apachectl restart
这最终对我有用:
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
到该目录时出现错误。