Comment utiliser la version de PHP de MAMP au lieu de la version par défaut sur OSX

j'aimerais utiliser la version de PHP de MAMP au lieu de la version par défaut installée sur mon mac. J'ai essayé d'utiliser

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

mais je reçois une erreur" File exists". Quelle est la meilleure façon de contourner cela pour que je puisse juste taper php au lieu du chemin complet?

55
demandé sur Josh Fraser 2010-11-24 02:15:07

6 réponses

Je ne recommande pas d'essayer de modifier la version par défaut de PHP qui est appelée sur la ligne de commande. Cela pourrait casser d'autres parties de votre système et vous causer des problèmes à l'avenir, si vous décidez de mettre à niveau votre système D'exploitation.

il y a une alternative qui pourrait répondre à vos besoins. Vous pouvez créer un alias pour votre copie de php 5.3 de MAMP. Dans mon cas, j'ai nommé l'alias phpmamp. Ouvrez votre terminal et tapez:

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

Maintenant, taper phpmamp sur la ligne de commande lancera l'interperter de PHP MAMP. Vérifiez ceci en tapant:

phpmamp --help

vous voudrez probablement stocker ceci, et tout autre alias, dans un ~/.bash_profile cela permettra aux alias de persister à travers les redémarrages. Sinon, l'alias ne devrait durer que pour la session de terminal dans laquelle vous êtes. Plus d'informations sur la création d'un fichier .bash_profile peuvent être trouvées ici:

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

77
répondu John Kramlich 2015-01-06 15:25:30

j'ai créé un lien symbolique à l'origine php emplacement.

1. Localisez votre version osx php avec:

which php

le résultat devrait être:

/opt/local/bin/php

2. Backup (move) votre binaire php original:

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

3. Créer le lien symbolique:

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

4. Exécuter votre nouvelle version php:

php -v

PS:

pour que cela fonctionne sur El-Capitan

  • redémarrez votre Mac pour RecoveryMode (maintenez Cmd+R sur le boot)
  • ouvrir le Terminal et entrer: csrutil disable
  • Reboot
  • soit: sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /opt/local/bin/php

    ou sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /usr/bin/php
  • redémarrer à nouveau pour récupérer le Mode et réactiver la sécurité: csrutil enable
99
répondu Heiko K. 2016-04-06 09:15:17

je préfère ne pas tripoter les fichiers courants, donc j'ai juste à pré-préparer le dossier de la corbeille PHP MAMP à la variable $PATH .

Vous pouvez éditer ~/.bash_profile et ajouter la ligne suivante en haut

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

il suffit de changer la version PHP pour la version actuelle que vous utilisez.

N'oubliez pas de faire source ~/.bash_profile après avoir modifier le fichier.

61
répondu Ibrahim AshShohail 2014-11-13 09:21:19

Je n'étais pas satisfait des résultats / solutions que j'ai trouvé sur le net jusqu'à présent, parce que le php.les configs ini n'étaient pas chargés correctement dans tous les cas et sur tous les systèmes, surtout quand vous avez besoin de modules comme ioncube et d'autres (c'est encore plus déroutant sur MAMP Pro). C'est pourquoi j'ai créé mes propres alias de version php (avec configs), donc j'ai trouvé la solution suivante, par exemple (basée sur MAMP Pro, n'oubliez pas d'ajuster le php.ini chemins d'accès à vos besoins):

Modifier votre .bash_profile

vim ~/.bash_profile

et ajouter les rubriques suivantes:

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'"

Ré-Initialiser le .bash_profile dans la session de terminal en cours (sinon vous ne verrez aucun changement, sauf si vous redémarrez le terminal):

source ~/.bash_profile

si vous avez quelques modules supplémentaires installés, alors vous pouvez le tester avec php56-v et vous devriez obtenir une sortie de l'ioncube, etc. module. Sinon tester avec php56 -i | grep "yourModuleNameOrSomethingElse "

Maintenant vous pouvez facilement utiliser une des versions php comme" php56 " dans votre terminal avec toutes les configs chargées. Il est donc parfait pour tester et construire vos applications à travers toutes les itérations de versions, y compris le bon php.ini configs via le terminal.

pour les utilisateurs normaux de MAMP, les configs doivent être localisés dans /Applications/MAMP/conf/ I think. Bonne programmation.

2
répondu ioCron 2016-08-04 18:56:30

Eh bien, l'erreur' file exists ' est probablement due au fait que vous avez essayé de créer un lien-sym avec le nom d'un fichier qui y était déjà. Je suppose que vous étiez dans le répertoire contenant la version php que vous essayiez de remplacer ou que c'était une deuxième tentative et vous n'avez pas d'abord supprimer le lien-sym existant. Je suis d'accord avec les autres pour ne pas "remplacer/modifier" la version par défaut de php.

Fondé sur la deuxième partie de la question, la meilleure façon pour contourner avoir à taper le chemin d'accès complet, les réponses suggérant un alias sont sur le point droit. Quand plusieurs versions sont impliquées, cela signifie qu'il faut appeler autre chose que php pour lancer la version que vous voulez lancer.

j'ai un script qui me permet de "sélectionner" la version de php que je voudrais travailler avec qui crée un lien symbolique de cette version et me permet de simplement entrer dans 'php' que ma commande quand je veux l'utiliser. J'ai écrit un blog à ce sujet ici où vous pouvez obtenir le script. Sur la base de la réponse donnée par @ioCron, je pourrais avoir besoin de revoir mon script pour tenir compte des différents dossiers de configuration associés à chaque version.

0
répondu StevenHill 2016-09-08 13:15:26

rien de tout ça ne marchait pour moi avec OSX10.12.5

j'ai mac ports php70 installé dans /opt/local/bin

que php a montré:

/usr/bin/php

j'ai mis en place les Alias et les chemins locaux, etc, qui ont principalement fonctionné pour moi, mais d'autres programmes ont échoué (comme composer) donc la solution pour moi était de préparer:

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

dans le fichier /etc/chemins

puis tout travaillé un charme!

0
répondu pgee70 2017-07-05 02:44:29