Я делал это много раз:
sudo aptitude install php5-mcrypt
sudo apache2ctl restart
aptitude говорит, что mcrypt установлен. Я переустанавливал его уже 3 раза. Я перезапускал apache около 20 раз с момента его установки. Когда я смотрю на phpInfo, я не вижу в списке mcrypt. Когда я пытаюсь выполнить свой код, он говорит, что функция mcrypt (выберите одну - любую) не существует. mcrypt явно не включен.
У кого-нибудь есть идеи, что может быть не так? Я не знаю, какие части должны быть, где и как все это должно сочетаться.
Я установил PHP 5.5.3
apt-get
/aptitude
)? Пакетphp5-mcrypt
может настроить расширение только дляphp.ini
s, о котором он «знает». Во-вторых, я не сейчасapache2ctl
перезагружаю модули. «Нормальный» способ перезапустить Apache - это что-то вродеsudo service apache2 restart
. В-третьих, как PHP подключен к вашему Apache? Если вы используете что-то вроде (f) cgi или php-fpm (в отличие от mod-php), вам, вероятно, придется перезапустить PHP самостоятельно, в дополнение к перезапуску Apache.php.ini
указано в выходных данныхphpinfo
(примерно с 5 по 7 записи)? Это должен быть файл в/etc/php5/
. Если вы ищете в этом файлеmcrypt
, что получается?mcrypt
посылке. Это программа командной строки, которая использует libmcrypt, как и расширение PHP. Поэтому вам нужно убедиться, что пакетlibmcrypt4
установлен. Есть лиphp.ini
фрагмент/etc/php5/conf.d/mcrypt.ini
? Это должно загрузить библиотеку. Этот фрагмент загружен PHP (см.phpinfo
)? Опять же, вы пытались перезапустить Apachesudo service apache2 restart
вместоapache2ctl
?Ответы:
Попробуй это
источник
У меня была похожая проблема на Ubuntu 13.10. После запуска composer установил ту же ошибку, оканчивающуюся на.
Я установил
mcrypt
иphp5-mcrypt
с aptitude, и всеphp -m
еще не показывалmcrypt
в качестве загруженного расширения:Я побежал
updatedb
, а потомlocate mcrypt
. Я нашелmcrypt.ini
ин/etc/php5/conf.d
. Все остальные расширения (например, json) имели свои файлы .ini в/etc/php5/apache2/conf.d
и/etc/php5/cli/conf.d
. Оба были ссылками на../../mods.available
.Итак, я затем переехал
mcrypt.ini
в/etc/php5/available-modules
и установите ссылки:И аналогично для
/etc/php5/apache2/conf.d
.И вуаля, это обнаружилось в
php -m
!источник
Похоже, отсутствует фрагмент кода ini, который загружает libmcrypt при вызове PHP Apache. Должен быть файл
/etc/php5/apache2/conf.d/mcrypt.ini
с таким содержимымВы должны иметь возможность скопировать его из других конфигураций PHP, например
/etc/php5/cli/conf.d/mcrypt.ini
или/etc/php5/conf.d/mcrypt.ini
, в зависимости от того, что установлено в вашей системе.источник
Модуль mcrypt не включен по умолчанию. Включите модуль mcrypt, а затем перезапустите apache ( credit )
источник
Ну вот и все. Похоже, иногда мы находимся в поиске наиболее запутанного способа сделать что-то столь же простое, как 'enmod'; ) Как Boinst говорит:
sudo php5enmod mcrypt
. Затем перезагрузите Apache.источник