mCrypt отсутствует после обновления Ubuntu до 13.10


92

После того, как я обновил свою систему с Ubuntu 13.04 до 13.10, возникло несколько проблем с конфигурациями apache, mysql и php.

Я решил большинство из них, но мне кажется, что библиотека mCrypt не работает. Пакет установлен, поэтому мне не нужно его получать. Сервер работает, и все вроде нормально, но когда я пытаюсь запустить php artisan serveLaravel 4, я получаю сообщение о том, что требуется mCrypt.

Я сделал , php --ri mcryptи выход был Extension 'mcrypt' not present. я попытался положить extension=mcrypt.soв , /etc/php5/apache2/php.iniно это не сработало.

Любые идеи?

Выход dpkg --get-selections | grep php5

libapache2-mod-php5         install
php5                        install
php5-cli                    install
php5-common                 install
php5-gd                     install
php5-json                   install
php5-mcrypt                 install
php5-mysql                  install
php5-readline               install

Вы уверены, что он установленdpkg --get-selections | grep php5
tlenss

apt-get install php5-mcrypt?
Лайош Верес

1
Я обновил вопрос выводом команды @tlenss. sudo apt-get install php5-mcryptвыводит, что она установлена ​​и последняя версия
Vuk Stanković

2
Может быть, ответ здесь поможет вам askubuntu.com/questions/360646/…
tlenss

Обнаружил ошибку панели запуска на этой странице, которая дала мне решение. Спасибо
Вук Станкович

Ответы:


273

Думаю, я нашел решение на launchpad.net .

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt
sudo service apache2 restart

Это сработало для меня.


Спасибо за этот ответ, в OpenCart 1.5.6 эта проблема вызвала ошибку ... Неустранимая ошибка: вызов неопределенной функции mcrypt_create_iv () в / <путь здесь> /system/library/encryption.php в строке 8
AndyGaskell

Следует отметить, что это решение не работало для меня с Laravel / Artisan, пока я также не связал символьную ссылку в /etc/php5/cli/conf.d
Дэвид М.

Я получаю эту ошибку. Какой код мне нужно обновить? В каком файле мне нужно обновить? Пожалуйста, предложите ..
user2089987

Это приводило к тому, что Webgility не синхронизировался. Его установка все исправила. Благодарность!
Райан

2
В Ubuntu 14.04 / PHP5.5 первая строка не нужна. php5enmod делает ссылку.
Wolk

27

У меня была эта проблема с Ubuntu 14.04, и я сделал следующее, чтобы решить ее:

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart

1
Это то, что у меня сработало, у меня PHP версии 5.5.9-1ubuntu4.4, и у меня не было каталога /etc/php5/conf.d.
flcoder

14

У меня также есть эта проблема с Ubuntu 14.04 после установки.

Сначала включите mcrypt

sudo gedit /etc/php5/apache2/php.ini

Добавьте эту команду в любую строку

extension=mcrypt.so

Создайте папку conf.d в / etc / php5

sudo mkdir conf.d

И внутри этой папки создайте файл mcrypt.ini

sudo gedit mcrypt.ini 

Затем добавьте эту команду в этот файл

extension=mcrypt.so

Затем создайте ссылку на файл

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available

Включить модуль mcrypt

sudo php5enmod mcrypt

Перезагрузите apache

sudo service apache2 restart

3
Вам не нужно extension=mcrypt.soв php.ini. Он работает и без него, поскольку расширения php (например, mcrypt) находятся в отдельных .iniфайлах.
machineaddict

@machineaddict Для меня добавление extension = mcrypt.so сработало после установки mcrypt. Lubuntu 14.04 Надежный Thar. Я не загружался автоматически
Clain Dsilva

11

Начиная с Ubuntu 13.10 по 14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

Работает для меня.


Для меня: WARNING: Module mcrypt ini file doesn't exist under /etc/php5/mods-available. Однако файл находился в другом месте. sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/и выполнил приведенные выше команды. Взято с www.devraju.com
machineaddict

3

У меня также была эта проблема с Ubuntu 14.04 и Nginx, но советом для меня было перезапустить службу FPM, поэтому я сделал:

Установить библиотеку

apt-get установить php5-mcrypt

Найдите путь

updatedb && найдите mcrypt.so

Задайте путь к mcrypt.so внутри файла mcrypt.ini, расположенного в /etc/php5/mods-available/mcrypt.ini

расширение = / usr / lib / php5 / 20121212 / mcrypt.so

А затем перезапустите службу FPM

перезапуск службы php5-fpm


Мне просто нужно было apt-get install php5-mcrypt, а затем перезапустить службу php5-fpm на моем ubuntu 14.04.
deanpodgornik

Приятно .. В моем случае нужно было найти mcrypt lib вручную, потому что расширение было пустым в файле mcrypt.ini.
Дерик Лима

0

Другое решение, если пакет уже установлен:

sudo aptitude reinstall php5-mycript

Это сработало для меня после обновления



0

У меня была такая же проблема с PHP 5.5.14, работающим в Mac OS X Yosemite. Я пытался установить Laravel 5.0. И когда я попытался создать новый проект, я получил ошибку, как показано ниже (даже когда я пытался запустить сервер laravel с помощью php artisan serve

Alejandros-MacBook-Pro:Documents Lexynux$ laravel new blog
Crafting application...
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Generating optimized class loader
Compiling common classes
Compiling views
PHP Notice:  Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' in /Library/WebServer/Documents/blog/config/app.php on line 83
Application key [CCOPocoMjnJTx4AFXk64wqyTKyo3BlHq] set successfully.
Application ready! Build something amazing.
Alejandros-MacBook-Pro:Documents Lexynux$ 

Поэтому я просто добавил строку ниже в конец моего файла php.ini с помощью редактора nano:

extension=mcrypt.so
sudo nano /etc/php.ini

Наконец, просто перезапустите Терминал и перезапустите сервер приложений laravel с помощью

php artisan serve

И работает нормально!


0

только что нашел на php.net

Обратите внимание: для Ubuntu при простой установке php5-mcrypt mcrypt не работал. Чтобы включить его, вам необходимо выполнить следующие команды от имени пользователя root:

apt-get install php5-mcrypt
mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
php5enmod mcrypt
service apache2 restart

http://php.net/manual/en/mcrypt.installation.php#114609


0

Иногда эта «проблема» возникает из-за того, что вы ввели команду artisan на локальном компьютере, а не на виртуальной машине. Если вы используете Homestead, mcrypt уже установлен. Считайте это напоминаниемhomestead ssh

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.