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
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.
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.
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).
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
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
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.
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
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
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
export PATH = / pfad/in/deine/php/installation/bin: verlassen/rest/von/der/stuff/nicht berührt/: $ PATH
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;)
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.
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]
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 :)
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.