必须加载 php 扩展 mcrypt

Posted

技术标签:

【中文标题】必须加载 php 扩展 mcrypt【英文标题】:php extension mcrypt must be loaded 【发布时间】:2014-11-24 19:51:51 【问题描述】:

我正在关注有关在 ubuntu 上安装 magento 的在线教程,但在配置中出现此错误:php extension mcrypt must be loaded。我已经尝试过:sudo apt-get install php5-mcrypt 但这对我不起作用。 curl 我也遇到了同样的问题,但是当我尝试时:sudo apt-get install php5-curl 它确实对我有用。如何用 mcrypt 解决这个问题?我已经尝试重新启动网络服务器。

【问题讨论】:

“没用”到底是什么意思?它是否尝试安装并出错?它是否安装但 mcrypt 在 PHP 中不可见?它是否自发烧毁了您的服务器? @MarkBaker 显然我的意思是删除错误... 不明显,现在也不明显.....当你做sudo apt-get install php5-mcrypt时显示了什么输出?是否显示任何错误消息?我当然无法判断 mcrypt 或 curl 的安装是否失败,或者您只是没有正确配置 PHP 以使用它们 对不起,我太笨了,看不懂你的问题,我真的应该放弃帮助别人了 @MarkBaker 不是说你很蠢。我只是说我不是字面意思,但很明显。我以前有一些人在其他问题上总是批评(或其他)人们的问题,因为有人说他们在使用时对问题过于模糊:“它不起作用”,我认为大多数这样做的人都是聪明人。这个问题我可以理解一点,但其他人显然仍然知道答案。 【参考方案1】:

希望您的系统是 ubuntu,因为您添加了标签。

在 Ubuntu 上,当您运行 sudo apt-get install php5-mcrypt 时,它实际上并没有将扩展安装到可用的 mods 中。您需要对其进行符号链接。

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini

然后启用扩展并重新启动 Apache。

sudo php5enmod mcrypt
sudo service apache2 reload

【讨论】:

我不确定您是否需要符号链接步骤,因为当我致电 php5enmod 时,它总是为我放在正确的位置。此外,您可能会在 Apache 上使用 reload 而不是 restart @Treffynnon,对,只有 php5enmod 可以在这里工作。是的,我们可以只重新加载而不是重新启动。编辑相同。谢谢... 在 Ubuntu 14.04 中启用扩展并重新启动 apache 就足够了。另见magento.stackexchange.com/q/36954/26260 和askubuntu.com/q/380280/18928。 只有 php5enmod 对我来说就足够了。感谢您保存答案。 如何为 php7 安装这个【参考方案2】:

我不确定为什么您的 PHP.INI 与我的略有不同。或者为什么我不需要使用 PHP5ENMOD。

这是我解决相同问题的方法:

1) 确保它已安装在我的发行版上,这不是大多数人遇到的问题。

2) 检查 PHP 配置以确保它已加载(未加载)。以下是 PHP 配置信息页面的代码:

<?php
phpinfo();
?>

在浏览器中运行它。如果启用了 MCrypt(它是 NOT),您将看到一个专用于它的带有类似信息的整个表(稍后您会看到):

mcrypt
mcrypt support  enabled
mcrypt_filter support   enabled
Version     2.5.8
Api No  20021217
Supported ciphers   cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes
Supported modes     cbc cfb ctr ecb ncfb nofb ofb stream

Directive   Local Value Master Value
mcrypt.algorithms_dir   no value    no value
mcrypt.modes_dir    no value    no value

3) 在同一页面上查找 PHP.INI 文件的位置。例如:

Configuration File (php.ini) Path   /etc/php5/apache2
Loaded Configuration File   /etc/php5/apache2/php.ini 

我的发行版有这个文件在不同的位置,但对于 linux,只需添加或取消注释,这样你就有了:

extension=mcrypt.so

重新启动您的 apache 服务器以确保。您现在应该检查您的配置页面并查看 MCRYPT 是否已加载。

【讨论】:

【参考方案3】:

您应该编辑 php.ini 并删除 ;在加载 extension=php_mcrypt 的那一行之前(之后你应该重启 apache)。

【讨论】:

使用 apache btw 时 php.ini 在什么地图中? 运行 &lt;?php phpinfo(); ?&gt; 并搜索 Loaded configuration file【参考方案4】:

您好,只需复制此 cmd 行并粘贴到您的终端中

sudo apt-get install php5-intl
sudo apt-get install php5-xsl
sudo php5enmod xsl
sudo service apache2 restart

【讨论】:

在windows中怎么做?【参考方案5】:

在我的例子中,使用 nginx 和 PHP-FPM,一旦启用扩展通过这个命令:sudo php5enmod mcrypt 我需要使用这个命令重新启动 php5-fpm:sudo service php5-fpm restart

【讨论】:

【参考方案6】:

这取决于您使用的操作系统版本。

UBUNTU:sudo apt-get install php-mcrypt

CENTOS:sudo yum install php-mcrypt

【讨论】:

以上是关于必须加载 php 扩展 mcrypt的主要内容,如果未能解决你的问题,请参考以下文章

php-mcrypt 扩展未加载

PHP加密扩展库—Mcrypt扩展库

在升级到 PHP 5.4.33 的 Centos VPS 上安装 mcrypt 扩展时出错

如何在 CentOS 7.0 x64 上安装 MCrypt PHP 扩展

ubuntu下加载mcypt

我要安装php的mcrypt扩展