Laravel wymaga Rozszerzenia PHP Mcrypt

Próbuję użyć funkcji migrate w Laravel 4 na OSX. Jednak dostaję następujący błąd:

Laravel requires the Mcrypt PHP extension.

O ile rozumiem, to jest już włączone(patrz obrazek poniżej).

Co jest nie tak i jak Mogę to naprawić?

Tutaj wpisz opis obrazka

Author: Patrick Reck, 2013-05-30

22 answers

Rozszerzenia włączone przez Sieć i rozszerzenia włączone przez linię poleceń mogą się różnić. Uruchom php -m w terminalu i sprawdź, czy mcrypt jest na liście. Jeśli nie jest to sprawdź, gdzie linia poleceń ładuje Twój plik php.ini, uruchamiając php --ini z twojego terminala.

W tym pliku php.ini możesz włączyć rozszerzenie.

OSX

Słyszałem, że ludzie na OSX mają problemy z powodu terminala wskazującego na natywne PHP dostarczane z OSX. Zamiast tego powinieneś zaktualizować Twój profil bash, aby uwzględnić rzeczywistą ścieżkę do PHP. Coś w tym stylu (w zasadzie nie używam OSX ' a więc może to nie być 100%):

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

Ubuntu

Na wcześniejszych wersjach Ubuntu (przed 14.04) po uruchomieniu {[8] } nie instaluje rozszerzenia w mods-available. Musisz to połączyć symbolicznie.

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

We wszystkich wersjach Ubuntu musisz włączyć mod po jego zainstalowaniu. Możesz to zrobić za pomocą php5enmod.

sudo php5enmod mcrypt
sudo service apache2 restart

Uwagi

    W 2009 roku firma mcrypt wprowadziła do swojej oferty nowe oprogramowanie, które zostało zaprojektowane przez firmę mcrypt.]} Laravel 5.1 i Później usunięto potrzebę mcrypt
 226
Author: Jason Lewis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-01 16:38:52

Czy maszMAMP zainstalowany?

Użyj which php w Terminalu, aby zobaczyć, której wersji PHP używasz.

Jeśli nie jest to wersja PHP z MAMP, należy edytować lub dodać .bash_profile w katalogu domowym użytkownika, czyli: cd ~

W .bash_profile, Dodaj następujący wiersz:

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

Edited: najpierw należy użyć polecenia cd /Applications/MAMP/bin/php, aby sprawdzić, której wersji PHP z MAMP używasz, a następnie zastąpić ją powyższą wersją PHP.

Then restart the terminal, aby zobaczyć, którego PHP używasz teraz.

I powinno już działać.
 327
Author: JustinHo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-07 08:10:22

Do tych, którzy używają XAMPP 1.7.3 i Mac

  1. przejdź do terminala
  2. Enter which php
    • jeśli jest napisane /usr/bin/php, Przejdź do 3.
  3. Wpisz sudo nano ~/.bash_profile (lub sudo vim ~/.bash_profile jeśli wiesz jak go używać)
  4. następnie wklej to export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
  5. Ctrl + O następnie wprowadź, aby zapisać, a następnie Ctrl + X, aby zakończyć.
  6. Typ cd ~
  7. typ . .bash_profile
  8. uruchom ponownie terminal.
  9. Wpisz which php. Jeśli zrobiłeś to dobrze, powinno być tak samo jak ścieżka w #4.

Powodem błędu mcrypt jest to, że Twój Mac używa swojego natywnego php, musisz zmienić go na ten, który ma xampp.

P. S. Polecam używanie MAMP dla Laravel 4 dla użytkowników komputerów Mac, ten problem zostanie rozwiązany wraz z błędem informacji o pliku php bez problemu, a wersja php xampp jest tak przestarzała.

 137
Author: Bryan P,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-25 12:07:01

Dla użytkowników non MAMP lub XAMPP na OSX (z zainstalowanym homebrew):

brew install homebrew/php/php56-mcrypt

Zdrówko!
 82
Author: oozzal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-04 07:46:30

Używając Ubuntu, po prostu

sudo php5enmod mcrypt
Zrobił dla mnie sztuczkę. Nie musisz ponownie uruchamiać Apache, ponieważ musisz używać PHP tylko z CLI.
 43
Author: mppfiles,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-15 19:50:11

[[4]}w Ubuntu (PHP-FPM,Nginx)

sudo apt-get install php5-mcrypt

Po zainstalowaniu php5-mcrypt

Musisz w modach utworzyć dowiązanie symboliczne do plików ini-dostępne:

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

Enable:

sudo php5enmod mcrypt

Restart php5-fpm:

sudo service php5-fpm restart

Więcej szczegółów

 35
Author: Nanhe Kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-01 09:45:04

Jak działa Laravel na Apache

Wersja PHP: PHP 5.5.9

Wersja Ubuntu: 14.04

Miałem działający projekt laravel na windows. kiedy skopiowałem go na ubuntu server, zacząłem otrzymywać błąd mcrypt. to po wielu godzinach prób i błędów

Getting artisan command working

(Jeśli masz błąd mcrypt podczas korzystania z narzędzia wiersza poleceń artisan)

Zrobiłem wiele prób i błędów, więc za każdym razem uruchom polecenie php5enmod wcześniej, miałem komunikaty o błędach. ale na fresh install nie było żadnych komunikatów o błędach. po tym kroku uruchomiłem komendę artisan

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

Naprawianie błędu przeglądarki

(Jeśli masz błąd mcrypt w przeglądarce podczas uzyskiwania dostępu do lokalnej strony indeksu laravel)

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

Dodaj następujący wiersz w sekcji dynamicznie kompilowanych rozszerzeń php ini

extension=mcrypt.so

Uruchom ponownie serwer apache, Wyczyść pamięć podręczną laravel i wszystko działa

 22
Author: Sojan V Jose,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-02 20:12:19

W przypadku instalacji php-fpm na Ubuntu 14.04 zadziałało dla mnie:

sudo apt-get install php5-mcrypt

To utworzy mcrypt.ini Plik wewnątrz /etc/php5/mods-available/

Then

sudo php5enmod mcrypt

Utworzy dowiązanie symboliczne w: /etc/php5/fpm/conf.d/

Po prostu uruchom ponownie usługi php-fpm sudo service php5-fpm restart

 16
Author: Prateek Choudhary,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-19 07:00:53

Dla ubuntu spróbuj wykonać te kroki, jeśli inne nie działają:

  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
Mam nadzieję, że to pomoże. Dzięki !
 16
Author: Sagiruddin Mondal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-17 17:21:13

Lub, użyj:

sudo apt-get install php5-mcrypt

Nie wiem czy to zadziała na standardowych instalacjach PHP-zainstalowałem {[2] } używając pakietu z :

sudo add-apt-repository ppa:ondrej/php5 
sudo apt-get update
 16
Author: JoeTidee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-17 17:21:56

Mój OS to Yosemite.

Rozwiązuję ten problem, znajdując ścieżki konfiguracyjne:

php --ini

Przykładowe wyjście:

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)

Następne kroki:

  1. Zmień nazwę lub usuń plik php55 ini
  2. Utwórz dowiązanie symboliczne
  3. Restart serwera Apache

Polecenia:

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

Następnie możesz sprawdzić swoje moduły php poprzez:

php -m
 13
Author: d.danailov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-17 17:27:38

To rozwiązało to dla mnie na moim lokalnym środowisku Linux Mint https://askubuntu.com/questions/350942/cannot-get-mcrypt-for-php5

Musiałem utworzyć dowiązanie symboliczne do mojego /etc / php5 / conf.d / mcrypt.zapraszamy do zapoznania się z naszą ofertą.d / mcrypt.ini i / etc / php5 / CLI / conf.d / mcrypt.ini

 12
Author: Theo Kouzelis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-13 12:22:45

Just for yumers,

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

Może potrzebujesz zainstalować remi repo

 12
Author: Sean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-17 17:28:38

Potrzebujesz środowiska all in one. Możesz używać MAMP lub XAMPP lub innych narzędzi. Po zainstalowaniu jednego z tych narzędzi będziesz musiał edytować (utworzyć) swoje .bash_profile (zakładając, że używasz Basha).

Lub nawet proste i bardziej profesjonalne można użyć Zagrody Laravel.

Oto link do oficjalnej dokumentacji: http://laravel.com/docs/5.0/homestead

Również Jeffrey ma darmowy tutorial o Informatyka: https://laracasts.com/series/laravel-5-fundamentals/episodes/2

Radzę Ci wybrać homestead, ponieważ preinstalujesz wszystkie poniższe narzędzia.

  • Ubuntu 14.04
  • PHP 5.6
  • HHVM
  • Nginx
  • MySQL
  • Postgres
  • węzeł (z altaną, chrząkaniem i Łykaniem)
  • Redis
  • Memcached
  • Beanstalkd
  • Laravel Envoy
  • Tkanina + Przedłużka HipChat
 11
Author: mburakergenc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-02 19:31:15

Rozszerzenie na @JetLaggy:

Po wielokrotnych próbach modyfikacji .bash_profile w katalogu MAMP zmieniłem uprawnienia do pliku dla katalogu MAMP php i byłem w stanie uzyskać 'które php', aby pokazać właściwy katalog. Problem polegał na tym, że inne funkcje nie działały, takie jak'php-v'.

Więc zaktualizowałem MAMP. http://documentation.mamp.info/en/mamp/installation/updating-mamp

To zadziałało na moją konkretną konfigurację. Musiałem dostosować swoją ścieżkę do odzwierciedlają zaktualizowaną wersję PHP, ale kiedy już to zrobiłem, wszystko działało!

 9
Author: abaumer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-10 23:24:24

Na OS X

Korzystanie z MAMP

Wprowadź polecenie which php w Terminalu, aby zobaczyć, której wersji PHP używasz. Jeśli nie jest to wersja PHP z MAMP, zmienna $PATH używana przez Basha będzie musiała zostać zaktualizowana.

Po Pierwsze, należy użyć polecenia "cd / Applications / MAMP / bin / php", aby sprawdzić, która wersja php z MAMP i wziąć pod uwagę wersję (np.

Po zapoznaniu się z wersją należy edytować plik ~/.bash_profile (czyli .bash_profile, który znajduje się w Twoim katalog domowy) i dodać linię eksportu:

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

Upewnij się, że zastąpisz php5. 6. 7 wersją PHP wybraną w MAMP.

Po zapisaniu pliku upewnij się, że zamknąłeś Zamknij Terminal i otwórz go ponownie. Gdy już to zrobisz, będziesz używać PHP dostarczanego z MAMP.


Jednym ze sposobów, aby łatwo znaleźć linię, która powinna być umieszczona wewnątrz .bash_profile, jest uruchomienie następującego polecenia wewnątrz twojego terminal:

    echo export PATH=`cat /Applications/MAMP/conf/apache/httpd.conf \
         | grep php | grep -i LoadModule | head -n1 \
         | sed -e 's/^[^\/]*\/\(.*\)\/mod.*/\/\1/'`/bin:\$PATH

Skopiowanie i wklejenie tych trzech linii do terminala poprawnie wyświetli wersję PHP wybraną w Panelu sterowania MAMP.

Używanie Homebrew / MacPorts

Upewnij się, że twój path zawiera /usr/local/bin/ (Homebrew) lub /opt/local/bin (MacPorts), jeśli używasz PHP dostarczanego z jednym z tych dwóch menedżerów pakietów.

Sprawdzanie ścieżki PHP za pomocą MacPorts

Możesz znaleźć dokładną lokalizację PHP używając MacPorts z następujące polecenie:

port contents php70 | grep bin/php

Zauważ, że powinieneś zastąpić php70 wersją PHP, którą zainstalowałeś.

Sprawdź ścieżkę PHP za pomocą Homebrew-php

Homebrew-php ( https://github.com/Homebrew/homebrew-php) jest tap, który ma różne wersje PHP.

Możesz znaleźć dokładną lokalizację PHP używając Homebrew za pomocą następującego polecenia:

brew --prefix homebrew/php/php56

Zauważ, że powinieneś zastąpić php56 wersją PHP, którą zainstalowali.

 7
Author: Tim Groeneveld,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-14 01:28:25

Jeśli używasz powłoki z, wykonaj następujące czynności:

  1. Otwórz terminal
  2. sudo nano ~/.zshrc
  3. Wklej to; export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
  4. Zapisz
  5. Run source ~/.zshrc
  6. Run which php - Powinieneś dostać ścieżkę MAMP 5.6.10

5.6.10 to wersja PHP, którą ustawiłeś w MAMPIE.

 3
Author: Unwired,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-20 03:43:24

W 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
Author: Gowthaman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-05 16:42:55

OSX z naparem

$ brew install mcrypt php70-mcrypt

Uruchamiam PHP 7.0.X, więc zmień "php70" na swoją wersję, jeśli używasz innej wersji.
Jak podano w innych odpowiedziach, możesz zobaczyć swoją wersję php z $ php -v.

 2
Author: kris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-28 05:41:55

Dla tych, którzy jeszcze dziś tu przychodzą:

Laravel nie wymaga już mcrypt rozszerzenia. mcrypt jest przestarzały, ostatnia aktualizacja libmcrypt miała miejsce w 2007 roku. Laravel 4.2 również jest przestarzały i nie ma już wsparcia. Najlepszym (=bezpiecznym) rozwiązaniem jest aktualizacja do Laravel >5.1(nie ma LTS przed Laravel 5.2).

Mcrypt został usunięty z Laravel w czerwcu 2015: https://github.com/laravel/framework/pull/9041

 1
Author: rap-2-h,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-16 09:16:42

W ubuntu 14.04 na podstawie Twojej wersji 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 
 0
Author: Jignesh Joisar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-04 12:02:05

Sudo PHP install mcrypt

Sudo php5enmod mcrypt

 -1
Author: Anubhav Tiwari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-18 12:15:05