Попытка настроить Laravel и продолжать получать эту ошибку. Я установил mcrypt через варево, и он находится в / usr / local / Cellar. Есть предположения? .. Это не отображается в терминальной команде php -m, если это имеет значение. Я запускаю Mountaion Lion с собственным веб-сервером macs.
Вам также нужно включить его в файл php.ini
и, возможно, перезапустить Apache.
В php.ini
вы найдете ;mcrypt.so
и удалите ;
от него.
Или, если его там нет, просто добавьте mcrypt.so
где-нибудь.
Ubuntu или любые пользователи Linux на базе Debian могут установить необходимый пакет с помощью apt-get
:
sudo apt-get install php5-mcrypt
Не забудьте перезапустить веб-сервер:
sudo service apache2 restart
Если он все еще не работает, попробуйте связать файл конфигурации с соответствующей конфигурационной папкой для веб-сервера. Спасибо dave1010 за этот намек в комментариях.
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/apache2/conf.d/ # for Apache sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/cli/conf.d/ # for CLI
И снова перезапустите веб-сервер:
sudo service apache2 restart
Возможно, если вы еще не работаете, вам также нужна строка, показанная @RahulPrasad, с php5enmod mcrypt
.
Попробуйте sudo php5enmod mcrypt && sudo service apache2 restart
Вы установили mcrypt
когда вам действительно нужен php56-mcrypt
php-модуль.
Вы указали в своем вопросе, что вы можете увидеть mcrypt
установленный в /usr/local/Cellar
и что вы используете OSX
. Таким образом, самый простой способ установить PHP-модуль mcrypt на OSX с использованием Homebrew :
// assuming you have php56 brew install php56-mcrypt
Если homebrew не может найти правильный пакет, вам может понадобиться использовать репозитории PHP, найденные в GitHub :
brew tap homebrew/dupes brew tap homebrew/versions brew tap homebrew/homebrew-php
Теперь, когда вы выдаете команду brew search mcrypt
, вы должны увидеть что-то вроде:
libtomcrypt mcrypt php53-mcrypt php54-mcrypt php55-mcrypt php56-mcrypt
Несколько других плакатов отметили необходимость редактирования файла php.ini
. Это будет лишним, так как доморощенный позаботится об активации модуля для вас. Он помещает файл конфигурации в /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini
У вас не установлено расширение PHP mcrypt.
Для Mac я выполнил следующие инструкции: mcrypt на Mac 10.7 или 10.8 .
Они выглядят как много, но это не так, в нем очень легко следить!
Возможно, вы установили mycrypt, но не имеете установленного / включенного модуля php_mcrypt.
Перейдите в папку CLI в вашей установке php и найдите там php.ini и включите mcrypt. Терминал иногда использует другой php.ini, который обычно находится в папке CLI.
Я установил php и mcrypt с помощью Homebrew, но я все еще испытывал эту ошибку после того, как несколько раз запустил brew update
. Я думаю, что моя установка только немного согнулась с течением времени.
Оказывается, мой php настраивался из /private/etc/php.ini , а не /usr/local/etc/php/5.4/php.ini, как рекомендует Homebrew. Mcrypt даже не включен из /usr/local/etc/php/5.4/ext-mcrypt.ini, который не имеет большого смысла, учитывая, что php -i
производит это для меня:
Configuration File (php.ini) Path => /usr/local/etc/php/5.4 Loaded Configuration File => /usr/local/etc/php/5.4/php.ini Scan this dir for additional .ini files => /usr/local/etc/php/5.4/conf.d Additional .ini files parsed => /usr/local/etc/php/5.4/conf.d/ext-mcrypt.ini
Мое решение:
/private/etc/php.ini
в качестве суперпользователя extension="/usr/local/Cellar/php54-mcrypt/5.4.28/mcrypt.so"
и сохранить sudo apachectl restart
Просто примечание для людей, которые недавно обновились до PHP 7. Библиотека MCRYPT устарела . Если вы перешли на PHP 7 и теперь видите эту ошибку, вот почему. Вы должны переключиться на альтернативную библиотеку, некоторые альтернативы упоминаются в этом потоке .