I have a PHP application written using the Codeigniter framework. When I am trying to run this application on Windows Machine then I am getting below error:
An Error Was Encountered
The Encrypt library requires the Mcrypt extension.
This same application working fine on some random Windows Machine having the same configuration. I have tried on 5 different windows 10 machines and got this error on 3 Machine and worked fine on 2 machines. Here I have used the same installer to install XAMPP on all the machines and the same code, but still don’t know how to make it run smoothly.
I have tried almost all the suggestions available online like to make a change in php.ini but no luck so far.
Sohail Ahmad
7,4695 gold badges27 silver badges46 bronze badges
asked May 26, 2018 at 10:04
4
(FOR CI USERS only) If you are switched from CI2 XAMPP(php5) to XAMPP(php7) then, paste encrypt.php in CI->system->libraries folder, after this it should be fine !
answered Jan 23, 2019 at 19:24
Pushpendra KumarPushpendra Kumar
1,7311 gold badge15 silver badges21 bronze badges
2
For the future comers, I have face this problem too. It is usually issue with php 7.2.
Simply replace encrypt
with encryption
in autoload.php
$autoload['libraries'] = array('database', 'email', 'session', 'encrypt', 'pagination');
$autoload['libraries'] = array('database', 'email', 'session', '**encryption**', 'pagination');
Javier C.
7,8695 gold badges41 silver badges53 bronze badges
answered Feb 14, 2019 at 7:20
0
To codeigniter developers: some CI releases do not have encrypt listed in autoload
$autoload['libraries'] = array();
Instead, they are loaded under CI_Controller derived controllers.
Search for
$this->load->library('encrypt');
and replace with:
$this->load->library('encryption');
answered Apr 9, 2020 at 9:02
Anatoliy RAnatoliy R
1,7492 gold badges14 silver badges20 bronze badges
0
On Linux where PHP 5.6 or less…
apt-get install php5-mcrypt
answered Jul 10, 2018 at 1:43
BiraBira
4,5912 gold badges27 silver badges42 bronze badges
After replace Encrypt.php’s Pushpendra Kumar, don’t forget to set :
$config['encryption_key'] = 'encryption_key';
answered Aug 2, 2020 at 6:44
Khamad AliKhamad Ali
331 silver badge11 bronze badges
you can bypass mbstring by just disabling
$config['sess_encrypt_cookie'] = TRUE;
in config.php file.
F. Müller
3,9698 gold badges38 silver badges49 bronze badges
answered Feb 3 at 7:24
Open php.ini
search for ;extension=php_mcrypt.dll
then remove ; infront of it to uncomment it.
save the php.ini file
answered May 26, 2018 at 10:45
Run the following code to check if the mccrypt is enabled in your PHP Settings.
<?php phpinfo(); ?>
By default, it is enabled on some server so that’s why it is working on the random machine.
The quickest method to enable php-mcrypt on windows server – all you need to do is:
-
Find php.ini (main php configuration file)
-
Open and search for;extension=php_mcrypt.dll )
-
Uncomment/remove “;” and save the php.ini
answered May 26, 2018 at 10:13
pspatelpspatel
5062 gold badges7 silver badges19 bronze badges
4
For Windows users
Autoload.php file will be as follows
$autoload[‘libraries’] = array(‘database’, ‘session’, ‘form_validation’, ‘encrypt’, ‘template’, ‘finediff’, ‘parser’);
From the above remove encryption like below, after that restart apache services then it will works….
$autoload[‘libraries’] = array(‘database’, ‘session’, ‘form_validation’, ‘template’, ‘finediff’, ‘parser’);
answered Aug 3, 2018 at 7:02
1
I was using PHP 7.2.xx version of php and followed the following steps:
Mcrypt PECL extenstion
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
Update the ini file with these commands:
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"
Verifying the installation:
php7.2-sp -i | grep mcrypt
answered Oct 21, 2019 at 9:20
This is the result of the deprecation of Mycrypt extension. If you are using PHP > 7.1 and you need it you can follow the guidelines on this link Add mycrypt extension after PHP 7.1
Content from github link:
1-First, you should download the suitable version for your system from here:
https://pecl.php.net/package/mcrypt/1.0.3/windows2-Later, you should copy php_mcrypt.dll under ../xampp/php/ext/
3-you should enable extension like extension=mcrypt from
xampp/php/php.inipersonly I modified the php.ini file and i add this lines :
extension=imap extension=mcrypt
of course, these two lines have the 3 dll file saved on
../xampp/php/ext/ as :php_imap.dll php_mcrypt.dll
jsims281
2,2062 gold badges30 silver badges57 bronze badges
answered Jul 14, 2020 at 12:25
0
Ошибка регулярного резервного копирования Битрикс
Ошибка регулярного резервного копирования Битрикс
02.09.2015
Во время администрирования сайта столкнулся с тем, что после непонятной ошибки как корректно отключить регулярное резервное копирование Битрикс. В настройках все выключено, но регулярное резервное копирование продолжает делать попытки создания резервной копии. В настройках стоит метод запуска — через прямой запуск /bitrix/modules/main/tools/backup.php
Изначально я подумал. что регулярное резервное копирование слетело после обновления Битрикс.
По логу не было видно данных по отключению задания на регулярное копирование. Попытка включить регулярное копирование, а затем отключить в итоге не дает результата. При включении выдает ошибку:
«Невозможно включить автоматическое резервное копирование: необходим модуль облачных сервисов «1С-Битрикс» или агенты должны выполняться на cron.»
В «Настройки — Настройки продукта — Модули» модуль bitrixcloud как был так и остался установлен.
Идем далее, в проверке системы выдает такие ошибки:
Ошибка! Не установлены требуемые расширения: Функции шифрования MCrypt. Поддержка ssl не настроена в php (без функции шифрования MCrypt не сможет создаваться копия с паролем).
Эти ошибки соответственно должны быть устранены. Для этого надо обращаться к администратору сервера. В моем случае это хостинг где обслуживается сайт. Как оказалось ошибка выскочила не после обновления, а после отключения модуля шифрования на сервере. Возможно хостер отключил MCrypt из пакета приложений. Поэтому для начала нужно переподключить его, чтобы задание удалилось из облака.
После подключения MCrypt, повторного включения и выключения регулярного копирования, проблему удалось благополучно решить.
Вид подключения расширение PHP mcrypt в панели управления хостингом nic.ru:
Ещё статьи:
18.01.2023
Нюансы перехода битрикс на РНР 8.0
С февраля битрикс прекращает поддерживать РНР 7.4 и в битрикс сегменте сайтов начался переход на РНР 8 для получения обновлений.
Но без нюансов и ошибок…
ID: 431
10.01.2023
БУС окончательно всё?
Появилась информация от битрикс, что грубо говоря поддержка по отраслевому медицинскому решению от битрикс будет до 1 февраля 2024 года, а что потом б…
ID: 426
30.08.2022
Типовые претензии к подрядчику и к битрикс
По свежим следам я собрал типовые претензии к подрядчику и к битрикс. Мной был проведён аудит и я увидел, что техническое состояние сайта хорошее, нареканий…
ID: 338
Новые статьи в блоге:
Возврат к списку
При оформлении заказа через гугл хром в конце заполнения формы заказа при отправке выскакивает:
[Error] Call to undefined function mcrypt_get_block_size() (0)
/корневой путь/www/домен.ru/bitrix/modules/netpay.sale/payment/netpay.sale/security.class.php:4
#0: Security::encrypt(string, string) /корневой путь/www/домен.ru/bitrix/modules/netpay.sale/payment/netpay.sale/payment.php:88
#1: require_once(string) /корневой путь/www/домен.ru/bitrix/php_interface/include/sale_payment/netpay.sale/payment.php:3
#2: require(string) /корневой путь/www/домен.ru/bitrix/modules/sale/lib/paysystem/compatibilityhandler.php:209
#3: BitrixSalePaySystemCompatibilityHandler->includeFile(string) /корневой путь/www/домен.ru/bitrix/modules/sale/lib/paysystem/compatibilityhandler.php:65
#4: BitrixSalePaySystemCompatibilityHandler->initiatePay(object, NULL) /корневой путь/www/домен.ru/bitrix/modules/sale/lib/paysystem/service.php:109
#5: BitrixSalePaySystemService->initiatePay(object, NULL, integer) /корневой путь/www/домен.ru/bitrix/components/bitrix/sale.order.ajax/class.php:6076
#6: SaleOrderAjax->showOrderAction() /корневой путь/www/домен.ru/bitrix/components/bitrix/sale.order.ajax/class.php:5966
#7: SaleOrderAjax->doAction(string) /корневой путь/www/домен.ru/bitrix/components/bitrix/sale.order.ajax/class.php:6219
#8: SaleOrderAjax->executeComponent() /корневой путь/www/домен.ru/bitrix/modules/main/classes/general/component.php:648
#9: CBitrixComponent->includeComponent(string, array, boolean)/корневой путь/www/ домен.ru/bitrix/modules/main/classes/general/main.php:1039
#10: CAllMain->IncludeComponent(string, string, array, boolean, array)/корневой путь/www/ домен.ru/personal/order/make/index.php:99
В мозиле все нормально.
Подскажите пожалуйста в чем проблема и как решить.
Расширение MCrypt предназначено для шифрования/дешифрования данных. Оно было признано устаревшим и в итоге, начиная с версии PHP 7.2 его убрали из ядра php. Однако, могут возникнуть ситуации, когда это расширение может понадобится, когда, например, вы работаете с какой-то устаревшей cms или просто старой программой и нет времени или желания переделывать программу.
Расширение MCrypt было перенесено в PECL по адресу https://pecl.php.net/package/mcrypt. На момент написания статьи последняя версия 1.0.3, которая поддерживает PHP 7.2, PHP 7.3 и PHP 7.4, а так же обещает поддержку PHP 8, который пока еще не вышел.
Как установить MCrypt для PHP 7.2, 7.3, 7.4 для Linux
Необходимо выполнить обновление репозитария и затем установить расширение:
$ sudo pecl channel-update pecl.php.net $ sudo pecl install mcrypt-1.0.3
либо так
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.3
После установки найдите куда установился файл mcrypt.so. Скорее всего это /usr/lib/php/modules/mcrypt.so или /usr/lib64/php/modules/mcrypt.so
Затем нужно найти php.ini. Не могу указать точный путь, т.к. на разных системах это могут быть абсолютно разные места, например, /etc/php.ini, либо /etc/php/7.2/cli/php.ini или /opt/php72/etc и др. Так же, php.ini может быть в папке пользователя.
В php.ini найдите где добавляются другие расширения (строки начинающиеся «extension=»), либо просто в конце файла, каким-нибудь редактором добавьте строку:
extension=/path_to_mcrypt/mcrypt.so
где вместо path_to_mcrypt напишите свой путь, который находили ранее.
Как установить MCrypt для PHP 7.2, 7.3, 7.4 для Windows
Скачайте архив расширения со страницы PECL https://pecl.php.net/package/mcrypt/1.0.3/windows для нужной версии PHP. Если не уверены, какая именно версия Thread Safe (TS) x86, Non Thread Safe (NTS) x86 или тоже x64 нужна, скачайте все четыре версии. Потом просто попробуете каждую из них и какая заработает, ту и оставите.
В скачанном архиве вам нужен файл php_mcrypt.dll — его нужно распаковать в папку, где установлен ваш PHP в подкаталог ext, где находятся и все другие расширения.
В php.ini найдите где добавляются другие расширения (строки начинающиеся «extension=»), либо в конце файла, добавьте строку:
extension=<path_to_mcrypt>php_mcrypt.dll
где вместо path_to_mcrypt напишите путь, куда распаковали dll-файл.
Вместо полного пути к библиотеки, можно так же в php.ini написать:
extension=php_mcrypt.dll
или так:
extension=mcrypt
Проверить установку можно просто на одном из сайтов своего сервера выполнить php-код: phpinfo();. При этом, должна появиться секция mcrypt:
На этом установка MCrypt для PHP 7.2, 7.3, 7.4 завершена.
Расширение MCrypt предназначено для шифрования/дешифрования данных. Оно было признано устаревшим и в итоге, начиная с версии PHP 7.2 его убрали из ядра php. Однако, могут возникнуть ситуации, когда это расширение может понадобится, когда, например, вы работаете с какой-то устаревшей cms или просто старой программой и нет времени или желания переделывать программу.
Расширение MCrypt было перенесено в PECL по адресу https://pecl.php.net/package/mcrypt. На момент написания статьи последняя версия 1.0.3, которая поддерживает PHP 7.2, PHP 7.3 и PHP 7.4, а так же обещает поддержку PHP 8, который пока еще не вышел.
Как установить MCrypt для PHP 7.2, 7.3, 7.4 для Linux
Необходимо выполнить обновление репозитария и затем установить расширение:
$ sudo pecl channel-update pecl.php.net $ sudo pecl install mcrypt-1.0.3
либо так
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.3
После установки найдите куда установился файл mcrypt.so. Скорее всего это /usr/lib/php/modules/mcrypt.so или /usr/lib64/php/modules/mcrypt.so
Затем нужно найти php.ini. Не могу указать точный путь, т.к. на разных системах это могут быть абсолютно разные места, например, /etc/php.ini, либо /etc/php/7.2/cli/php.ini или /opt/php72/etc и др. Так же, php.ini может быть в папке пользователя.
В php.ini найдите где добавляются другие расширения (строки начинающиеся «extension=»), либо просто в конце файла, каким-нибудь редактором добавьте строку:
extension=/path_to_mcrypt/mcrypt.so
где вместо path_to_mcrypt напишите свой путь, который находили ранее.
Как установить MCrypt для PHP 7.2, 7.3, 7.4 для Windows
Скачайте архив расширения со страницы PECL https://pecl.php.net/package/mcrypt/1.0.3/windows для нужной версии PHP. Если не уверены, какая именно версия Thread Safe (TS) x86, Non Thread Safe (NTS) x86 или тоже x64 нужна, скачайте все четыре версии. Потом просто попробуете каждую из них и какая заработает, ту и оставите.
В скачанном архиве вам нужен файл php_mcrypt.dll — его нужно распаковать в папку, где установлен ваш PHP в подкаталог ext, где находятся и все другие расширения.
В php.ini найдите где добавляются другие расширения (строки начинающиеся «extension=»), либо в конце файла, добавьте строку:
extension=<path_to_mcrypt>php_mcrypt.dll
где вместо path_to_mcrypt напишите путь, куда распаковали dll-файл.
Вместо полного пути к библиотеки, можно так же в php.ini написать:
extension=php_mcrypt.dll
или так:
extension=mcrypt
Проверить установку можно просто на одном из сайтов своего сервера выполнить php-код: phpinfo();. При этом, должна появиться секция mcrypt:
На этом установка MCrypt для PHP 7.2, 7.3, 7.4 завершена.
hello guys l have installed php7 from this link
and this link too.
but when i try to run a Laravel based project there is an error coming up as follows
Mcrypt PHP extension required.
I tried to locate mcrypt.so and change the path in mycrpt.ini but i still get the same error i only get this error i Laravel projects
Daniel
1,1551 gold badge10 silver badges15 bronze badges
asked Apr 4, 2016 at 11:58
2
Had the same issue — PHP7 missing mcrypt.
This worked for me in Ubuntu Please try below commands.
sudo apt-get update
sudo apt-get install mcrypt php7.0-mcrypt
sudo apt-get upgrade
Then restarts apache
sudo service apache2 restart
Hope this commands helps!
Artur Haddad
1,4292 gold badges16 silver badges33 bronze badges
answered Apr 4, 2016 at 12:31
3
У меня есть PHP-приложение, написанное с использованием каркаса codeigniter. Когда я пытаюсь запустить это приложение на Windows Machine, я получаю сообщение об ошибке ниже:
Была обнаружена ошибка
Для библиотеки Encrypt требуется расширение Mcrypt.
Это же приложение прекрасно работает на некоторых случайных машинах Windows, имеющих одинаковую конфигурацию. Я пробовал на 5 разных машинах с Windows 10 и получил эту ошибку на 3 машинах и отлично работал на 2 машинах. Здесь я использовал один и тот же установщик для установки XAMPP на все машины и один и тот же код, но все еще не знаю, как заставить его работать гладко.
Я испробовал почти все предложения, доступные в Интернете, как внести изменения в php.ini, но пока не повезло.
0
Решение
Откройте php.ini
ищи ;extension=php_mcrypt.dll
затем удалите ; перед этим раскомментировать.
сохранить файл php.ini
0
Другие решения
Запустите следующий код, чтобы проверить, включен ли mccrypt в настройках PHP.
<?php phpinfo(); ?>
По умолчанию он включен на каком-то сервере, поэтому он работает на случайной машине.
Самый быстрый способ включить php-mcrypt на сервере Windows — все, что вам нужно сделать, это:
-
Найти php.ini (основной файл конфигурации php)
-
Откройте и найдите; extension = php_mcrypt.dll)
-
Раскомментируйте / удалите «;» и сохраните php.ini
0
В Linux, где PHP 5.6 или меньше …
apt-get install php5-mcrypt
0
(Только для пользователей CI) Если вы переключаетесь с CI2 XAMPP (php5) на XAMPP (php7), вставьте encrypt.php в папке CI-> system-> библиотеки, после этого все должно быть в порядке!
0
Для будущих желающих я тоже столкнулся с этой проблемой. Это обычно проблема с PHP 7.2.
Просто замени encrypt
с encryption
в autoload.php
$autoload['libraries'] = array('database', 'email', 'session', 'encrypt', 'pagination');
$autoload['libraries'] = array('database', 'email', 'session', '**encryption**', 'pagination');
0
Для пользователей 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’);
-1