Laravel патрабуе пашырэння Mcrypt PHP

Я спрабую выкарыстоўваць мігруе функцыю Laravel 4 на OSX . Тым не менш, я атрымліваю наступнае паведамленне пра памылку:

Laravel requires the Mcrypt PHP extension.

Наколькі я разумею, гэта ўжо уключаны (гл малюнак ніжэй).

Што не так, і як я магу гэта выправіць?

enter image description here

351
Я знайшоў простае рашэнне, выкарыстоўваючы самаробны: jorble.com/2013/04/ўстаноўкі-PHP-Mcrypt-в-MacOSX
дададзена аўтар gelviis, крыніца
дададзена аўтар Sliq, крыніца
Проста дадаў інфармацыю да паведамлення. Гэта Laravel 4
дададзена аўтар Patrick Reck, крыніца
Вы карыстаецеся убудаваны ў PHP, ці вы ўсталявалі іншую версію? Калі так, то як вы яго ўсталяваць?
дададзена аўтар Jamie Schembri, крыніца
Гэта вырашыла для мяне: ўсталёўшчык пакетаў для Mcrypt. Я пабег і, вуаля! topicdesk.com/downloads/mcrypt/mcrypt-download
дададзена аўтар timgavin, крыніца
Карыстаецеся Ці вы Laravel 3 ці 4?
дададзена аўтар Jan P., крыніца
Можа быць, гэты пост дапаможа вам: stackoverflow.com/questions/14476181/…
дададзена аўтар Jan P., крыніца
Малюнак ставіцца да PHP пашырэньні нагружаных пры працы ў вэб-серверы. Выкарыстанне PHP -m ў кансолі, каб убачыць, калі пашырэнне уключаны на «Cli» навакольнага асяроддзя.
дададзена аўтар mppfiles, крыніца

20 адказы

Ці ёсць у вас <�моцны> MAMP усталяваны?

Выкарыстоўвайце , які PHP у тэрмінале, каб убачыць, якую версію PHP вы выкарыстоўваеце.

If it's not the PHP version from MAMP, you should edit or add .bash_profile in the user's home directory, that is : cd ~

У .bash_profile , дадайце наступны радок:

export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH

Edited: First you should use command cd /Applications/MAMP/bin/php to check which PHP version from MAMP you are using and then replace with the PHP version above.

Тады рэстарт тэрмінал, каб убачыць, які PHP вы карыстаецеся зараз.

І гэта павінна працаваць.

327
дададзена
Усё не выкарыстоўвае MAMP, то ёсць адказ на астатніх людзей?
дададзена аўтар cheloncio, крыніца
Проста думаў, што я пакажу па-за, CD ~ вельмі важна, вы павінны адкрыць .bash_profile , які існуе там, таксама важна, гэта вы павінны зачыніць тэрмінал і паўторна адкрытым, так што загружаныя новыя зменныя Баш. Проста пераканайцеся, што для запуску якіх PHP праверыць вашыя змены ўжывалі, шчаслівым кадаваньне!
дададзена аўтар wired00, крыніца
Не ўпэўнены, што праверка , які PHP версія працуе нармальна, выкарыстоўваючы MAMP, так як ён мае свой уласны стэк AMP і так , які PHP выглядае на сістэмнай версіі PHP (напрыклад, PHP -i вяртае, што мае INI па адрасе /usr/local/etc/php/5.6/php.ini , а phpinfo() (унутры корань дакумент MAMP в) кажа, што мае ініцыятыве па адрасе Applications/MAMP/bin/PHP/php7.0.0/CONF/php.ini ).
дададзена аўтар tomsihap, крыніца
@JetLaggy Што я маю на ўвазе, што , які PHP ставіцца да версіі сістэмы РНР (скажам,/USR/мясцовыя/бен/PHP), у той час як MAMP працуе на сваім php.ini. Нават калі MAMP уключаны "які PHP" будзе яшчэ сказаць /USR/мясцовыя/бен/PHP (калі такія маюцца, відавочна), аднак ён усё роўна будзе/Applications/MAMP/bin/PHP/php7 ... файл, які павінен быць зменены (так як вы выкарыстоўваеце асобнік Apache ў MAMP в). Гэта так жа, як мае лакальны хост: 80 (сістэма) і лакальны: 8888 (MAMP) даступная ў той жа час, , які PHP будзе гаварыць аб лакальным хасце: 80.
дададзена аўтар tomsihap, крыніца
Часам гэты шлях будзе мяняцца MAMP абнаўляецца з новымі версіямі PHP.
дададзена аўтар Mike Grace, крыніца
Вам не трэба MAMP, каб атрымаць Mcrypt.
дададзена аўтар jackyalcine, крыніца
Сапраўды гэтак жа, для карыстальнікаў AMPPS: Экспарт PATH =/Applications/AMPPS/PHP-5,4/бен: $ PATH ... калі вы здымаеце для 5.4.xx, ёсць таксама 5,3 і 5,5 там.
дададзена аўтар Joel Mellon, крыніца
Гэта было б больш карысным, калі не-MAMP адказ былі прадастаўлены, або ўключаны ў адказ.
дададзена аўтар Bryan Rayner, крыніца
як зрабіць гэта з дапамогай XAMPP?
дададзена аўтар chirag jagani, крыніца
не можа знайсці .bash_profile, ці існуе яна па змаўчанні ў OSX?
дададзена аўтар gan, крыніца
@tomsihap так, менавіта таму з дапамогай якіх PHP, каб вызначыць, ці выкарыстоўваецца уласны PHP або MAMP Мака ў PHP.
дададзена аўтар JustinHo, крыніца
@ Крыс Вялікую частку часу яна не існуе, вы павінны дадаць яго, увёўшы VI .bash_profile
дададзена аўтар JustinHo, крыніца
вы, вядома, не трэба, каб атрымаць MAMP Mcrypt. гэты адказ толькі для людзей, якія маюць некалькі версій PHP, усталяваных на кампутары, кажуць XAMPP або MAMP, або іншыя.
дададзена аўтар JustinHo, крыніца

Вэб ўключэнне пашырэньні і камандны радок з падтрымкай пашырэння могуць адрознівацца. Run PHP -m у тэрмінале і праверце, каб убачыць, калі Mcrypt пералічаны. Калі гэта не так, то праверце, дзе камандны радок загружаецца ваш php.ini файл з запускам PHP --ini з вашага тэрмінала.

У гэтым php.ini файл, вы можаце ўключыць пашырэнне.

OSX

Я чуў пра людзей на OSX, якія працуюць у праблемы, з-за тэрмінал, паказваў на роднай PHP пастаўляецца з OSX. Вы павінны замест гэтага абнаўляць свой профіль Баш, каб ўключаць у сябе фактычны шлях да PHP. Нешта накшталт гэтага (я на самой справе не выкарыстоўваць OSX так што гэта не можа быць 100%):

export PATH=/usr/local/php5/bin:$PATH

Ubuntu

У больш ранніх версіях Ubuntu (да 14.04) пры запуску Sudo APT-атрымаць ўстаноўку php5-Mcrypt гэта не на самай справе ўсталяваць пашырэнне ў моды даступнага . Вам трэба сімлінкі яго.

sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini

На ўсе версіі Ubuntu вам неабходна ўключыць моды пасля яго ўстаноўкі. Вы можаце зрабіць гэта з дапамогай php5enmod .

sudo php5enmod mcrypt
sudo service apache2 restart

NOTES

222
дададзена
Як @imkingdavid я таксама не патрабуе сімвалічнай спасылкі. php5enmod было дастаткова. Ubuntu 14.04 LTS
дададзена аўтар Brett, крыніца
Мабыць, ён ужо ўсталяваны Mcrypt INI ў моды-даступныя, я проста не ведаў аб камандзе php5enmod. Карыстаючыся тым, што робіць яго працу як шарм. Дзякуй!
дададзена аўтар imkingdavid, крыніца
Можа быць выпраўленая ў некаторай ступені на больш новых версіях Ubuntu. Ці будзе абнавіць адказ, каб адлюстраваць гэта.
дададзена аўтар Jason Lewis, крыніца
Вы сапраўды маюць патрэбу ў сімлінкі @Brett, але php5enmod робіць гэта для вас :)
дададзена аўтар Erfan, крыніца
паспрабуйце гэта ўсталяваць Mcrypt для PHP7.2 на Linux stackoverflow.com/a/48799336/3452102
дададзена аўтар Praneeth Nidarshan, крыніца
SUDO php5enmod Mcrypt судо сэрвіс php5-FPM перазагрузка
дададзена аўтар PJunior, крыніца
Так што на гэтым, я Mcrypt ў спісе, калі я іду PHP -m, калі я іду, які PHP ён кажа/USR/мясцовыя/бен/PHP. Ive паспрабаваў ўсталяваць Mcrypt з варэнне і, здавалася, працавалі .. Але Laravel ўсё яшчэ кажа, што патрабуецца пашырэнне Mcrypt PHP.
дададзена аўтар Marais Rossouw, крыніца
Ubuntu 13,10 - Я таксама павінен быў ўсталяваць Mcrypt сябе
дададзена аўтар Ondrej Galbavý, крыніца
гэта працуе для мяне на Ubuntu, дзякуй! Weird як Sudo APT-атрымаць ўстаноўку php5-Mcrypt на самой справе не ў поўнай меры ўсталяваць пашырэнне.
дададзена аўтар Aristides, крыніца

Для тых, хто выкарыстоўвае XAMPP 1.7.3 і Mac

  1. Go to Terminal
  2. Enter which php
    • If it says /usr/bin/php, then proceed to 3.
  3. Enter sudo nano ~/.bash_profile (or sudo vim ~/.bash_profile if you know how to use it)
  4. Then paste this export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
  5. Ctrl+O then enter to save, then Ctrl+X to exit.
  6. Type cd ~
  7. type . .bash_profile
  8. restart terminal.
  9. Enter which php. If you did it right, it should be the same as the path in #4.

Прычына памылкі Mcrypt таму, што ваш Mac выкарыстоўвае свой родны PHP, вы павінны змяніць яго на адзін XAMPP ёсць.

пастскрыптум Я б рэкамендаваў выкарыстоўваць MAMP для Laravel 4 для карыстальнікаў Mac, гэтае пытанне вырашыцца разам з інфармацыйнай памылкі PHP-файлаў без поту, і версія PHP з XAMPP настолькі састарэла.

137
дададзена
Ён працуе на lampp таксама, проста змяніць шлях да Экспарт PATH = "/ Opt/lampp/bin: $ PATH"
дададзена аўтар JTC, крыніца
Дзякуем Вам за выразныя кірункі. Пераканаць УСТАНАВІЦЬ MAMP mamp.info/en/downloads
дададзена аўтар Connor Leech, крыніца
Што-то дрэннае здарылася, і цяпер мой тэрмінал не будзе нават прызнаць Sudo
дададзена аўтар Sunny R Gupta, крыніца
Акрамя таго, добры адказ! Павінна быць гэта для MAMP: "экспарт PATH =/Applications/MAMP/bin/PHP/php5.4.10/бен: $ PATH"
дададзена аўтар Foxinni, крыніца
запускае .bash_profile неадкладна, як правіла, вам неабходна перазапусціць для тых, Баша для запуску
дададзена аўтар Bryan P, крыніца
Што лінія 7 (тып. .Bash_profile) рабіць?
дададзена аўтар kayfun, крыніца
для тых, хто не мае ~/.bash_profile, паспрабуйце праверыць ~/.bashrc
дададзена аўтар Ironwind, крыніца

Для ня карыстальнікаў MAMP або XAMPP на OSX (з дамарослым ўсталявана):

<�Код> заварыць ўсталяваць дамарослага/PHP/php56-Mcrypt

Ура!

82
дададзена
Гэта на самай справе $ заварыць ўсталяваць дамарослага/PHP/php55-Mcrypt , у адваротным выпадку ёсць Памылка: Няма даступная формула з назвай "php55-Mcrypt"
дададзена аўтар Connor Leech, крыніца
І перазапусціць тэрмінал пасля таго, як гэтая каманда скончана :)
дададзена аўтар Lachezar Todorov, крыніца
Было б выдатна, каб гэты адказ прыкладаемага да вядучых адказаў на гэтую тэму, каб зрабіць яго больш ўсёабдымны рэсурсам. Дзякуй за хуткі савет, як ужо згадвалася Lauren, гэта сапраўды выпраўляе гэтую праблему.
дададзена аўтар Bryan Rayner, крыніца
Я быў занепакоены тым, што гэта не будзе працаваць з роднай OSX PHP, але я толькі што усталяваў, што і ў мяне не было важдацца з маёй PATH або што-небудзь. Проста працуе. Ніца адзін.
дададзена аўтар Lauren, крыніца

Выкарыстанне Ubuntu, проста

sudo php5enmod mcrypt

зрабіў трук для мяне. Вам не трэба перазапусціць Apache, так як вам трэба выкарыстоўваць PHP толькі з каманднага радка.

43
дададзена

У Ubuntu (PHP-FPM, Nginx)

sudo apt-get install php5-mcrypt

Пасля ўстаноўкі php5-Mcrypt

Вы павінны зрабіць сімвалічную спасылку на ініцыятыве-файлы ў модах-даступныя:

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

падрабязна

35
дададзена
Я пабег судо дарэчнасць -y ўсталяваць php5-Mcrypt , а затым SUDO php5enmod Mcrypt і судо сэрвіс php5-FPM рэстарту . (Я прапусціў мяккі крок зачаплення). Ён працаваў :)
дададзена аўтар Aditya M P, крыніца

<�Моцны> Як Laravel працуе на Apache

Версія PHP: PHP 5.5.9

версія Ubuntu: 14,04

я меў працоўны Laravel праект на вокнах. калі я скапіяваў яго на Ubuntu Server, я пачаў атрымліваць памылку Mcrypt. гэта пасля таго, як шмат гадзін спроб і памылак

<�Моцны> атрымлівае каманда рамеснік працуе

(калі ў вас узніклі памылка Mcrypt пры выкарыстанні інструмента каманднага радка рамесніка)

я зрабіў шмат спроб і памылак, таму кожны раз, калі я запусціць каманду 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

fixing the browser error

(калі вы маеце Mcrypt памылку ў браўзэры пры доступе да мясцовай індэкснай старонцы Laravel)

sudo nano /etc/php5/apache2/php.ini

дадайце наступны радок пад пашырэннямі секцыі PHP INI дынамічна скампіляванага

extension=mcrypt.so

перазапусціць сервер Apache, ачысціць кэш Laravel і ўсё працуе

22
дададзена
Калі вы працуеце на PHP докер малюнка , вам таксама трэба запусціць docker- PHP-унутр ўсталяваць Mcrypt . Выпрабавана на малюнак: PHP: 5.6.31-апача . Без гэтага, PHP -m не адлюстроўваецца Mcrypt .
дададзена аўтар Ewa, крыніца

Для убунту паспрабаваць гэтыя крокі, калі іншыя не працуюць:

  1. CD ~
  2. Sudo APT-атрымаць выдаліць php5-Mcrypt
  3. Sudo APT-атрымаць ўстаноўку php5-Mcrypt
  4. судо php5enmod Mcrypt
  5. судо сэрвіс apache2 перазагрузка

Спадзяюся, што дапаможа. Дзякуй!

16
дададзена

Або выкарыстоўвайце:

sudo apt-get install php5-mcrypt

не ўпэўнены, калі гэта будзе працаваць на стандартным PHP ўсталёўвае - я ўсталяваў PHP 5.5.7 , выкарыстоўваючы пакет з:

sudo add-apt-repository ppa:ondrej/php5 
sudo apt-get update
16
дададзена

Для PHP-FPM ўстаноўкі на Ubuntu 14.04, наступны працаваў для мяне:

<�Код> Sudo APT-атрымаць ўстаноўку php5-Mcrypt

This will create mcrypt.ini file inside /etc/php5/mods-available/

тады

<�Код> судо php5enmod Mcrypt

will create a symlink in: /etc/php5/fpm/conf.d/

Just restart php-fpm services sudo service php5-fpm restart

16
дададзена

Мая АС 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
13
дададзена

This solved it for me on my 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

12
дададзена

Толькі для yumers,

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

Maybe you need install remi repo

12
дададзена

Вы павінны ўсё ў адным асяроддзі. Вы можаце выкарыстоўваць MAMP або XAMPP або любыя іншыя інструменты. Пасля ўстаноўкі аднаго з гэтых інструментаў, вам трэба будзе змяніць (стварыць) свой .bash_profile (пры ўмове, што вы карыстаецеся Баш).

Ці нават проста і больш прафесійна вы можаце выкарыстоўваць Laravel Homestead.

Here is a link to official documentation: 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
  • <�Літый> Вузел (З Бауэр, Grunt, і Gulp) </літый>
  • Redis
  • Memcached
  • Beanstalkd
  • Laravel пасланнік
  • Тканіна + HipChat Extension
11
дададзена

Пашырэнне на @JetLaggy:

Пасля таго, як зноў і зноў спрабуе змяніць .bash_profile з каталогам MAMP, я змяніў правы доступу да файлаў для каталога MAMP PHP і быў у стане атрымаць ", які ў PHP, каб паказаць правільны каталог. Праблема была ў тым, што іншыя функцыі не працуюць, такія як «PHP -v».

So I updated MAMP. http://documentation.mamp.info/en/mamp/installation/updating-mamp

Гэта зрабіў трук для маёй канкрэтнай ўстаноўкі. Я павінен быў наладзіць мой шлях, каб адлюстраваць абноўленую версію PHP, але як толькі я зрабіў, усё працавала!

9
дададзена

На OS X

выкарыстанне MAMP

Калі ласка, увядзіце каманду , які PHP у тэрмінале, каб убачыць, якую версію PHP вы выкарыстоўваеце. Калі гэта не версія PHP ад MAMP, пераменная $ PATH выкарыстоўваецца Bash трэба будзе абнавіць.

Па-першае, вы павінны выкарыстоўваць каманду «CD/Applications/MAMP/bin/PHP», каб праверыць, якія версіі PHP ад MAMP і прыняць да ведама версію (напрыклад, php5.6.7).

Пасля таго, як вы ведаеце версію, вы павінны адрэдагаваць ~ <�код /> файл/.bash_profile (гэта значыць, .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.*/\/\1/'`/bin:\$PATH

Капіяванне і ўстаўка гэтых трох радкоў у тэрмінал будзе правільна выводзіць, які быў выбраны ў панэлі кіравання MAMP PHP версіі.

Выкарыстанне Homebrew/MacPorts

Пераканайцеся, што ваш шлях ўтрымлівае /USR/мясцовыя/бен/ (Homebrew) або /Opt/мясцовыя/бен (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, якія вы ўстанавілі.

7
дададзена

у Ubuntu 14.04

sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt

Ubuntu 16.04

sudo apt-get install php-mcrypt
sudo phpenmod mcrypt
3
дададзена

Пры выкарыстанні Z Shell, проста зрабіце наступнае:

  1. Open terminal
  2. sudo nano ~/.zshrc
  3. Paste this; export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
  4. Save
  5. Run source ~/.zshrc
  6. Run which php - you should get the MAMP 5.6.10 path

5.6.10 з'яўляецца версіяй PHP вы ўсталявалі ў вашым MAMP.

3
дададзена

OSX з варывам

$ brew install mcrypt php70-mcrypt

Я бягу PHP 7.0.x, так што змяніць «php70» вашай версіі, калі вы карыстаецеся іншую версію.
Як паказана ў іншых адказах, вы можаце ўбачыць вашу версію PHP з $ PHP -v .

2
дададзена

Для тых, хто да гэтага часу прыходзяць сюды сёння:

Laravel does not need mcrypt extension anymore. mcrypt is obsolete, the last update to libmcrypt was in 2007. Laravel 4.2 is obsolete too and has no more support. The best (=secure) solution is to update to Laravel >5.1 (there is no LTS before Laravel 5.2).

Mcrypt was removed from Laravel in June 2015: https://github.com/laravel/framework/pull/9041

1
дададзена
Я усталяваў сваё пытанне, выканаўшы становішча прысядзібнага
дададзена аўтар Mike Rodham, крыніца