Laravel требует расширения Mcrypt PHP
Я пытаюсь использовать
22 ответа:
расширения с поддержкой интернета и расширения с поддержкой командной строки могут отличаться. Беги
php -mв вашем терминале и проверьте, еслиmcryptв списке. Если это не так, то проверьте, где в командной строке загружается вашphp.iniфайл от запускаphp --iniиз вашего терминала.в этой
php.inifile вы можете включить расширение.OSX
Я слышал о людях на OSX, работающих с проблемами из-за терминала, указывающего на собственный PHP, отправленный с OSX. Вместо этого вы должны обновить свой профиль bash, чтобы включить фактический путь к вашему PHP. Что-то вроде этого (я на самом деле не использую OSX, поэтому это может быть не 100%):
export PATH=/usr/local/php5/bin:$PATHUbuntu
на более ранних версиях Ubuntu (до 14.04) при запуске
sudo apt-get install php5-mcryptна самом деле он не устанавливает расширение вmods-available. Вам нужно будет символически связать его.sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.iniна всех версиях Ubuntu вам нужно будет включить мод после его установки. Ты можешь это сделать с
php5enmod.sudo php5enmod mcrypt sudo service apache2 restartПримечания
- PHP 7.1 устарел mcrypt и 7.2 имеет полностью удалено расширение mcrypt
- фреймворк Laravel 5.1 и выше убрана необходимость в mcrypt
ты МАМП установлен?
использовать
which phpв терминале, чтобы увидеть, какую версию PHP вы используете.если это не версия PHP от MAMP, вы должны отредактировать или добавить
.bash_profileв домашнем каталоге пользователя, то есть :cd ~на
.bash_profileдобавьте следующую строку:export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH
редактировать: во-первых, вы должны использовать команду
cd /Applications/MAMP/bin/phpчтобы проверить, какую версию PHP из MAMP вы используете, а затем замените версию PHP выше.затем
restartтерминал, чтобы увидеть, какой 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"- Ctrl+O затем введите для сохранения, затем Ctrl+X для выхода.
- тип
cd ~- тип
. .bash_profile- перезапустить терминал.
- введите
which php. Если вы все сделали правильно, это должно быть то же самое, что и путь в #4.причина ошибки mcrypt заключается в том, что ваш Mac использует свой собственный php, вам нужно изменить его на тот, который имеет xampp.
С. П. Я бы рекомендовал использовать MAMP для Laravel 4 для пользователей Mac, эта проблема будет решена вместе с ошибкой php file info без пота, а версия php xampp настолько устарела.
для пользователей без MAMP или XAMPP на OSX (с установленным homebrew):
brew install homebrew/php/php56-mcryptУра!
используя Ubuntu, просто
sudo php5enmod mcryptсделал трюк для меня. Вам не нужно перезапускать Apache, так как вам нужно использовать PHP только из CLI.
в Ubuntu (PHP-FPM, Nginx)
sudo apt-get install php5-mcryptпосле установки php5-mcrypt
вы должны сделать символическую ссылку на ini файлы в модах-доступно:
sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.iniвключить:
sudo php5enmod mcryptперезапустить php5-fpm:
sudo service php5-fpm restart
получение Laravel работает на Apache
версия PHP: PHP 5.5.9
версия Ubuntu: 14.04
у меня был рабочий проект laravel на windows. когда я скопировал его на сервер ubuntu, я начал получать ошибку mcrypt. это после многих часов проб и ошибок
получение команды ремесленника работает
(если у вас возникла ошибка mcrypt при использовании командной строки artisan инструмент)
Я сделал много проб и ошибок, поэтому каждый раз, когда я запускаю команду php5enmod раньше, у меня были сообщения об ошибках. но на свежей установке не было сообщений об ошибках. после этого шага я получил команду ремесленника работает
sudo rm /etc/php5/mods-available/mcrypt.ini sudo apt-get purge php5-mcrypt sudo apt-get install mcrypt sudo apt-get install php5-mcrypt sudo php5enmod mcryptисправление ошибки браузера
(если у вас есть ошибка mcrypt в браузере при доступе к локальной странице индекса laravel)
sudo nano /etc/php5/apache2/php.iniдобавить следующую строку в динамически скомпилированный раздел расширений php ini
extension=mcrypt.soперезагрузите сервер apache, очистите кэш laravel и все работает
для php-fpm установки на Ubuntu 14.04, следующее работало для меня:
sudo apt-get install php5-mcryptэто позволит создать внутри
/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-mcryptsudo apt-get install php5-mcryptsudo php5enmod mcryptsudo service apache2 restartнадеюсь, что поможет. Спасибо !
или, использовать:
sudo apt-get install php5-mcryptне уверен, что это будет работать на стандартных установках PHP - я установил
php 5.5.7используя пакет от:sudo add-apt-repository ppa:ondrej/php5 sudo apt-get update
моя ОС
Yosemite.Я решаю эту проблему, находя пути конфигурации:
php --iniпример:
Configuration File (php.ini) Path: /usr/local/etc/php/5.5 Loaded Configuration File: /usr/local/etc/php/5.5/php.ini Scan for additional .ini files in: /usr/local/etc/php/5.5/conf.d Additional .ini files parsed: (none)следующее:
- переименовать или удалить файл ini php55
- создать символическую ссылку
- перезапустить сервер Apache
команды:
mv /usr/local/etc/php/5.5/php.ini /usr/local/etc/php/5.5/php.ini.default ln -s /etc/php.ini /usr/local/etc/php/5.5/php.ini sudo apachectl restartзатем вы можете проверить свои модули php через:
php -m
Это решило его для меня на моем Linux Mint local enviroment https://askubuntu.com/questions/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
только для юмеров,
yum install php-mcrypt service httpd restart chown -R apache:apache apppathможет быть, вам нужно установить Реми РЕПО
вам нужно все в одной среде. Вы можете использовать MAMP или XAMPP или любые другие инструменты. После установки одного из этих инструментов вам нужно будет отредактировать(создать) свой .файл(при условии, что вы пользуетесь bash).
или даже просто и более профессионально вы можете использовать Laravel Homestead.
вот ссылка на официальную документацию:http://laravel.com/docs/5.0/homestead
также Джеффри имеет бесплатный учебник о оно: https://laracasts.com/series/laravel-5-fundamentals/episodes/2
Я советую вам пойти с homestead, потому что вы предварительно установите все следующие инструменты.
- Ubuntu 14.04
- PHP 5.6
- поведение
- Nginx
- MySQL
- Postgres
- узел (с Bower, Grunt и Глоток)
- Рэдис
- Memcached
- Beanstalkd
- Посланник Что Laravel
- Ткань + Расширение HipChat
расширение на @JetLaggy:
после попытки снова и снова изменять .bash_profile с каталогом MAMP, я изменил права доступа к файлам для каталога MAMP php и смог получить "какой php", чтобы показать правильный каталог. Проблема была в том, что другие функции не работали, такие как "php-v".
поэтому я обновил MAMP. http://documentation.mamp.info/en/mamp/installation/updating-mamp
Это сделал трюк для моей конкретной установки. Я пришлось корректировать свой путь, чтобы отразить обновленную версию PHP, но как только я это сделал, все сработало!
на OS X
С помощью MAMP
введите команду
which phpв терминале, чтобы увидеть, какую версию PHP вы используете. Если это не версия PHP от MAMP, переменная $PATH, используемая Bash, должна быть обновлена.во-первых, вы должны использовать команду "cd /Applications/MAMP/bin/php", чтобы проверить, какая версия php от MAMP и принять к сведению версию (например, php5.6.7).
как только вы узнаете версию, вы должны отредактировать (что есть
.bash_profileэто в вашем домашнем каталоге) и добавьте строку экспорта:export PATH=/Applications/MAMP/bin/php/php5.6.7/bin:$PATHубедитесь, что вы заменили 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.*/\//'`/bin:$PATHкопирование и вставка этих трех строк в ваш терминал будет правильно выводить версию PHP, которая была выбрана внутри панели управления MAMP.
Использование Homebrew / MacPorts
убедитесь, что ваш
pathсодержит/usr/local/bin/(доморощенного) или/opt/local/bin(MacPorts) если вы используете PHP, который поставляется с любым из этих двух менеджеров пакетов.проверка пути PHP с помощью MacPorts
вы можете найти точное местоположение PHP с помощью MacPorts с помощью следующей команды:
port contents php70 | grep bin/phpобратите внимание, что вы должны заменить
php70С установленной версией PHP.Проверьте путь PHP с Homebrew-php
Homebrew-php (https://github.com/Homebrew/homebrew-php) - это кран, который имеет различные версии PHP.
вы можете найти точное местоположение PHP с помощью Доморощенный со следующей командой:
brew --prefix homebrew/php/php56обратите внимание, что вы должны заменить
php56С установленной версией PHP.
если вы используете оболочку Z, просто выполните следующие действия:
- открыть терминал
- судо
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.
в Ubuntu 14.04
sudo apt-get install php5-mcrypt sudo php5enmod mcryptUbuntu 16.04
sudo apt-get install php-mcrypt sudo phpenmod mcrypt
OSX с brew
$ brew install mcrypt php70-mcryptЯ запускаю PHP 7.0.x, поэтому измените "php70" на свою версию, если вы используете другую версию.
Как указано в других ответах, вы можете увидеть свою версию php с помощью$ php -v.