Après avoir complètement gâché ma configuration PHP sur MAC essayant de faire fonctionner le module SOAP (-bash:/usr/bin/php: Aucun fichier ou répertoire de ce type ....) dois utiliser MAMP mais à chaque fois je dois taper le chemin
Applications/MAMP/bin/php5.3/bin/php to do command line.
Comment simplement taper php à la place du chemin complet sur MAC? J'ai vérifié deux fois et je n'ai pas de fichier nommé .profile
ni bash_profile
Merci
PS: Voici quelle sortie echo $ 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
Chaque fois que vous enregistrez MAMP config (section PHP), il enregistre la version actuelle de PHP dans le fichier ~/.profile
et crée l'alias pour php, pear et pecl, qui pointe vers la version actuellement configurée. (Remarque: vous devez cocher l'option "Rendre cette version disponible sur la ligne de commande" dans MAMP)
Cependant, vous devez actualiser votre terminal (ouvrir une autre session) pour actualiser ce fichier. Vous pouvez également taper source ~/.profile
pour refaire manuellement les alias.
Si vous voulez extraire cette version actuelle dans une variable PHP_VERSION - comme indiqué ci-dessus - pour une utilisation ultérieure, vous pouvez faire:
export PHP_VERSION=`grep "alias php" ~/.profile | cut -d"/" -f6 | cut -c4-`
Et puis vous aurez $ PHP_VERSION disponible avec la version actuelle de MAMP.
Enfin, si vous voulez lancez votre php avec la version actuelle configurée sur mamp , il vous suffit d’ajouter à votre ~/.bash_profile
ce qui suit:
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
Maintenant, même le script qui repose sur /usr/bin/env php
lira la version correcte à partir de Mamp config.
Dans votre dossier de départ /Users/David
, par exemple, vous pouvez créer un .bash_profile
. Ici, vous pouvez exporter des variables puis les ajouter à votre chemin.
Ouvrez le fichier pour le modifier dans votre éditeur favori, j'utilise vim.
Ensuite, vous pouvez ajouter dans votre chemin
export MAMP_PHP=/Applications/MAMP/bin/php/php5.3.6/bin
export PATH="$MAMP_PHP:$PATH"
Vous voulez que votre part devance le $PATH
car cela inclut déjà /usr/bin
, où réside le système PHP. Ainsi, le système trouvera toujours votre version MAMP en premier.
Enregistrez ce fichier puis redémarrez votre terminal et vous verrez que vous devriez obtenir votre version de MAMP.
Pour tester, j'utilise php -v
comme OSX Lion utilise 5.3.10 et mon MAMP utilise 5.3.6.
Vous pouvez également tester en utilisant which php
qui affichera le chemin de votre exécutable php actuel.
Le fait que la réponse précédemment acceptée se réfère à PHP 5.3.6, alors que la version actuelle de MAMP est livrée avec la version 7.2.1 par défaut (à partir de début 2018), indique que cette solution n'est pas très durable. Vous pouvez mettre votre chemin à jour automatiquement en ajoutant une ligne supplémentaire à votre .bash_profile
pour obtenir la dernière version de PHP à partir de /Applications/MAMP/bin/php/
et l'exporter dans votre chemin. Voici comment je le fais:
# 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
(Utilisez source ~/.bash_profile
après avoir apporté vos modifications pour vous assurer qu'elles prennent effet.)
Comme d’autres l’ont déjà mentionné, vous voudrez probablement aussi modifier votre Shell pour utiliser l’exécutable mysql de MAMP, situé dans /Applications/MAMP/Library/bin
. Cependant, je not ne recommande pas l’exportation de ce dossier, car il contient de nombreux autres exécutables, tels que libtool
, que vous ne voulez probablement pas accorder la priorité à vos versions installées sur le système. Ce problème m'a empêché d'installer un paquet de noeud récemment (libxmljs), comme indiqué dans la documentation ici .
Ma solution était de définir et d'exporter mysql
et mysqladmin
en tant que fonctions:
# Export MAMP MySQL executables as functions
# Makes them usable from within Shell scripts (unlike an alias)
mysql() {
/Applications/MAMP/Library/bin/mysql "$@"
}
mysqladmin() {
/Applications/MAMP/Library/bin/mysqladmin "$@"
}
export -f mysql
export -f mysqladmin
J’ai utilisé des fonctions au lieu d’alias, car les alias ne sont pas transmis aux processus enfants, ou du moins pas dans le contexte d’un script Shell. Le seul inconvénient que j’ai constaté est que le fait d’exécuter which mysql
et which mysqladmin
ne renvoie plus rien, ce qui est décevant. Si vous voulez vérifier quel mysql est utilisé et que tout est copacétique, utilisez plutôt mysql --version
.
Remarque: @julianromera indique que zsh ne prend pas en charge l’exportation de fonctions. Dans ce cas, il vaut mieux utiliser un alias, tel que alias mysql='/Applications/MAMP/Library/bin/mysql'
. Sachez simplement que vos alias peuvent ne pas être disponibles à partir de sous-shell (comme lors de l'exécution d'un script Shell).
J'ai trouvé que sur Mavericks 10.8 il n'y avait pas de fichier .bash_profile et que mes chemins étaient situés dans/etc/path
Pour que le nouveau chemin d'accès (qu'il s'agisse d'une installation PHP ou php), il doit être au-dessus de la valeur par défaut/usr/bin/php dans ce fichier de chemins. par exemple.
/Applications/MAMP/bin/php/php5.3.6/bin
/usr/bin
Après la modification, ouvrez une nouvelle fenêtre de terminal et lancez 'quel php' qui doit maintenant pointer sur votre chemin mis à jour
vous risquez encore de rencontrer mysql binary si vous ne le trouvez pas de cette manière
open terminal, type
touch ~/.bash_profile; open ~/.bash_profile
éditer comme suit ci-dessous, sauvegarder, tout à fait et redémarrer le terminal ou alternativement
source ~/.bash_profile
exécuter un nouveau PATH sans redémarrer le terminal
et dans le style du post de DavidYell ci-dessus, ajoutez également ce qui suit. Vous pouvez empiler différentes variables en les exportant, suivies d'une seule exportation PATH dont j'ai fait la démonstration ci-dessous.
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"
à votre santé
Si vous devez taper
/Applications/MAMP/bin/php5.3/bin/php
dans votre ligne de commande puis ajoutez
/Applications/MAMP/bin/php5.3/bin
sur votre PATH pour pouvoir appeler php de n’importe où.
Celui-ci a fonctionné pour moi:
Sudo mv /usr/bin/php /usr/bin/~php
Sudo ln -s /Application/XAMPP/xamppfiles/bin/php /usb/bin/php
Pour les utilisateurs de XAMPP, vous pouvez utiliser ceci:
# Use XAMPP version of PHP
export PATH=/Applications/XAMPP/xamppfiles/bin:$PATH
source ~/.bash_profile
Et vous pouvez le vérifier avec:
php -v
Probablement trop tard pour commenter, mais voici ce que j'ai fait lorsque j'ai rencontré des problèmes avec la configuration de php PATH pour mon installation XAMPP sous Mac OSX
export PATH = / path/to/votre/php/installation/bin: quittez/reste/du/le/matériel/non modifié/: $ PATH
Explication: Terminal/Mac essaie de lancer une recherche sur les cheminsqu'il connaît, dans l'espoir de trouver le programme, lorsque l'utilisateur lance un programme à partir du "Terminal", d'où l'astuce ici est de faire en sorte que le terminal trouve le php, l’utilisateur a l’intention de le faire, en le pointant sur la version utilisateur de PHP vers un dossier bin, installé par l’utilisateur.
Travaillé pour moi :)
P.S Je suis toujours un mouton perdu autour de mon nouvel ordinateur;)
Parfois, c'est plus facile à faire:
Sudo ln -s /Applications/MAMP/bin/php/php5.6.10/bin/php /usr/bin/php;
La version de Mamps de PHP au moment de la publication était php5.6.10
, alors assurez-vous de la changer pour la version que vous utilisez.
Vous serez dans un Jiffy.
C'est pas une solution idéale car vous devez gérer deux fichiers ini. Cependant, j'ai réussi à contourner ce problème sous Windows en copiant le fichier inhi php dans mamp du dossier conf vers votre version active php dans le dossier bin.
[MAMP INSTALL]\conf\[ACTIVE PHP VERSION]\php.ini
copier
[MAMP INSTALL]\bin\php\[ACTIVE PHP VERSION]
La dernière version de MAMP (version 5+) offre un moyen simple de rendre la version de MAMP PHP disponible sur la ligne de commande. Sélectionnez simplement "PHP" dans le menu de la barre latérale et cochez la case "Rendre cette version disponible sur la ligne de commande". Peasy facile! Voir la capture d'écran ci-jointe :)
Pour compléter la réponse acceptée, si vous supposez que MAMP utilise par défaut la version la plus récente de php5, vous pouvez ajouter grep 'php5' au milieu:
PHP_VERSION= `ls /Applications/MAMP/bin/php/ | sort -n | grep 'php5' | tail -1`
et vous êtes assuré d'obtenir le dernier php5 indépendamment de la version de MAMP.