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

88

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

Я решил большинство из них, но я не могу заставить работать библиотеку mCrypt. Пакет установлен, поэтому мне не нужно его использовать. Сервер работает, и все кажется прекрасным, но когда я пытаюсь запустить php artisan serve с Laravel 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
  • 0
    Вы уверены, что установлен dpkg --get-selections | grep php5
  • 0
    apt-get установить php5-mcrypt?
Показать ещё 3 комментария
Теги:

10 ответов

273
Лучший ответ

Я думаю, что нашел решение на launchpad.net.

Итак:

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

Это сработало для меня. Надеюсь, это будет полезно и для других людей.

  • 0
    Спасибо за этот ответ, в OpenCart 1.5.6 эта проблема вызывала ошибку ... Неустранимая ошибка: вызов неопределенной функции mcrypt_create_iv () в / <path here> /system/library/encryption.php в строке 8
  • 0
    Следует отметить, что это решение не работал для меня с Laravel / Artisan , пока я SYM-сшитый в /etc/php5/cli/conf.d
Показать ещё 5 комментариев
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.
14

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

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

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

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

extension=mcrypt.so

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

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 .
  • 0
    @machineaddict Для меня добавление 'extension = mcrypt.so' сработало после установки mcrypt. Lubuntu 14.04 Трасти Тар. Я не был автоматически загружен
Показать ещё 1 комментарий
11

От Ubuntu 13.10 до 14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

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

  • 0
    Для меня: 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/ и sudo cp /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/ приведенные выше команды. Взято с www.devraju.com
3

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

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

apt-get install php5-mcrypt

Найдите путь

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

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

расширение =/USR/Library/php5/20121212/mcrypt.so

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

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

  • 0
    Мне просто нужно было apt-get установить php5-mcrypt, а затем перезапустить службу php5-fpm на моем Ubuntu 14.04.
  • 0
    Хорошо .. В моем случае необходимо было найти библиотеку mcrypt вручную, потому что расширение было пустым в файле mcrypt.ini.
1

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

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini
service apache2 restart
0

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

0

только что найденный на php.net

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

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

У меня была та же проблема с 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

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

sudo aptitude reinstall php5-mycript

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

  • 0
    у меня не сработало

Ещё вопросы

Сообщество Overcoder
Наверх
Меню