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

Примечания


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

использовать 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. Enter which php
    • если он говорит /usr/bin/php, затем перейдите к 3.
  3. Enter 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. Enter 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 tool)

Я сделал много проб и ошибок, поэтому каждый раз, когда я запускаю команду php5enmod раньше, у меня были сообщения об ошибках. но на fresh install не было сообщений об ошибках. после этого шага я получил artisan command working

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. переименовать или удалить файл php55 ini
  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 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


только для yumers,

yum install php-mcrypt
service httpd restart
chown -R apache:apache apppath

Возможно, вам нужно установить Реми РЕПО


вам нужно все в одной среде. Вы можете использовать MAMP или XAMPP или любые другие инструменты. После установки одного из этих инструментов вам нужно будет отредактировать(создать) свой .bash_profile (предполагая, что вы используете bash).

или даже простой и более профессиональный Вы можете использовать Laravel Homestead.

вот ссылка на официальную документацию:http://laravel.com/docs/5.0/homestead

также Джеффри имеет бесплатный учебник о он: https://laracasts.com/series/laravel-5-fundamentals/episodes/2

Я советую вам пойти с усадьбой, потому что вы предварительно установите все следующие инструменты.

  • Ubuntu 14.04
  • PHP 5.6
  • HHVM
  • 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.

С Помощью Доморощенного/Системы 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, используя Homebrew со следующей командой:

brew --prefix homebrew/php/php56

обратите внимание, что вы должны заменить php56 С установленной версией PHP.


если вы используете Z Shell, просто сделайте следующее:

  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 установить mcrypt

sudo php5enmod mcrypt