尝试安装Laravel时,一直遇到这个错误。我通过brew安装了mcrypt,它位于/usr/local/Cellar目录下。您有什么想法?..如果有影响的话,它在终端命令php-m中也没有显示出来。我正在运行带有mac本地Web服务器的Mountain Lion。
尝试安装Laravel时,一直遇到这个错误。我通过brew安装了mcrypt,它位于/usr/local/Cellar目录下。您有什么想法?..如果有影响的话,它在终端命令php-m中也没有显示出来。我正在运行带有mac本地Web服务器的Mountain Lion。
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
。
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/
。 - dave1010apache2
和cli
目录(或者您使用的其他SAPI):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/cli/conf.d/
。 - dave1010您需要在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
- coryjmcrypt.so
??phpinfo()显示我的php.ini文件位于/etc/php5/apache2/php.ini
,但是没有字符串“mcrypt.so”! - Peter Kraussapt-get install php5-mcrypt
、php5enmod mcrypt
和service php5-fpm restart
。 - ppostma1尝试运行sudo php5enmod mcrypt && sudo service apache2 restart
你实际上想要安装的是 php56-mcrypt
PHP 模块,但却安装了 mcrypt
。
你在问题中提到你可以看到 /usr/local/Cellar
中已安装了 mcrypt
,并且你正在使用 OSX
。因此,在 OSX 上使用 Homebrew 安装 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
文件。由于Homebrew会为您激活模块,因此这将是不必要的。它会在/usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini
位置放置配置文件。
brew
是在 Mac OS X 上安装软件包的方式。 - aymericbeaumet错误:php55没有可用的公式
- theycallmemortymcrypt
的正确方法,记得在运行命令 brew search mcrypt
后,使用 brew install php56-mcrypt
安装 mcrypt。 - hash您可能已经安装了mycrypt,但未安装/启用php_mcrypt模块。
我使用Homebrew安装了php和mcrypt,但是在进行了几次brew update
之后,仍然遇到了这个错误。我认为我的设置随着时间的推移已经有点混乱了。
事实证明,我的php是从/private/etc/php.ini配置的,而不是像Homebrew建议的那样从/usr/local/etc/php/5.4/php.ini配置的。甚至在/usr/local/etc/php/5.4/ext-mcrypt.ini中也没有包含Mcrypt,这并不太合理,因为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
重启 Apache进入您的PHP安装中的CLI文件夹,找到其中的php.ini文件并启用mcrypt。终端有时会使用另一个php.ini文件,通常在CLI文件夹中。
这是最终对我起作用的代码:
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
添加到该目录时出现错误。