web-dev-qa-db-fra.com

Comment remplacer le chemin de PHP utiliser le chemin MAMP?

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
52
sf_tristanb

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.

2
Ricardo Martins

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.

128
David Yell

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).

103
Andrew Patton

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

12
Opentuned

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é

7
whatsnewsisyphus

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ù.

3
Kissaki

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
2
rckd

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
1
Lexsoul

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

  1. Ouvrez le fichier .bash_profile (situé dans le dossier de l'utilisateur actuel) à l'aide de l'éditeur de texte disponible.
  2. Ajoutez le chemin comme ci-dessous:

export PATH = / path/to/votre/php/installation/bin: quittez/reste/du/le/matériel/non modifié/: $ PATH

  1. Enregistrez votre fichier .bash_profile et redémarrez votre Mac.

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;)

1
Bhaskar Pramanik

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.

1
Andrew Lazarus

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]

0
Moshie

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 :)

screenshot

0
hsaada

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.

0
KalanyuZ