Encrypt库需要Mcrypt扩展

时间:2018-05-26 10:04:38

标签: php codeigniter

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

  

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

这个相同的应用程序在一些具有相同配置的随机Windows机器上工作正常。我已经尝试了5台不同的Windows 10机器并在3台机器上得到了这个错误并在2台机器上正常工作。在这里,我使用相同的安装程序在所有机器和相同代码上安装XAMPP,但仍然不知道如何使其顺利运行。 我已经尝试了几乎所有在线提供的建议,比如在php.ini中进行更改但到目前为止没有运气。

11 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

codeigniter 开发人员:某些 CI 版本的自动加载

中没有加密
$autoload['libraries'] = array();

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

搜索

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

并替换为:

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

答案 2 :(得分:0)

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

<?php phpinfo(); ?>

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

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

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

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

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

答案 3 :(得分:0)

打开php.ini

搜索;extension=php_mcrypt.dll

然后移除; 以取消注释。

保存php.ini文件

答案 4 :(得分:0)

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

apt-get install php5-mcrypt

答案 5 :(得分:0)

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

在autoload.php中将ExpectedConditions替换为encrypt

encryption

答案 6 :(得分:0)

我使用的是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

答案 7 :(得分:0)

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

答案 8 :(得分:0)

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

使用 TS 版本..

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

答案 9 :(得分:-1)

对于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');

答案 10 :(得分:-1)

这是Mycrypt扩展名被弃用的结果。如果您使用的是PHP> 7.1,则可以按照此链接Add mycrypt extension after PHP 7.1

上的指南进行操作

来自github链接的内容:

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

2-以后,您应该将php_mcrypt.dll复制到../ xampp / php / ext /

3-您应该启用扩展,例如extension = mcrypt xampp / php / php.ini

我个人修改了php.ini文件,并添加了以下行:

extension = imap extension = mcrypt

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

php_imap.dll php_mcrypt.dll