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

После того как я обновил свою систему с 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

Ответ 1

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

Итак:

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

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

Ответ 2

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

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

sudo service apache2 restart

Ответ 3

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

Ответ 4

От Ubuntu 13.10 до 14.04:

sudo php5enmod mcrypt
sudo service apache2 restart

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

И он отлично работает!

Ответ 8

только что найденный на 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

Ответ 9

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

Ответ 10

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

sudo aptitude reinstall php5-mycript

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