【问题标题】:The Encrypt library requires the Mcrypt extensionEncrypt 库需要 Mcrypt 扩展
【发布时间】:2018-11-05 13:59:24
【问题描述】:

我有一个使用 Codeigniter 框架编写的 PHP 应用程序。当我尝试在 Windows 机器上运行此应用程序时,出现以下错误:

遇到错误
Encrypt 库需要 Mcrypt 扩展。

这个相同的应用程序在一些具有相同配置的随机 Windows 机器上运行良好。我在 5 台不同的 Windows 10 机器上进行了尝试,在 3 台机器上遇到了这个错误,在 2 台机器上运行良好。这里我用相同的安装程序在所有机器上安装了XAMPP,代码也一样,但还是不知道如何让它顺利运行。 我已经尝试了几乎所有在线可用的建议,例如更改 php.ini,但到目前为止没有运气。

【问题讨论】:

标签: php codeigniter


【解决方案1】:

(仅适用于 CI 用户)如果您从 CI2 XAMPP(php5) 切换到 XAMPP(php7),则将 encrypt.php 粘贴到 CI->system->libraries 文件夹中,之后就可以了!

【讨论】:

  • 它也适用于非 XAMPP 配置,但我没有复制文件,而是基于它在我的应用程序一侧进行了适当的更正。
  • 这行得通,但我不知道您更改了什么,因为该文件存在于文件夹中。只是替换了它的内容。
【解决方案2】:

对于未来的人,我也面临这个问题。这通常是 php 7.2 的问题。

只需在 autoload.php 中将 encrypt 替换为 encryption

$autoload['libraries'] = array('database', 'email', 'session', 'encrypt', 'pagination');

$autoload['libraries'] = array('database', 'email', 'session', '**encryption**', 'pagination');

【讨论】:

    【解决方案3】:

    codeigniter 开发人员:一些 CI 版本没有在 autoload

    中列出 encrypt
    $autoload['libraries'] = array();
    

    相反,它们是在 CI_Controller 派生控制器下加载的。

    搜索

    $this->load->library('encrypt');
    

    并替换为:

    $this->load->library('encryption');
    

    【讨论】:

      【解决方案4】:

      在 PHP 5.6 或更低版本的 Linux 上...

      apt-get install php5-mcrypt

      【讨论】:

        【解决方案5】:

        替换Encrypt.php的Pushpendra Kumar后,别忘了设置:
        $config['encryption_key'] = 'encryption_key';

        【讨论】:

          【解决方案6】:

          从这里安装扩展https://pecl.php.net/package/mcrypt/1.0.3/windows

          使用 TS 版本..

          将php_mcrypt.dll文件放入../php/ext/

          【讨论】:

            【解决方案7】:

            打开 php.ini

            搜索;extension=php_mcrypt.dll

            然后删除它前面的 ; 以取消注释。

            保存 php.ini 文件

            【讨论】:

              【解决方案8】:

              运行以下代码检查您的 PHP 设置中是否启用了 mccrypt。

              <?php phpinfo(); ?>
              

              默认情况下,它在某些服务器上启用,这就是它在随机机器上工作的原因。

              在 windows 服务器上启用 php-mcrypt 的最快方法 - 您需要做的就是:

              • 找到php.ini(主php配置文件)

              • 打开并搜索;extension=php_mcrypt.dll )

              • 取消注释/删除“;”并保存 php.ini

              【讨论】:

              • mccrypt 未在出现错误的机器上启用。那么,我需要启用它吗?如果是,那怎么办?
              • 能否请您给我启用它的步骤
              • 如果您有权访问 php.ini 文件,您应该能够启用它。您可能必须通过删除 ; 来取消注释 php.ini 中引用它的行。在那一行之前。
              • @RahulKumarSingh 更新了启用扩展的答案。
              【解决方案9】:

              对于 Windows 用户

              Autoload.php 文件如下

              $autoload['libraries'] = array('database', 'session', 'form_validation', 'encrypt', 'template', 'finediff', 'parser');

              从上面删除加密如下,然后重新启动apache服务然后它会工作......

              $autoload['libraries'] = array('database', 'session', 'form_validation', 'template', 'finediff', 'parser');

              【讨论】:

              • 这并不能解决问题,因为您刚刚从 $autoload[libraries] 数组中删除了加密库
              【解决方案10】:

              我使用的是 PHP 7.2.xx 版本的 php,并按照以下步骤操作:

              Mcrypt PECL 扩展

              sudo apt-get -y install gcc make autoconf libc-dev pkg-config
              sudo apt-get -y install libmcrypt-dev
              sudo pecl install mcrypt-1.0.1
              

              使用以下命令更新 ini 文件:

              sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/cli/conf.d/mcrypt.ini"
              sudo bash -c "echo extension=/usr/lib/php/20170718/mcrypt.so > /etc/php/7.2/apache2/conf.d/mcrypt.ini"
              

              验证安装:

              php7.2-sp -i | grep mcrypt
              

              【讨论】:

                【解决方案11】:

                这是 Mycrypt 扩展被弃用的结果。如果您使用 PHP > 7.1 并且需要它,您可以按照此链接上的指南Add mycrypt extension after PHP 7.1

                来自 github 链接的内容:

                1-首先,您应该从这里下载适合您系统的版本: https://pecl.php.net/package/mcrypt/1.0.3/windows

                2-稍后,你应该复制../xampp/php/ext/下的php_mcrypt.dll

                3-你应该启用像 extension=mcrypt 这样的扩展 xampp/php/php.ini

                我亲自修改了 php.ini 文件并添加了以下行:

                extension=imap 扩展=mcrypt

                当然,这两行有3个dll文件保存在 ../xampp/php/ext/ as :

                php_imap.dll php_mcrypt.dll

                【讨论】:

                  猜你喜欢
                  • 2019-01-19
                  • 2019-02-27
                  • 2014-09-26
                  • 2017-05-11
                  • 2014-06-29
                  相关资源
                  最近更新 更多