我有一个使用codeigniter框架编写的php应用程序。当我尝试在Windows机器上运行此应用程序时,我收到以下错误:
遇到错误
Encrypt库需要Mcrypt扩展。
这个相同的应用程序在一些具有相同配置的随机Windows机器上工作正常。我已经尝试了5台不同的Windows 10机器并在3台机器上得到了这个错误并在2台机器上正常工作。在这里,我使用相同的安装程序在所有机器和相同代码上安装XAMPP,但仍然不知道如何使其顺利运行。 我已经尝试了几乎所有在线提供的建议,比如在php.ini中进行更改但到目前为止没有运气。
答案 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)
答案 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