Laravel требует расширения Mcrypt PHP
Я пытаюсь использовать
22 ответа:
расширения с поддержкой интернета и расширения с поддержкой командной строки могут отличаться. Беги
php -m
в вашем терминале и проверьте, еслиmcrypt
в списке. Если это не так, то проверьте, где в командной строке загружается вашphp.ini
файл от запускаphp --ini
из вашего терминала.в этой
php.ini
file вы можете включить расширение.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
. Вам нужно будет символически связать его.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-mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
sudo 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 mcrypt
Ubuntu 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
.