“遇到了一个错误 加密库需要Mcrypt扩展。”
相同的应用程序在某些随机的具有相同配置的Windows机器上正常工作。我已经在5台不同的Windows 10机器上尝试过,并在3台机器上出现了这个错误,在2台机器上工作正常。我在所有机器上都使用了相同的安装程序来安装XAMPP和相同的代码,但仍然不知道如何使其顺利运行。 我已经尝试了几乎所有可用的在线建议,例如更改php.ini文件,但到目前为止都没有成功。
(仅限CI用户)如果您从CI2 XAMPP(php5)切换到XAMPP(php7),请将encrypt.php粘贴到CI->system->libraries文件夹中,之后就应该没问题了!
对于未来的读者,我也遇到过这个问题。通常是php 7.2的问题。
只需在autoload.php中用encryption
替换encrypt
即可。
$autoload['libraries'] = array('database', 'email', 'session', 'encrypt', 'pagination');
$autoload['libraries'] = array('database', 'email', 'session', '**encryption**', 'pagination');
$autoload['libraries'] = array();
相反,它们加载在派生自CI_Controller的控制器下。
搜索
$this->load->library('encrypt');
替换为:
$this->load->library('encryption');
你可以通过禁用来绕过 mbstring
$config['sess_encrypt_cookie'] = TRUE;
在 config.php 文件中。
在 Linux 上,如果使用 PHP 5.6 或更低版本...
apt-get install php5-mcrypt
从这里安装扩展 https://pecl.php.net/package/mcrypt/1.0.3/windows
使用 TS 版本。
将 php_mcrypt.dll 文件放入 ../php/ext/ 目录中。
将 Encrypt.php 中的 Pushpendra Kumar 替换后,别忘记设置:$config['encryption_key'] = 'encryption_key';
<?php phpinfo(); ?>
默认情况下,某些服务器已启用它,这就是为什么它在随机机器上运行的原因。
在Windows服务器上启用php-mcrypt的最快方法 - 您需要做的就是:
找到php.ini(主要的php配置文件)
打开并搜索;extension=php_mcrypt.dll)
取消注释/删除“;”并保存php.ini
对于 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');