Я установил Laravel на новую версию Xubuntu 14.04. Насколько я могу судить, Mcrypt установлен и работает, но Laravel по-прежнему сообщает, что не может его найти.
У меня установлены все нужные пакеты, и модуль, кажется, включен, я определил это, выполнив некоторые базовые диагностические проверки.
Mcrypt находится в списке установленных модулей php, когда я запускаю:
php -m
Я получаю «Loaded» из терминала, когда я бегу:
php -r 'echo PHP_EOL . (extension_loaded("mcrypt") ? "loaded" : "not loaded") . PHP_EOL . PHP_EOL;'
Это вывод php -i | grep mcrypt
:
/etc/php5/cli/conf.d/20-mcrypt.ini,
Registered Stream Filters => zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, mcrypt.*, mdecrypt.*
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value
PWD => /var/www/html/mcrypttest
_SERVER["PWD"] => /var/www/html/mcrypttest
Я использовал новую установку Laravel, чтобы проверить это, запустив:
git clone https://github.com/laravel/laravel mcrypttest
cd mcrypttest/
composer install
Кто-нибудь может подсказать, как диагностировать, почему Laravel не может получить доступ к mcrypt?
Ответ найден здесь: https://stackoverflow.com/a/26168868/3060414
исправление ошибки браузера (если у вас возникла ошибка mcrypt в браузере при доступе к локальной странице индекса laravel)
sudo nano /etc/php5/apache2/php.ini
добавьте следующую строку в раздел динамически скомпилированных расширений php ini
extension=mcrypt.so
перезагрузите сервер apache, очистите кэш laravel и все работает
Других решений пока нет …