web-dev-qa-db-ger.com

Wie man den Pfad von überschreibt PHP den MAMP-Pfad verwenden?

Nachdem ich meine PHP -Konfiguration auf dem MAC völlig durcheinander gebracht hatte, versuchte ich, das SOAP - Modul zum Laufen zu bringen (-bash:/usr/bin/php: Keine solche Datei oder Verzeichnis ....) muss MAMP verwenden, aber jedes Mal muss ich den Pfad eingeben 

Applications/MAMP/bin/php5.3/bin/php to do command line.

Wie schreibe ich einfach php statt des gesamten Pfads unter MAC? Ich habe das überprüft und ich habe keine Datei namens .profile oder bash_profile

Vielen Dank

PS: Hier ist das Ausgabeecho $ PATH: 

echo $PATH
/Applications/MAMP/Library/bin/:/Applications/MAMP/bin/php5/bin/:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin
52
sf_tristanb

Bei jedem Speichern der MAMP-Konfiguration (PHP-Abschnitt) speichert sie die aktuelle Version von PHP in der ~/.profile-Datei und erstellt den Alias ​​für PHP, Birne und pecl, um auf die aktuell konfigurierte Version zu verweisen. (Hinweis: Sie müssen die Option "Diese Version in der Befehlszeile verfügbar machen" in MAMP aktivieren.)

Sie müssen jedoch Ihr Terminal aktualisieren (eine andere Sitzung öffnen), um diese Datei zu aktualisieren. Sie können auch source ~/.profile eingeben, um die Aliase manuell neu einzuordnen.

Wenn Sie diese curerente Version in einer PHP_VERSION-Variablen - wie oben kommentiert - zur weiteren Verwendung extrahieren möchten, können Sie Folgendes tun:

export PHP_VERSION=`grep "alias php" ~/.profile | cut -d"/" -f6 | cut -c4-`

Und dann haben Sie $ PHP_VERSION mit der aktuellen Version von MAMP zur Verfügung.

Wenn Sie schließlich Ihre PHP-Version mit der aktuell konfigurierten Version von mamp ausführen möchten, müssen Sie Ihrem ~/.bash_profile Folgendes hinzufügen:

export PHP_VERSION=`grep "alias php" ~/.profile | cut -d"/" -f6 | cut -c4-`
export PHPRC="/Library/Application Support/appsolute/MAMP PRO/conf/" #point to your php.ini folder to use the same php settings
export PATH=/Applications/MAMP/bin/php/php$PHP_VERSION/bin:$PATH

Jetzt liest selbst ein Skript, das auf /usr/bin/env php basiert, die korrekte Version aus der Mamp-Konfiguration.

2
Ricardo Martins

In Ihrem Heimatordner /Users/David für Beispiel können Sie einen .bash_profile erstellen. Hier können Sie Variablen exportieren und sie dann Ihrem Pfad hinzufügen.

Öffnen Sie die Datei, um sie in Ihrem bevorzugten Editor zu bearbeiten. Ich verwende vim.

Dann können Sie Ihren Pfad hinzufügen

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

Sie wollen Ihr Bit vor dem $PATH haben, da dies bereits /usr/bin enthält, in dem das System PHP lebt. Das System findet Ihre MAMP-Version also immer zuerst.

Speichern Sie diese Datei und starten Sie Ihr Terminal neu. Sie werden sehen, dass Sie Ihre MAMP-Version erhalten sollten.

Zum Testen verwende ich php -v, da OSX Lion 5.3.10 verwendet und mein MAMP 5.3.6
Sie können auch mit which php testen, der den Pfad zu Ihrer aktuellen PHP-Programmdatei ausgibt.

128
David Yell

Die Tatsache, dass sich die zuvor akzeptierte Antwort auf PHP 5.3.6 bezieht, während die aktuelle Version von MAMP standardmäßig mit 7.2.1 ausgeliefert wird (seit Anfang 2018), weist darauf hin, dass dies keine sehr nachhaltige Lösung ist. Sie können Ihren Pfad automatisch aktualisieren, indem Sie Ihrem .bash_profile eine zusätzliche Zeile hinzufügen, um die neueste Version von PHP von /Applications/MAMP/bin/php/ abzurufen und diese in Ihren Pfad zu exportieren. So mache ich es:

# Use MAMP version of PHP
PHP_VERSION=`command ls /Applications/MAMP/bin/php/ | sort -n | tail -1`
export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH

(Verwenden Sie source ~/.bash_profile, nachdem Sie Ihre Änderungen vorgenommen haben, um sicherzustellen, dass sie wirksam werden.)

Wie andere bereits erwähnt haben, möchten Sie wahrscheinlich auch Ihre Shell ändern, um die ausführbare mysql-Datei von MAMP zu verwenden, die sich in /Applications/MAMP/Library/bin befindet. Allerdings empfehle ich not, diesen Ordner zu exportieren, da dort eine Reihe anderer ausführbarer Dateien wie libtool vorhanden ist, die Sie wahrscheinlich nicht vor den installierten Systemversionen vorziehen möchten. Dieses Problem hat mich vor kurzem daran gehindert, ein Knotenpaket (libxmljs) zu installieren, wie in hier beschrieben.

Meine Lösung bestand darin, mysql und mysqladmin als Funktionen zu definieren und zu exportieren:

# Export MAMP MySQL executables as functions
# Makes them usable from within Shell scripts (unlike an alias)
mysql() {
    /Applications/MAMP/Library/bin/mysql "[email protected]"
}
mysqladmin() {
    /Applications/MAMP/Library/bin/mysqladmin "[email protected]"
}
export -f mysql
export -f mysqladmin

Ich habe Funktionen anstelle von Aliasnamen verwendet, da Aliase nicht an untergeordnete Prozesse übergeben werden oder zumindest nicht im Kontext eines Shell-Skripts. Der einzige Nachteil, den ich gefunden habe, ist, dass das Ausführen von which mysql und which mysqladmin nichts mehr zurückgibt, was eine Schande ist. Wenn Sie überprüfen möchten, welches mysql verwendet wird, und sicherstellen, dass alles kopazetisch ist, verwenden Sie stattdessen mysql --version.

Hinweis: @julianromera weist darauf hin, dass zsh keine Exportfunktionen unterstützt. In diesem Fall sollten Sie am besten einen Aliasnamen wie alias mysql='/Applications/MAMP/Library/bin/mysql' verwenden. Beachten Sie, dass Ihre Aliase möglicherweise nicht in Subshells verfügbar sind (wie beim Ausführen eines Shell-Skripts).

103
Andrew Patton

Ich habe festgestellt, dass es auf Mavericks 10.8 kein .bash_profile gab und sich meine Pfade in/etc/pfade befanden

Damit der neue Pfad (unabhängig davon, ob es sich um eine Mamp- oder Brew-Installation von PHP handelt) wirksam wird, muss er über dem Standardpfad/usr/bin/php in dieser Pfaddatei liegen. z.B.

/Applications/MAMP/bin/php/php5.3.6/bin
/usr/bin 

Öffnen Sie nach der Änderung ein neues Terminalfenster, und führen Sie "welche PHP" nun auf Ihren aktualisierten Pfad zeigen

12
Opentuned

sie könnten immer noch auf MySQL-Binärdateien stoßen, die auf diese Weise nicht gefunden werden

open terminal, type
touch ~/.bash_profile; open ~/.bash_profile

bearbeiten Sie wie folgt, speichern Sie das Gerät und starten Sie das Terminal oder alternativ neu

source ~/.bash_profile

um einen neuen PATH auszuführen, ohne das Terminal neu zu starten

und in der Art und Weise des Beitrags von DavidYell oben, fügen Sie auch Folgendes hinzu. Sie können verschiedene Variablen stapeln, indem Sie sie exportieren, gefolgt von einem einzelnen PATH-Export, den ich im Folgenden demonstriert habe

export MAMP_PHP=/Applications/MAMP/bin/php/php5.6.2/bin
export MAMP_BINS=/Applications/MAMP/Library/bin
export USERBINS=~/bins
export PATH="$USERBINS:$MAMP_PHP:$MAMP_BINS:$PATH"

prost

7

Wenn Sie tippen müssen

/Applications/MAMP/bin/php5.3/bin/php

fügen Sie dann in Ihrer Befehlszeile hinzu 

/Applications/MAMP/bin/php5.3/bin

zu Ihrem PATH, um von überall aus php aufrufen zu können.

3
Kissaki

Dieser hat für mich gearbeitet:

Sudo mv /usr/bin/php /usr/bin/~php
Sudo ln -s /Application/XAMPP/xamppfiles/bin/php /usb/bin/php
2
rckd

Für XAMPP-Benutzer können Sie Folgendes verwenden:

# Use XAMPP version of PHP
export PATH=/Applications/XAMPP/xamppfiles/bin:$PATH
source ~/.bash_profile

Und Sie können es überprüfen mit:

php -v
1
Lexsoul

Wahrscheinlich zu spät, um etwas zu kommentieren, aber ich habe Folgendes getan, als ich Probleme mit der Einstellung von php PATH für meine XAMPP-Installation unter Mac OSX hatte

  1. Öffnen Sie die Datei .bash_profile (unter dem aktuellen Benutzerordner) mit dem verfügbaren Texteditor.
  2. Fügen Sie den Pfad wie folgt hinzu:

export PATH = / pfad/in/deine/php/installation/bin: verlassen/rest/von/der/stuff/nicht berührt/: $ PATH

  1. Speichern Sie Ihr .bash_profile und starten Sie Ihren Mac neu.

Erläuterung: Terminal/Mac versucht, eine Suche auf den PFADEN durchzuführen, von denen er weiß, in der Hoffnung, das Programm zu finden, wenn der Benutzer ein Programm vom "Terminal" aus initiiert Der Trick besteht darin, das Terminal dazu zu bringen, die vom Benutzer beabsichtigte php zu finden, indem es auf die Benutzerversion von PHP in einem vom Benutzer installierten bin-Ordner verweist.

Arbeitete für mich :)

P. Ich bin immer noch ein verlorenes Schaf um meinen neuen Computer;)

1

Manchmal ist es einfacher, dies zu tun:

Sudo ln -s /Applications/MAMP/bin/php/php5.6.10/bin/php /usr/bin/php;

Die Mamps-Version von PHP war zum Zeitpunkt der Veröffentlichung php5.6.10. Vergewissern Sie sich daher, dass Sie diese Version in die Version ändern, die Sie verwenden.

Sie werden in einem Augenblick aufstehen.

1
Andrew Lazarus

Dies ist nicht eine ideale Lösung, da Sie zwei ini-Dateien verwalten müssen. Dies ist jedoch unter Windows möglich, indem Sie die php-ini-Datei in mamp aus dem conf-Ordner in Ihre aktive PHP-Version im bin-Ordner kopieren.

[MAMP INSTALL]\conf\[ACTIVE PHP VERSION]\php.ini

kopieren nach 

[MAMP INSTALL]\bin\php\[ACTIVE PHP VERSION]

0
Moshie

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! Siehe den Screenshot :)

screenshot

0
hsaada

Wenn Sie davon ausgehen, dass MAMP die aktuellste Version von php5 als Standard verwendet, können Sie zur Ergänzung der aktuellen akzeptierten Antwort in der Mitte grep 'php5' hinzufügen:

PHP_VERSION= `ls /Applications/MAMP/bin/php/ | sort -n | grep 'php5' | tail -1`

und Sie erhalten garantiert die aktuellste Version von php5, unabhängig von der MAMP-Version.

0
KalanyuZ