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ć?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
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.
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
- przejdź do terminala
- Enter
which php
- jeśli jest napisane
/usr/bin/php
, Przejdź do 3.
- jeśli jest napisane
- Wpisz
sudo nano ~/.bash_profile
(lubsudo vim ~/.bash_profile
jeśli wiesz jak go używać) - następnie wklej to
export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
- Ctrl + O następnie wprowadź, aby zapisać, a następnie Ctrl + X, aby zakończyć.
- Typ
cd ~
- typ
. .bash_profile
- uruchom ponownie terminal.
- 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.
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
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.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
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
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
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ą:
cd ~
sudo apt-get remove php5-mcrypt
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart
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
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:
- Zmień nazwę lub usuń plik php55 ini
- Utwórz dowiązanie symboliczne
- 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
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
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
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
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!
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.
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:
- Otwórz terminal
- sudo
nano ~/.zshrc
- Wklej to;
export PATH=/Applications/MAMP/bin/php/php5.6.10/bin:$PATH
- Zapisz
-
Run
source ~/.zshrc
-
Run
which php
- Powinieneś dostać ścieżkę MAMP 5.6.10
5.6.10 to wersja PHP, którą ustawiłeś w MAMPIE.
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
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
.
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
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
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
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