У меня есть PHP-приложение, написанное с использованием каркаса codeigniter. Когда я пытаюсь запустить это приложение на Windows Machine, я получаю сообщение об ошибке ниже:
Была обнаружена ошибка
Для библиотеки Encrypt требуется расширение Mcrypt.
Это же приложение прекрасно работает на некоторых случайных машинах Windows, имеющих одинаковую конфигурацию. Я пробовал на 5 разных машинах с Windows 10 и получил эту ошибку на 3 машинах и отлично работал на 2 машинах. Здесь я использовал один и тот же установщик для установки XAMPP на все машины и один и тот же код, но все еще не знаю, как заставить его работать гладко.
Я испробовал почти все предложения, доступные в Интернете, как внести изменения в php.ini, но пока не повезло.
Откройте php.ini
ищи ;extension=php_mcrypt.dll
затем удалите ; перед этим раскомментировать.
сохранить файл php.ini
Запустите следующий код, чтобы проверить, включен ли mccrypt в настройках PHP.
<?php phpinfo(); ?>
По умолчанию он включен на каком-то сервере, поэтому он работает на случайной машине.
Самый быстрый способ включить php-mcrypt на сервере Windows — все, что вам нужно сделать, это:
Найти php.ini (основной файл конфигурации php)
Откройте и найдите; extension = php_mcrypt.dll)
Раскомментируйте / удалите «;» и сохраните php.ini
В Linux, где PHP 5.6 или меньше …
apt-get install php5-mcrypt
(Только для пользователей CI) Если вы переключаетесь с CI2 XAMPP (php5) на XAMPP (php7), вставьте encrypt.php в папке CI-> system-> библиотеки, после этого все должно быть в порядке!
Для будущих желающих я тоже столкнулся с этой проблемой. Это обычно проблема с PHP 7.2.
Просто замени encrypt
с encryption
в autoload.php
$autoload['libraries'] = array('database', 'email', 'session', 'encrypt', 'pagination');
$autoload['libraries'] = array('database', 'email', 'session', '**encryption**', 'pagination');
Для пользователей Windows
Файл autoload.php будет выглядеть следующим образом
$ autoload [‘library’] = array (‘database’, ‘session’, ‘form_validation’, ‘encrypt’, ‘template’, ‘finediff’, ‘parser’);
Из вышеперечисленного удалите шифрование, как показано ниже, после этого перезапустите службы Apache, тогда оно будет работать ….
$ autoload [‘library’] = array (‘database’, ‘session’, ‘form_validation’, ‘template’, ‘finediff’, ‘parser’);