【问题标题】:php extension mcrypt must be loaded必须加载 php 扩展 mcrypt
【发布时间】: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 不是说你很蠢。我只是说我不是字面意思,但很明显。我以前有一些人在其他问题上总是批评(或其他)人们的问题,因为有人说他们在使用时对问题过于模糊:“它不起作用”,我认为大多数这样做的人都是聪明人。这个问题我可以理解一点,但其他人显然仍然知道答案。

标签: php magento ubuntu curl mcrypt


【解决方案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/26260askubuntu.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

      【讨论】:

        猜你喜欢
        • 2011-03-02
        • 2012-10-23
        • 2019-10-29
        • 2016-07-28
        • 2014-03-03
        • 1970-01-01
        • 2010-09-28
        • 2014-12-01
        • 1970-01-01
        相关资源
        最近更新 更多