it-swarm.com.de

So verwenden Sie die MAMP-Version von PHP anstelle der Standardeinstellung unter OSX

Ich möchte die MAMP-Version von PHP anstelle der auf meinem Mac installierten Standardeinstellung verwenden. Ich habe es versucht 

ln -s /Applications/MAMP/bin/php5.3/bin/php php

ich erhalte jedoch einen Fehler "Datei existiert". Was ist der beste Weg, um dies zu umgehen, damit ich einfach PHP anstelle des vollständigen Pfads eingeben kann?

55
Josh Fraser

Ich würde nicht empfehlen, die Standardversion von PHP zu ändern, die in der Befehlszeile aufgerufen wird. Andernfalls können andere Teile Ihres Systems beschädigt werden und Sie können in Zukunft Probleme haben, falls Sie sich für ein Upgrade Ihres Betriebssystems entscheiden.

Es gibt eine Alternative, die Ihren Bedürfnissen entspricht. Sie können einen Alias ​​für Ihre Kopie von MAMPs php 5.3 erstellen. In meinem Fall habe ich den Alias ​​phpmamp genannt. Öffnen Sie Ihr Terminal und geben Sie Folgendes ein:

alias phpmamp='/Applications/MAMP/bin/php5.3/bin/php'

Wenn Sie in der Befehlszeile phpmamp eingeben, wird der MAMP php-Interperter gestartet. Bestätigen Sie dies, indem Sie Folgendes eingeben:

phpmamp --help

Sie werden diesen und jeden anderen Alias ​​höchstwahrscheinlich in einem ~/.bash_profile speichern wollen. Dadurch können die Aliase auch nach Neustarts bestehen bleiben. Ansonsten sollte der Alias ​​nur für die jeweilige Terminalsitzung gültig sein. Weitere Informationen zum Erstellen einer .bash_profile-Datei finden Sie hier:

http://www.redfinsolutions.com/redfin-blog/creating-bashprofile-ihr-mac

78
John Kramlich

Ich habe am ursprünglichen PHP-Speicherort einen Symlink erstellt.

1. Suchen Sie Ihre osx-php-version mit:

which php

Das Ergebnis sollte sein:

/opt/local/bin/php

2. Sichern (verschieben) Sie Ihre ursprüngliche PHP-Binärdatei:

Sudo mv /opt/local/bin/php /opt/local/bin/php.bak

3. Erstelle den Symlink:

Sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /opt/local/bin/php

4. Führen Sie Ihre neue PHP-Version aus:

php -v

PS:

Damit dies auf El-Capitan funktioniert

  • Starten Sie Ihren Mac im Wiederherstellungsmodus (halten Sie beim Start Cmd + R gedrückt).
  • Öffnen Sie das Terminal und geben Sie Folgendes ein: csrutil disable
  • Starten Sie neu
  • entweder: Sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /opt/local/bin/php 
    oder Sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /usr/bin/php
  • Starten Sie den RecoveryMode erneut und aktivieren Sie die Sicherheit erneut: csrutil enable
100
Heiko K.

Ich ziehe es vor, nicht an den aktuellen Dateien zu manipulieren, also stelle ich den bin-Ordner MAMP PHP der $PATH-env-Variablen voran.

Sie können ~/.bash_profile bearbeiten und die folgende Zeile oben einfügen

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

Ändern Sie einfach die Version von PHP auf die aktuelle Version, die Sie verwenden.

Vergessen Sie nicht, source ~/.bash_profile nach der Bearbeitung der Datei auszuführen.

63

Ich war mit den Ergebnissen/Lösungen, die ich bisher im Internet gefunden habe, nicht zufrieden, da die php.ini-Konfigurationen nicht in allen Fällen und auf allen Systemen ordnungsgemäß geladen wurden, insbesondere wenn Sie Module wie ioncube und andere benötigen (es ist noch verwirrender auf MAMP Pro). Deshalb habe ich meine eigenen PHP-Versions-Aliasnamen (mit Configs) erstellt, daher habe ich als Beispiel die folgende Lösung gefunden (basierend auf MAMP Pro, denken Sie daran, die Pfade der php.ini an Ihre Bedürfnisse anzupassen):

Bearbeiten Sie Ihr .bash_profile 

vim ~/.bash_profile

Fügen Sie die folgenden Einträge hinzu:

alias php55="/Applications/MAMP/bin/php/php5.5.26/bin/php -c '/Library/Application Support/appsolute/MAMP PRO/conf/php5.5.26.ini'"
alias php56="/Applications/MAMP/bin/php/php5.6.10/bin/php -c '/Library/Application Support/appsolute/MAMP PRO/conf/php5.6.10.ini'"
alias php56cgi="/Applications/MAMP/bin/php/php5.6.10/bin/php-cgi -c '/Library/Application Support/appsolute/MAMP PRO/conf/php5.6.10.ini'"

Initialisieren Sie das .bash_profile in der aktuellen Terminalsitzung erneut (andernfalls werden keine Änderungen angezeigt, es sei denn, Sie starten das Terminal neu):

source ~/.bash_profile

Wenn Sie einige zusätzliche Module installiert haben, können Sie sie mit php56 -v testen, und Sie sollten eine Ausgabe der ioncube-Module usw. erhalten. Ansonsten teste es mit php56 -i | grep "yourModuleNameOrSomethingElse"

Jetzt können Sie problemlos eine der PHP-Versionen wie "php56" in Ihrem Terminal verwenden, wenn alle Configs geladen sind. Somit ist es perfekt für das Testen und Erstellen Ihrer Anwendungen durch alle Versionen der Versionen, einschließlich der richtigen php.ini-Konfigurationen über das Terminal.

Für normale MAMP-Benutzer sollten sich die Konfigurationsdateien in/Applications/MAMP/conf/I think befinden. Viel Spaß beim Programmieren.

2
ioCron

Nun, bei OSX10.12.5 funktionierte nichts davon für mich

ich habe Mac-Ports php70 unter/opt/local/bin installiert

welches PHP zeigte: 

/usr/bin/php

Ich habe die Aliase und lokalen Pfade usw. eingerichtet, die meistens für mich funktionierten, aber andere Programme scheiterten (wie der Komponist). Die Lösung für mich bestand also darin:

/opt/local/bin
/opt/local/sbin

in die Datei/etc/pfade

dann hat alles einen zauber ausgeübt!

0
pgee70

Die neueste Version von MAMP (Version 5+) bietet eine einfache Möglichkeit, die Version von MAMP PHP für die Befehlszeile verfügbar zu machen. Wählen Sie einfach "PHP" in der Seitenleiste und markieren Sie "Diese Version in der Befehlszeile verfügbar machen". Kinderleicht! :)

Bildschirmfoto

0
hsaada

Nun, der Fehler 'Datei existiert' liegt wahrscheinlich daran, dass Sie versucht haben, einen Sym-Link mit dem Namen einer bereits vorhandenen Datei zu erstellen. Ich gehe davon aus, dass Sie sich in dem Verzeichnis befanden, das die PHP-Version enthielt, die Sie ersetzen wollten, oder dass dies ein zweiter Versuch war und Sie den vorhandenen Sym-Link nicht zuerst entfernt haben. Ich stimme mit den anderen darin überein, dass die Standardversion von PHP nicht "ersetzt/modifiziert" wird.

Basierend auf dem zweiten Teil der Frage, der beste Weg, um den gesamten Pfad einzugeben, müssen die Antworten, die auf einen Alias ​​schließen lassen, richtig liegen. Wenn jedoch mehrere Versionen beteiligt sind, müssen Sie etwas anderes als php aufrufen, um die Version auszuführen, die Sie ausführen möchten.

Ich habe ein Skript, mit dem ich die Version von PHP auswählen kann, mit der ich arbeiten möchte, mit der ein Sym-Link zu dieser Version erstellt wird. Dann kann ich einfach "PHP" als Befehl eingeben, wenn ich es verwenden möchte. Ich habe einen Blog darüber geschrieben hier , wo Sie das Skript bekommen können. Basierend auf der Antwort von @ioCron muss ich möglicherweise mein Skript erneut aufrufen, um die verschiedenen Konfigurationsordner zu berücksichtigen, die jeder Version zugeordnet sind.

0
StevenHill