458 Stimmen

Laravel benötigt die Mcrypt PHP-Erweiterung

Ich versuche, die migrate-Funktion in Laravel 4 auf OSX zu verwenden. Allerdings erhalte ich folgenden Fehler:

Laravel benötigt die Mcrypt PHP-Erweiterung.

Soweit ich weiß, ist sie bereits aktiviert (siehe Bild unten).

Was ist falsch und wie kann ich es beheben?

Bildbeschreibung eingeben

343voto

JustinHo Punkte 4695

Hast du MAMP installiert?

Verwende which php im Terminal, um zu sehen, welche Version von PHP du verwendest.

Wenn es nicht die PHP-Version von MAMP ist, solltest du .bash_profile im Benutzerverzeichnis bearbeiten oder hinzufügen, das heißt: cd ~

Füge in .bash_profile folgende Zeile hinzu:

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

Bearbeitet: Zuerst solltest du den Befehl cd /Applications/MAMP/bin/php verwenden, um zu überprüfen, welche PHP-Version von MAMP du verwendest, und dann mit der oben angegebenen PHP-Version ersetzen.

Dann starte das Terminal neu, um zu sehen, welche PHP-Version du jetzt verwendest.

Und nun sollte es funktionieren.

304voto

Jason Lewis Punkte 18157

Die webbasierten Erweiterungen und die Befehlszeilen-Erweiterungen können sich unterscheiden. Führen Sie php -m in Ihrem Terminal aus und überprüfen Sie, ob mcrypt aufgeführt ist. Wenn nicht, überprüfen Sie, von wo aus die Befehlszeile Ihre php.ini Datei lädt, indem Sie php --ini in Ihrem Terminal ausführen.

In dieser php.ini Datei können Sie die Erweiterung aktivieren.

OSX

Ich habe gehört, dass Leute auf OSX Probleme haben, weil das Terminal auf das in OSX enthaltene native PHP zeigt. Sie sollten stattdessen Ihr Bash-Profil aktualisieren, um den tatsächlichen Pfad zu Ihrem PHP einzuschließen. Etwas wie das Folgende (Ich benutze OSX tatsächlich nicht, also könnte das nicht zu 100% korrekt sein):

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

Ubuntu

Auf früheren Versionen von Ubuntu (vor 14.04) wird, wenn Sie sudo apt-get install php5-mcrypt ausführen, die Erweiterung tatsächlich nicht in den mods-available installiert. Sie müssen es verknüpfen.

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

Auf allen Ubuntu-Versionen müssen Sie die Modul nach der Installation aktivieren. Das können Sie mit php5enmod tun.

sudo php5enmod mcrypt
sudo service apache2 restart

ANMERKUNGEN

143voto

Bryan P Punkte 4064

Für diejenigen, die XAMPP 1.7.3 und Mac benutzen

  1. Gehen Sie zum Terminal
  2. Geben Sie which php ein
    • Wenn es /usr/bin/php sagt, fahren Sie mit 3 fort.
  3. Geben Sie sudo nano ~/.bash_profile ein (oder sudo vim ~/.bash_profile, wenn Sie wissen, wie es geht)
  4. Dann fügen Sie dies ein export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"
  5. Strg+O dann drücken, um zu speichern, dann Strg+X, um zu beenden.
  6. Geben Sie cd ~ ein
  7. geben Sie . .bash_profile ein
  8. Terminal neu starten.
  9. Geben Sie which php ein. Wenn Sie alles richtig gemacht haben, sollte es der gleiche Pfad wie in #4 sein.

Der Grund für den mcrypt Fehler ist, weil Ihr Mac sein natives php verwendet, Sie müssen es auf das von xampp umstellen.

P.S. Ich empfehle Mac-Benutzern, MAMP für Laravel 4 zu verwenden, dieses Problem wird mühelos gelöst und auch der php-Datei-Info Fehler, und die php-Version von xampp ist so veraltet.

86voto

oozzal Punkte 2401

Für Nicht-MAMP- oder XAMPP-Benutzer auf OSX (mit installiertem Homebrew):

brew install homebrew/php/php56-mcrypt

Prost!

46voto

mppfiles Punkte 2387

Verwenden von Ubuntu, einfach

sudo php5enmod mcrypt

hat für mich funktioniert. Sie müssen Apache nicht neu starten, da Sie PHP nur von der Befehlszeile aus verwenden müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X