php mcrypt не найден кандидат на установку
Как установить MCrypt для PHP 7.x
Расширение 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
Необходимо выполнить обновление репозитария и затем установить расширение:
После установки найдите куда установился файл 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=»), либо просто в конце файла, каким-нибудь редактором добавьте строку:
где вместо 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.ini найдите где добавляются другие расширения (строки начинающиеся «extension=»), либо в конце файла, добавьте строку:
где вместо path_to_mcrypt напишите путь, куда распаковали dll-файл.
Вместо полного пути к библиотеки, можно так же в php.ini написать:
Проверить установку можно просто на одном из сайтов своего сервера выполнить php-код: phpinfo();. При этом, должна появиться секция mcrypt:
На этом установка MCrypt для PHP 7.2, 7.3, 7.4 завершена.
Ошибка package has no installation candidate
В дистрибутиве Ubuntu и других, основанных на нем дистрибутивах, при установке новых пакетов пользователи могут столкнуться с ошибкой «package has no installation candidate» или по русски «Для пакета не найден кандидат на установку».
Эта ошибка может возникать при установке непопулярных программ или уже устаревших версий. Например, вы получите ее при попытке установить php5 или любой пакет, зависящий от этого в новой версии Ubuntu 16.04 или 16.10. В этой небольшой инструкции мы рассмотрим что означает ошибка «package has no installation candidate», а также как ее обойти и установить нужную программу.
Что означает package has no installation candidate?
Фактически, это означает то, что написано. Пакетный менеджер не нашел кандидата на установку для такого пакета. Ошибка будет выглядеть вот так в русской локализации:
Пакетный менеджер просто не знает где искать такой пакет. Его нет в официальных репозиториях, и нет в репозиториях, подключенных к вашей системе. Все это нам говорит пакетный менеджер:
Пакет php5 недоступен, но упомянут в списке зависимостей другого пакета.
Это может означать, что пакет отсутствует, устарел, или доступен из источников, не упомянутых в sources.list
Из этого выплывает несколько способов решения проблемы, которые мы рассмотрим ниже.
Как решить package has no installation candidate?
Для начала нужно обновить списки пакетов из репозиториев, возможно, у вас старая версия системы и для нее этот пакет еще недоступен. Это особенно актуально для бета-версий Ubuntu. Для обновления выполните:
Затем пробуйте снова установить ваш пакет. Если пакетный менеджер по-прежнему не может его найти, но вы точно знаете что такой пакет должен быть в официальных репозиториях, то, возможно, он есть в репозиториях партнеров Canonical. Нужно их добавить. Для этого откройте Источники программного обеспечения и установите все галочки:
Дальше система автоматически обновит список пакетов:
После этого можно устанавливать ваш пакет. Если его до сих пор нет мы можем пойти дальше и выполнить поиск по PPA. На сайте launchpad.net есть форма поиска:
Например, будем искать наш php 5. Вводим запрос в форму поиска и в результатах в первой же строке видим PPA, в котором есть нужная версия php. Такое решение подходит для многих пакетов.
На странице PPA мы уже видим способ добавления его в систему:
Например, для добавления этого PPA выполните такие команды:
sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
После этого вы без труда установите нужный пакет.
Было найдено четыре версии, нам нужна последняя, для Trusty:
На странице кликните по архитектуре, в данном случае all, для загрузки:
Осталось только выбрать зеркало для загрузки и скачать файл:
Затем установить его с помощью dpkg:
Но не забудьте, что вам нужны все зависимости. Чтобы не делать это вручную, можно добавить репозиторий этого пакета в /apt/sources.list и заставить пакетный менеджер работать вместо вас. В нашем случае на сайте сказано, что нужно добавить строчку:
deb http://cz.archive.ubuntu.com/ubuntu trusty-updates main
Можно добавить только ее, но не всегда все зависимости будут находиться только в этом репозитории, так что будет лучше добавить сразу все репозитории нужной версии Ubuntu в этот файл. Например, для версии Trusty нужно добавить такие репозитории:
deb http://cz.archive.ubuntu.com/ubuntu trusty-updates main universe
deb http://security.ubuntu.com/ubuntu trusty-security main universe
deb http://cz.archive.ubuntu.com/ubuntu trusty main universe
Не забудьте обновить список пакетов:
Далее можно установить нужную вам программу:
sudo apt install php5
После завершения, обязательно удалите все новые репозитории иначе при следующем обновлении, они сломают вам систему.
Выводы
В этой небольшой статье мы рассмотрели как исправить ошибку package php5 has no installation candidate, такой же процесс решения подойдет для любого подобного пакета. Если у вас остались вопросы, спрашивайте в комментариях!
🔐 Установка расширения PHP mcrypt на Ubuntu 20.04 | 18,04
PECL – это репозиторий для всех известных расширений PHP, откуда пользователи могут загружать и размещать разработанные расширения PHP.
Укажите вашей ОС вытащить последний список пакетов, доступных в репозиториях:
Установите средства разработки на Ubuntu:
Сначала вам нужно установить расширения PHP, dev и pear в Ubuntu 20.04 | 18.04.
Убедитесь, что команда pecl доступна в вашей системе.
Давайте поищем расширение mcrypt.
Когда вы видите подсказку
Нажмите Enter для автоопределения.
Включите расширение в файле php.ini. Ubuntu 20.04:
Ubuntu 18.04:
Если вы используете приложение, размещенное на веб-сервере Apache или Nginx, перезапустите их.
Спасибо большое автору, не знал что PHP модули так можно инсталлить!
Anything in here will be replaced on browsers that support the canvas element
Не могу загрузить расширение mcrypt
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения 13
1 Тема от Slipa 2007-03-18 03:15:50
Тема: Не могу загрузить расширение mcrypt
После установки и настройки phpMyAdmin 2.10.0.2 внизу страницы сообщение:
! не могу загрузить расширение mcrypt,
проверьте конфигурацию PHP, пожалуйста
Подскажите, пожалуйста, можно ли работать, не подключая это расширение? На что оно влияет?
И, собственно, как подключить это расширение (строчку extension=php_mcrypt.dll в php.ini я уже раскомментировала).
Заранее спасибо.
2 Ответ от Slipa 2007-03-18 03:31:50
Re: Не могу загрузить расширение mcrypt
С подключением уже разобралась сама. Скачала libmcrypt.dll, пихнула ее в system32 и все готово.
Остался только вопрос: нужно ли мне, как полному чайнику, вообще подключать это расширение? Или на начальном этапе можно не обращать внимание на такое сообщение?
3 Ответ от Lokki 2007-03-18 08:57:56
Re: Не могу загрузить расширение mcrypt
Остался только вопрос: нужно ли мне, как полному чайнику, вообще подключать это расширение? Или на начальном этапе можно не обращать внимание на такое сообщение?
4 Ответ от Slipa 2007-03-19 13:07:32
Re: Не могу загрузить расширение mcrypt
5 Ответ от Alexandr + 2009-04-18 18:57:17 (изменено: Alexandr +, 2009-04-18 18:58:29)
Re: Не могу загрузить расширение mcrypt
Всем здравствуйте! Скачал версию phpmyadmin 2.11.9.5 поставил, открывается но внизу надпись «Невозможно загрузить расширение mcrypt! Проверьте настройки PHP.» Базу данных создал, новые таблицы создаются. Но при попытке импорта таблиц созданных на локальном хосте (версия phpmyadmin 2.5.6) пишет «Ошибка при чтении файла». Что это може быть, с чем это связано и как это можно устранить. Помогите пожалуйста. Предупреждаю я чайник из чайников сталкиваюсь с этим в первый раз.
6 Ответ от Hanut 2009-04-18 21:00:57
Re: Не могу загрузить расширение mcrypt
Alexandr +
По расширению mcrypt: его необходимо подключить в PHP. Подключение зависит от того, что за веб сервер у вас. Если это Денвер, то, кажется потребуется скачать архив с библиотеками и подключить extension=php_mcrypt.dll в конфигурационном файле PHP (php.ini). Если PHP установлен самостоятельно, то следует найти библиотеки вашей версии PHP и также подключить php_mcrypt.dll.
7 Ответ от Alexandr + 2009-04-19 15:00:24
Re: Не могу загрузить расширение mcrypt
Alexandr +
По расширению mcrypt: его необходимо подключить в PHP. Подключение зависит от того, что за веб сервер у вас. Если это Денвер, то, кажется потребуется скачать архив с библиотеками и подключить extension=php_mcrypt.dll в конфигурационном файле PHP (php.ini). Если PHP установлен самостоятельно, то следует найти библиотеки вашей версии PHP и также подключить php_mcrypt.dll.
Установите php-mcrypt на CentOS 6
Я уже некоторое время пытаюсь установить php-mcrypt. Каждый раз, когда я получаю «нет пакета php-mcrypt доступны.- вернулся ко мне. Вот что я пробовал:
Я обязательно установил репозиторий EPEL. На данный момент я просто в тупике. Я следил за каждым учебником, который я нашел в интернете, и получаю ту же ошибку.
Примечания: Иди ПапочкаVPS,CentOS 6.4 64-бит, mcrypt установлен без заминки, но нет php-mcrypt.
17 ответов:
у меня была та же проблема, и я обнаружил, что предыдущие предложения дали мне достаточно информации, чтобы заставить его работать на моем сервере. Вот что я сделал:
2) Установите его через:
The yum update обновил ссылку на репозиторий на моем сервере, а затем вторая команда получила то, что мне нужно 🙂
3) перезагрузите веб-сервер. Для моей установки apache я сделал:
1) Получить РЕПО от
2) Установите его через:
3) отредактируйте mcrypt.ini
наконец 4) перезапустите ваш веб-сервер:
я запускаю эти шаги в CentOS 6.3 (64) на Azure из образа Microsoft Linux
надеюсь, что это помогает вам.
С Наилучшими Пожеланиями.
обновленный ответ для centos 7
Edit: см. комментарии к обновление репозиториев.
просто головы до тех, кто заинтересован. Я был в состоянии понять это. Это было намного проще, чем я думал. Под менеджером WHM перейдите к: Главная > > программное обеспечение > > EasyApache (обновление Apache) >> там у вас есть два варианта «построить профиль» или «настроить на основе профиля». Я пошел настроить, чтобы сохранить мою текущую конфигурацию, а затем следовал инструкциям на странице. В конце концов нашлось место для добавления и удаления модулей PHP. Там вы найдете когда-либо модуль под солнцем. Просто выберите тот, который вы хотите и перестроить профиль. Это было действительно так просто.
надеюсь, это кому-то поможет!
У меня слишком много проблем при установке php-mcrypt с помощью epel-release-6-8.нет.оборот в минуту. У него есть некоторые проблемы с зависимостью.
тогда я попробовал по-другому.
затем установить libmcrypt
установленный php-mcrypt с помощью следующей команды
Если php_mcrypt установлен на 64bit, но отсутствует в программе установки, проверьте путь расширения:
vi / etc / php.d / mcrypt.ini
затем просто используйте команду yum для установки пакета mcrypt
есть два способа решить эту проблему:
для меня я должен был добавить репозиторий EPEL. Именно оттуда пришел мой php-mcrypt:
вы можете включить РЕПО EPEL с инструкциями здесь:
установка php-mcrypt из Repoforge работала для меня отлично. Просто добавьте Repoforge из http://repoforge.org/ и просто запустите yum install php-mcrypt.
для меня это работает :
yum install php-mcrypt*
а затем перезапустите службу httpd
service httpd restart
я попробовал решение @ VenomFangs, но первый шаг мне не понадобился. У меня уже была установлена более новая версия EPEL. Итак, первый шаг после этого не был полезен, я вернулся к снимку, который я сделал до внесения изменений, и я просто использовал команды install и restart выше.
выпуск CentOS Linux 7.2.1511 (основной)
PS: Я знаю, что это не тема, но если кому-то это нужно, ключевое слово может помочь. Мне нужно было сделать это из-за этой ошибки на PrestaShop. Два ключевых слова, которые я был бы рад использовать, чтобы найти эту информацию : «php_mycrypt.dll «» php_mcrypt.DLL-файл»
Fatal error: Call to undefined function mcrypt_encrypt() in /classes/Rijndael.php on line 46
редактировать 10/06/2016:
Еще одно решение Prestashop, чтобы попробовать в «Расширенные параметры», «производительность», «шифрование» (FR: Chiffrement), «Use the custom BlowFish class.» вместо «Use Rijndael with mcrypt lib. (you must install the Mcrypt extension).»
У меня была такая же проблема в centos 6.5
окончательное решение ниже работало для меня
Если есть какие-либо зависимости вы можете скачать же с помощью http://dl.fedoraproject.org/pub/epel/6/x86_64/
сначала узнайте свою версию PHP. В моем случае 5.6.
PHP 5.6.27 (cli) (built: Oct 15 2016 21:31:59) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
sudo yum search mcrypt
sudo service httpd restart
для php 7 для установки mcrypt выполните:
Centos: sudo yum install php7. 0-mcrypt to install
На Ubuntu: sudo apt-get install php7. 0-mcrypt
если вы хотите перекомпилировать PHP С mcrypt включить.