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
Eaykin
источник
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

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

Rreimi
источник
0

Попробуйте этот код:

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
service apache2 restart
Индраджит Сингх
источник
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

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

Alexventuraio
источник
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

SharkWeb
источник
0

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

Чукки Нзе
источник