Laravel требует расширения Mcrypt PHP


Я пытаюсь использовать

22 354

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

Примечания

ты МАМП установлен?

использовать 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

  1. перейти к терминалу
  2. введите which php
    • если он говорит /usr/bin/php, затем перейдите к 3.
  3. введите sudo nano ~/.bash_profile (или sudo vim ~/.bash_profile Если вы знаете, как использовать его)
  4. вставьте export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
  5. Ctrl+O затем введите для сохранения, затем Ctrl+X для выхода.
  6. тип cd ~
  7. тип . .bash_profile
  8. перезапустить терминал.
  9. введите 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 попробуйте эти шаги, если другие не работают:

  1. cd ~
  2. sudo apt-get remove php5-mcrypt
  3. sudo apt-get install php5-mcrypt
  4. sudo php5enmod mcrypt
  5. 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)

следующее:

  1. переименовать или удалить файл ini php55
  2. создать символическую ссылку
  3. перезапустить сервер 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, просто выполните следующие действия:

  1. открыть терминал
  2. судо nano ~/.zshrc
  3. вставить это:export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
  4. сохранить
  5. выполнитьsource ~/.zshrc
  6. выполнитьwhich php - вы должны получить путь MAMP 5.6.10

5.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.

для тех, кто все еще приходит сюда сегодня:

Laravel не нужно

в Ubuntu 14.04 на основе вашей версии PHP : 5.6,7.0,7.1,7.2,7.3

sudo apt-get install php{version} - mcrypt

sudo apt-get install php7.1-mcrypt

sudo phpenmod mcrypt 

sudo php install mcrypt

sudo php5enmod mcrypt