Расширения с поддержкой Интернета и расширения с поддержкой командной строки могут различаться. Запустите php -mв своем терминале и проверьте, есть ли mcryptв списке. Если это не так, проверьте, откуда командная строка загружает ваш php.iniфайл, запустив его php --iniс вашего терминала.
В этом php.iniфайле вы можете включить расширение.
OSX
Я слышал о людях на OSX, сталкивающихся с проблемами из-за терминала, указывающего на нативный PHP, поставляемый с OSX. Вместо этого вы должны обновить свой профиль bash, чтобы включить фактический путь к вашему PHP. Примерно так (на самом деле я не использую OSX, так что это может быть не 100%):
export PATH=/usr/local/php5/bin:$PATH
Ubuntu
В более ранних версиях Ubuntu (до 14.04) при запуске sudo apt-get install php5-mcryptон фактически не устанавливает расширение в mods-available. Вам нужно будет символическую ссылку.
это сработало для меня на Ubuntu, спасибо! Странно, как на sudo apt-get install php5-mcryptсамом деле не установить расширение полностью.
Аристидес
Ubuntu 13.10 - Я также должен был установить сам mcrypt
Ondrej Galbavý
1
Очевидно, он уже установил mcrypt ini в mods-available, я просто не знал о команде php5enmod. Использование этого заставляет это работать как очарование. Спасибо!
imkingdavid
Так вот, у меня есть mcrypt, перечисленный, когда я иду php -m, когда я иду, который php говорит / usr / local / bin / php. Я пытался установить mcrypt с brew и, похоже, сработало. Но Laravel по-прежнему говорит, что требуется расширение Mcrypt PHP.
Марэ Россоув
1
Как и @imkingdavid, мне также не требовалась символическая ссылка. php5enmod было достаточно. Ubuntu 14.04 LTS
Бретт
340
У вас установлен MAMP ?
Используйте which phpв терминале, чтобы увидеть, какую версию PHP вы используете.
Если это не версия PHP от MAMP, вы должны отредактировать или добавить .bash_profileв домашний каталог пользователя, то есть:cd ~
Отредактировано: сначала вы должны использовать команду, cd /Applications/MAMP/bin/phpчтобы проверить, какую версию PHP из MAMP вы используете, а затем заменить на версию PHP выше.
Затем restartтерминал, чтобы увидеть, какой PHP вы используете сейчас.
Конечно, вам не нужен MAMP, чтобы получить Макрипта. Этот ответ предназначен только для людей, у которых на компьютере установлено несколько версий PHP, например, XAMPP или MAMP или другие.
JustinHo
Точно так же для пользователей AMPPS: export PATH=/Applications/AMPPS/php-5.4/bin:$PATH... при условии, что вы снимаете для 5.4.xx, там также есть 5.3 и 5.5.
Джоэл Меллон
6
Все не используют MAMP, у вас есть ответ для остальных людей?
TuGordoBello
2
Я подумал, что cd ~очень важно, вы должны открыть .bash_profileсуществующее там, ТАКЖЕ важно, чтобы вы закрыли свой терминал и снова открыли его, чтобы загрузить новые переменные bash. Просто убедитесь, что запустили какой php, чтобы убедиться, что ваши изменения применены, счастливого кодирования!
wired00
142
Для тех, кто использует XAMPP 1.7.3 и Mac
Перейти к терминалу
Войти which php
Если это говорит /usr/bin/php, тогда переходите к 3.
Введите sudo nano ~/.bash_profile(или sudo vim ~/.bash_profileесли вы знаете, как его использовать)
Затем вставьте это export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
Ctrl+Oзатем введите, чтобы сохранить, затем Ctrl+Xвыйти.
Тип cd ~
тип . .bash_profile
перезапустить терминал.
Введите which php. Если вы все сделали правильно, он должен совпадать с путем в # 4.
Причина ошибки mcrypt в том, что ваш Mac использует свой собственный php, вам нужно заменить его на тот, что есть у xampp.
PS Я бы порекомендовал использовать MAMP для Laravel 4 для пользователей Mac, эта проблема будет решена вместе с ошибкой в информации о php-файле без проблем, а php-версия xampp настолько устарела.
Я волновался, что это не будет работать с родным OSX PHP, но я только установил это, и мне не пришлось возиться с моим PATH или чем-то еще. Просто работает. Хороший.
Лорен
3
Было бы здорово добавить этот ответ к ведущим ответам в этой теме, чтобы сделать его более полным ресурсом. Спасибо за быстрый совет, как упоминала Лорен, это действительно решает проблему.
Брайан Райнер
4
Это на самом деле $ brew install homebrew/php/php55-mcrypt, иначе получилError: No available formula with the name "php55-mcrypt"
Коннор Лич
47
Используя Ubuntu, просто
sudo php5enmod mcrypt
сделал трюк для меня. Вам не нужно перезапускать Apache, так как вам нужно использовать PHP только из CLI.
Я побежал sudo aptitude -y install php5-mcrypt, а затем sudo php5enmod mcryptи sudo service php5-fpm restart. (Я пропустил шаг мягкого связывания). Это сработало :)
депутат Адитья
26
Заставить Laravel работать на Apache
Версия PHP: PHP 5.5.9
Версия Ubuntu: 14.04
У меня был рабочий проект Laravel на окнах. когда я скопировал его на сервер Ubuntu, я начал получать ошибку mcrypt. это после многих часов проб и ошибок
заставить команду ремесленника работать
(если у вас ошибка mcrypt при использовании инструмента командной строки artisan)
Я сделал много проб и ошибок, поэтому каждый раз, когда я запускал команду php5enmod, у меня появлялись сообщения об ошибках. но при новой установке не было сообщений об ошибках. после этого шага я получил команду ремесленников, работающих
Если вы работаете над образом php docker , вам также нужно запустить docker-php-ext-install mcrypt. Испытано на изображение: php:5.6.31-apache. Без этого php -mне показывает mcrypt.
Ева
19
Для установок php-fpm в Ubuntu 14.04 у меня работало следующее:
sudo apt-get install php5-mcrypt
Это создаст mcrypt.iniфайл внутри/etc/php5/mods-available/
Мне нужно было создать символическую ссылку на мой файл /etc/php5/conf.d/mcrypt.ini в следующих папках /etc/php5/apache2/conf.d/mcrypt.ini и /etc/php5/cli/conf.d /mcrypt.ini
Вам нужно все в одной среде. Вы можете использовать MAMP или XAMPP или любые другие инструменты. После установки одного из этих инструментов вам необходимо отредактировать (создать) ваш .bash_profile (при условии, что вы используете bash).
Или даже простой и более профессиональный вы можете использовать Laravel Homestead.
После попыток снова и снова изменить .bash_profile с каталогом MAMP, я изменил права доступа к файлу для каталога MAMP php и смог получить 'what php', чтобы показать правильный каталог. Проблема была в том, что другие функции не работали, такие как 'php -v'.
Это помогло моей конкретной установке. Мне пришлось настроить PATH в соответствии с обновленной версией PHP, но как только я это сделал, все заработало!
Введите команду which php в терминале, чтобы увидеть, какую версию PHP вы используете. Если это не версия PHP от MAMP, переменная $ PATH, используемая Bash, должна быть обновлена.
Во-первых, вы должны использовать команду "cd / Applications / MAMP / bin / php", чтобы проверить, какая версия php из MAMP и записать версию (например, php5.6.7).
Как только вы узнаете версию, вы должны отредактировать ~/.bash_profileфайл (то есть тот, .bash_profileкоторый находится в вашем домашнем каталоге) и добавить строку экспорта:
Убедитесь, что вы заменили php5.6.7 на версию PHP, которую вы выбрали в MAMP.
Как только файл был сохранен, убедитесь, что вы закрыли, закрыли свой терминал и снова открыли его. Как только это будет сделано, вы будете использовать PHP, который поставляется с MAMP.
Один из способов легко найти строку, которую вы должны поместить в свой файл, .bash_profile- запустить следующую команду в вашем терминале:
echo export PATH=`cat /Applications/MAMP/conf/apache/httpd.conf \
| grep php | grep -i LoadModule | head -n1 \
| sed -e 's/^[^\/]*\/\(.*\)\/mod.*/\/\1/'`/bin:\$PATH
Копирование и вставка этих трех строк в ваш терминал приведет к правильному выводу версии PHP, выбранной на панели управления MAMP.
Использование Homebrew / MacPorts
Убедитесь , что ваш pathсодержит /usr/local/bin/(Homebrew) или /opt/local/bin(MacPorts) , если вы используете PHP , который поставляется с любым из этих двух менеджеров пакетов.
Проверка пути PHP с помощью MacPorts
Вы можете найти точное местоположение PHP с помощью MacPorts с помощью следующей команды:
port contents php70 | grep bin/php
Обратите внимание, что вы должны заменить php70версию PHP, которую вы установили.
Я использую PHP 7.0.x, поэтому измените «php70» на вашу версию, если вы используете другую версию.
Как указано в других ответах, вы можете увидеть свою версию PHP с $ php -v.
Laravel больше не нуждается в mcryptрасширении . mcryptустарел, последнее обновление libmcrypt было в 2007 году. Laravel 4.2 тоже устарел и больше не поддерживается. Лучшее (= безопасное) решение - это обновить до Laravel> 5.1 (до Laravel 5.2 нет LTS).
Хотя ваш комментарий технически может быть правдой, мы стремимся включить некоторые объяснения в ваши ответы здесь, на StackOverflow. Кроме того, кажется, что OP уже установлен mcrypt, не могли бы вы рассказать, почему вы считаете, что это решит проблему с OP?
milo526
0
в Ubuntu 14.04 на основе вашей версии PHP: 5.6,7.0,7.1,7.2,7.3
Ответы:
Расширения с поддержкой Интернета и расширения с поддержкой командной строки могут различаться. Запустите
php -m
в своем терминале и проверьте, есть лиmcrypt
в списке. Если это не так, проверьте, откуда командная строка загружает вашphp.ini
файл, запустив егоphp --ini
с вашего терминала.В этом
php.ini
файле вы можете включить расширение.OSX
Я слышал о людях на OSX, сталкивающихся с проблемами из-за терминала, указывающего на нативный PHP, поставляемый с OSX. Вместо этого вы должны обновить свой профиль bash, чтобы включить фактический путь к вашему PHP. Примерно так (на самом деле я не использую OSX, так что это может быть не 100%):
Ubuntu
В более ранних версиях Ubuntu (до 14.04) при запуске
sudo apt-get install php5-mcrypt
он фактически не устанавливает расширение вmods-available
. Вам нужно будет символическую ссылку.На всех версиях Ubuntu вам нужно будет включить мод после его установки. Вы можете сделать это с
php5enmod
.источник
sudo apt-get install php5-mcrypt
самом деле не установить расширение полностью.У вас установлен MAMP ?
Используйте
which php
в терминале, чтобы увидеть, какую версию PHP вы используете.Если это не версия PHP от MAMP, вы должны отредактировать или добавить
.bash_profile
в домашний каталог пользователя, то есть:cd ~
В
.bash_profile
, добавьте следующую строку:Отредактировано: сначала вы должны использовать команду,
cd /Applications/MAMP/bin/php
чтобы проверить, какую версию PHP из MAMP вы используете, а затем заменить на версию PHP выше.Затем
restart
терминал, чтобы увидеть, какой PHP вы используете сейчас.И это должно работать сейчас.
источник
export PATH=/Applications/AMPPS/php-5.4/bin:$PATH
... при условии, что вы снимаете для 5.4.xx, там также есть 5.3 и 5.5.cd ~
очень важно, вы должны открыть.bash_profile
существующее там, ТАКЖЕ важно, чтобы вы закрыли свой терминал и снова открыли его, чтобы загрузить новые переменные bash. Просто убедитесь, что запустили какой php, чтобы убедиться, что ваши изменения применены, счастливого кодирования!Для тех, кто использует XAMPP 1.7.3 и Mac
which php
/usr/bin/php
, тогда переходите к 3.sudo nano ~/.bash_profile
(илиsudo vim ~/.bash_profile
если вы знаете, как его использовать)export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
cd ~
. .bash_profile
which php
. Если вы все сделали правильно, он должен совпадать с путем в # 4.Причина ошибки mcrypt в том, что ваш Mac использует свой собственный php, вам нужно заменить его на тот, что есть у xampp.
PS Я бы порекомендовал использовать MAMP для Laravel 4 для пользователей Mac, эта проблема будет решена вместе с ошибкой в информации о php-файле без проблем, а php-версия xampp настолько устарела.
источник
"export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH"
export PATH="/opt/lampp/bin:$PATH"
Для пользователей без MAMP или XAMPP в OSX (с установленным homebrew):
brew install homebrew/php/php56-mcrypt
Ура!
источник
$ brew install homebrew/php/php55-mcrypt
, иначе получилError: No available formula with the name "php55-mcrypt"
Используя Ubuntu, просто
сделал трюк для меня. Вам не нужно перезапускать Apache, так как вам нужно использовать PHP только из CLI.
источник
В Ubuntu (PHP-FPM, Nginx)
После установки php5-mcrypt
Вы должны сделать символическую ссылку на INI-файлы в доступных модах:
включить:
перезапустите php5-fpm:
Подробнее
источник
sudo aptitude -y install php5-mcrypt
, а затемsudo php5enmod mcrypt
иsudo service php5-fpm restart
. (Я пропустил шаг мягкого связывания). Это сработало :)Заставить Laravel работать на Apache
Версия PHP: PHP 5.5.9
Версия Ubuntu: 14.04
У меня был рабочий проект Laravel на окнах. когда я скопировал его на сервер Ubuntu, я начал получать ошибку mcrypt. это после многих часов проб и ошибок
заставить команду ремесленника работать
(если у вас ошибка mcrypt при использовании инструмента командной строки artisan)
Я сделал много проб и ошибок, поэтому каждый раз, когда я запускал команду php5enmod, у меня появлялись сообщения об ошибках. но при новой установке не было сообщений об ошибках. после этого шага я получил команду ремесленников, работающих
исправление ошибки браузера
(если у вас возникла ошибка mcrypt в браузере при доступе к локальной странице индекса laravel)
добавьте следующую строку в раздел динамически скомпилированных расширений php ini
перезагрузите сервер apache, очистите кеш laravel и все работает
источник
docker-php-ext-install mcrypt
. Испытано на изображение:php:5.6.31-apache
. Без этогоphp -m
не показываетmcrypt
.Для установок php-fpm в Ubuntu 14.04 у меня работало следующее:
sudo apt-get install php5-mcrypt
Это создаст
mcrypt.ini
файл внутри/etc/php5/mods-available/
затем
sudo php5enmod mcrypt
создаст символическую ссылку в:
/etc/php5/fpm/conf.d/
Просто перезапустите сервисы php-fpm
sudo service php5-fpm restart
источник
Для Ubuntu попробуйте эти шаги, если другие не работают:
cd ~
sudo apt-get remove php5-mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart
Надеюсь, что это поможет. Спасибо !
источник
Или используйте:
не уверен, что это будет работать на стандартных установках PHP - я установил
php 5.5.7
с помощью пакета из:источник
Моя ОС есть
Yosemite
.Я решил эту проблему, найдя пути конфигурации:
Пример вывода:
Следующие шаги:
Команды:
Затем вы можете проверить свои php модули через:
источник
Просто для юмеров,
Может быть, вам нужно установить реми репо
источник
Это решило это для меня в моей локальной среде Linux Mint /ubuntu/350942/cannot-get-mcrypt-for-php5
Мне нужно было создать символическую ссылку на мой файл /etc/php5/conf.d/mcrypt.ini в следующих папках /etc/php5/apache2/conf.d/mcrypt.ini и /etc/php5/cli/conf.d /mcrypt.ini
источник
Вам нужно все в одной среде. Вы можете использовать MAMP или XAMPP или любые другие инструменты. После установки одного из этих инструментов вам необходимо отредактировать (создать) ваш .bash_profile (при условии, что вы используете bash).
Или даже простой и более профессиональный вы можете использовать Laravel Homestead.
Вот ссылка на официальную документацию: http://laravel.com/docs/5.0/homestead
Также у Джеффри есть бесплатный учебник об этом: https://laracasts.com/series/laravel-5-fundamentals/episodes/2
Я советую вам пойти с усадьбой, потому что вы предварительно установите все следующие инструменты.
источник
Расширение на @JetLaggy:
После попыток снова и снова изменить .bash_profile с каталогом MAMP, я изменил права доступа к файлу для каталога MAMP php и смог получить 'what php', чтобы показать правильный каталог. Проблема была в том, что другие функции не работали, такие как 'php -v'.
Поэтому я обновил MAMP. http://documentation.mamp.info/en/mamp/installation/updating-mamp
Это помогло моей конкретной установке. Мне пришлось настроить PATH в соответствии с обновленной версией PHP, но как только я это сделал, все заработало!
источник
На OS X
Используя MAMP
Введите команду
which php
в терминале, чтобы увидеть, какую версию PHP вы используете. Если это не версия PHP от MAMP, переменная $ PATH, используемая Bash, должна быть обновлена.Во-первых, вы должны использовать команду "cd / Applications / MAMP / bin / php", чтобы проверить, какая версия php из MAMP и записать версию (например, php5.6.7).
Как только вы узнаете версию, вы должны отредактировать
~/.bash_profile
файл (то есть тот,.bash_profile
который находится в вашем домашнем каталоге) и добавить строку экспорта:Убедитесь, что вы заменили php5.6.7 на версию PHP, которую вы выбрали в MAMP.
Как только файл был сохранен, убедитесь, что вы закрыли, закрыли свой терминал и снова открыли его. Как только это будет сделано, вы будете использовать PHP, который поставляется с MAMP.
Один из способов легко найти строку, которую вы должны поместить в свой файл,
.bash_profile
- запустить следующую команду в вашем терминале:Копирование и вставка этих трех строк в ваш терминал приведет к правильному выводу версии PHP, выбранной на панели управления MAMP.
Использование Homebrew / MacPorts
Убедитесь , что ваш
path
содержит/usr/local/bin/
(Homebrew) или/opt/local/bin
(MacPorts) , если вы используете PHP , который поставляется с любым из этих двух менеджеров пакетов.Проверка пути PHP с помощью MacPorts
Вы можете найти точное местоположение PHP с помощью MacPorts с помощью следующей команды:
Обратите внимание, что вы должны заменить
php70
версию PHP, которую вы установили.Проверьте путь PHP с помощью Homebrew-php
Homebrew-php ( https://github.com/Homebrew/homebrew-php ) - это тап, который имеет различные версии PHP.
Вы можете найти точное местоположение PHP с помощью Homebrew с помощью следующей команды:
Обратите внимание, что вы должны заменить
php56
версию PHP, которую вы установили.источник
в Ubuntu 14.04
Ubuntu 16.04
Ubuntu 18.04
или
источник
Если вы используете Z Shell, просто сделайте следующее:
nano ~/.zshrc
export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
source ~/.zshrc
which php
- вы должны получить путь MAMP 5.6.105.6.10 - это версия PHP, которую вы установили в своем MAMP.
источник
OSX с заваркой
Я использую PHP 7.0.x, поэтому измените «php70» на вашу версию, если вы используете другую версию.
Как указано в других ответах, вы можете увидеть свою версию PHP с
$ php -v
.источник
Для тех, кто все еще приезжает сюда сегодня:
Laravel больше не нуждается в
mcrypt
расширении .mcrypt
устарел, последнее обновление libmcrypt было в 2007 году. Laravel 4.2 тоже устарел и больше не поддерживается. Лучшее (= безопасное) решение - это обновить до Laravel> 5.1 (до Laravel 5.2 нет LTS).Макрипт был удален из Laravel в июне 2015 года: https://github.com/laravel/framework/pull/9041.
источник
источник
mcrypt
, не могли бы вы рассказать, почему вы считаете, что это решит проблему с OP?в Ubuntu 14.04 на основе вашей версии PHP: 5.6,7.0,7.1,7.2,7.3
источник