Как использовать версию PHP MAMP вместо версии по умолчанию в OSX

Я хотел бы использовать версию PHP MAMP вместо версии по умолчанию, установленной на моем Mac. я пытался использовать

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

но получаю ошибку "Файл существует". Как лучше всего обойти это, чтобы я мог просто ввести php вместо полного пути?


person Josh Fraser    schedule 23.11.2010    source источник


Ответы (10)


Я бы не рекомендовал пытаться изменить версию PHP по умолчанию, которая вызывается в командной строке. Это может привести к поломке других частей вашей системы, а также создать проблемы в будущем, если вы решите обновить свою ОС.

Существует альтернатива, которая может удовлетворить ваши потребности. Вы можете создать псевдоним для своей копии MAMP php 5.3. В моем случае я назвал псевдоним phpmamp. Откройте терминал и введите:

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

Теперь, набрав phpmamp в командной строке, вы запустите интерпретатор MAMP php. Убедитесь в этом, набрав:

phpmamp --help

Скорее всего, вы захотите сохранить этот и любой другой псевдоним в ~/.bash_profile. Это позволит псевдонимам сохраняться при перезагрузке. В противном случае псевдоним должен длиться только для конкретного сеанса терминала, в котором вы находитесь. Дополнительную информацию о создании файла .bash_profile можно найти здесь:

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

person John Kramlich    schedule 24.11.2010
comment
В более поздних версиях псевдоним phpmamp='/Applications/MAMP/bin/php/php5.3.20/bin/php' заменяет часть 5.3.20 вашей версией. - person Andrew Winter; 08.03.2013
comment
Вы также можете создать псевдоним для самого php, который будет делать то, о чем вы просили, не возясь с конфигами: alias php='/Applications/MAMP/bin/php5.3/bin/php' Это было бы необходимо для автоматизированных инструментов. например, Composer, чтобы использовать правильную версию php. Также не забудьте перезапустить терминал или ввести source ~/.bash_profile, чтобы изменения вступили в силу. - person soulkphp; 09.06.2013
comment
FWIW, последний выпуск немного изменил путь. Надеюсь, это поможет кому-то избежать чистилища моего пути. :D псевдоним phpmamp='/Applications/MAMP/bin/php/php5.5.3/bin/php' - person Mike S.; 27.12.2013
comment
Я использовал этот метод раньше, НО я переключился на метод ниже, потому что установка php по умолчанию не имеет установленных расширений (например, mcrypt). Это необходимо при установке Laravel (с Composer) и использовании artisan. - person ATutorMe; 11.05.2015
comment
Как насчет варианта предложения ОП и предложения Джона вместе взятых. Используя символическую ссылку, но назвав ее phpmamp и создав ее в /usr/local/bin вместо Приложения? Разве это не лучший способ, так как тогда он будет сохраняться при перезагрузке без необходимости редактировать bash_profile, и это облегчит отслеживание / запоминание того, что вы его создали, поскольку он будет существовать в каталоге bin, а не быть скрытым в сценарии профиля bash. - person redfox05; 14.10.2015
comment
рекомендуется создание псевдонима - person Umar Adil; 05.06.2018

Я создал символическую ссылку в исходном месте php.

<сильный>1. Найдите свою версию php osx с помощью:

which php

Результат должен быть:

/opt/local/bin/php

<сильный>2. Сделайте резервную копию (переместите) исходный двоичный файл php:

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

<сильный>3. Создайте символическую ссылку:

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

<сильный>4. Запустите новую версию php:

php -v

ПС:

Чтобы это работало на Эль-Капитане

  • Перезагрузите Mac в RecoveryMode (удерживайте Cmd+R при загрузке)
  • Откройте Терминал и введите: csrutil disable
  • Перезагрузить
  • либо : sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /opt/local/bin/php
    либо sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /usr/bin/php
  • Перезагрузитесь снова в RecoveryMode и снова включите безопасность: csrutil enable
person Heiko K.    schedule 21.06.2013
comment
Это было лучшим решением для меня. Даже когда я использовал псевдоним php, консоль CakePHP продолжала использовать версию в /usr/bin/. - person Corie Slate; 08.08.2013
comment
К сожалению, это больше не будет работать в El Capitan... сейчас лучшее решение - это bash_profile... - person AlexK; 27.10.2015
comment
Я на Эль-Капитане, и это сработало без дополнительных шагов. - person Erin; 14.06.2016
comment
Только что попробовал Catalina 10.15.6, mv: rename /usr/bin/php to /usr/bin/php.bak: Operation not permitted - person Stanislav Stankov; 18.08.2020

Я предпочитаю не вмешиваться в текущие файлы, поэтому просто добавляю папку bin MAMP PHP к переменной env $PATH.

Вы можете отредактировать ~/.bash_profile и добавить следующую строку вверху

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

Просто измените версию PHP на текущую версию, которую вы используете.

Не забудьте сделать source ~/.bash_profile после редактирования файла.

person Ibrahim AshShohail    schedule 25.10.2014
comment
Это действительно помогло мне, а также это самый простой способ быстро изменить версию PHP! - person Maarten de Graaf; 18.08.2015
comment
Это самый безопасный и простой способ, и вам не потребуется повторно запускать скрипт(ы) каждый раз при обновлении ОС. - person PaulSkinner; 30.03.2016
comment
Лучший ответ! Я использовал символическую ссылку несколько лет, но просто изменить переменную PATH — это самый элегантный способ, поскольку вы не сбрасываете обновления MacOS. - person Matthias Kleine; 11.10.2016
comment
Это лучший ответ на данный момент, самый безопасный и действительно простой!! - person Rishi Kulshreshtha; 06.10.2017
comment
Это лучший ответ. Если у вас установлена ​​mamp, вы можете просто переключить установку. Я запустил which php, что дало мне /Applications/MAMP/bin/php/php7.1.8/bin/php. Поэтому я сначала проверил каталог установки Mamp и узнал, какие версии там были. Затем я запустил vim ~/.bash_profile, изменил путь экспорта для php на 7.0.22. Затем я побежал source ~/.bash_profile. И все, теперь, когда я запускаю which php в командной строке, я получаю: /Applications/MAMP/bin/php/php7.0.22/bin/php И все работает как часы. - person Maximus; 02.02.2018
comment
@Maximus хороший комментарий! Спасибо! Это source ~/.bash_profile решение взять правильный PHP! - person Stanislav Stankov; 18.08.2020
comment
Рад, что смог помочь @StanislavStankov - person Maximus; 20.08.2020
comment
Работал на меня. Mamp Pro — Mac OS Big Sur (бета) - person Drew Dello Stritto; 24.09.2020

Я не был доволен результатами / решениями, которые я нашел в сети до сих пор, потому что конфигурации php.ini не загружались должным образом во всех случаях и на всех системах, особенно когда вам нужны такие модули, как ioncube и другие (это еще больше сбивает с толку MAMP Pro). Вот почему я создал свои собственные псевдонимы версии php (с конфигами), поэтому в качестве примера я придумал следующее решение (на основе MAMP Pro, не забудьте настроить пути php.ini в соответствии с вашими потребностями):

Отредактируйте свой .bash_profile

vim ~/.bash_profile

И добавьте следующие записи:

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

Повторно инициализируйте .bash_profile в текущем сеансе терминала (иначе вы не увидите никаких изменений, если не перезапустите терминал):

source ~/.bash_profile

Если у вас установлены какие-то дополнительные модули, вы можете протестировать их с помощью php56 -v, и вы должны получить вывод модулей ioncube и т. д. В противном случае проверьте его с помощью php56 -i | grep "yourModuleNameOrSomethingElse"

Теперь вы можете легко использовать одну из версий php, например «php56», в своем терминале со всеми загруженными конфигурациями. Таким образом, он идеально подходит для тестирования и создания ваших приложений во всех итерациях версий, включая правильные конфигурации php.ini через терминал.

Думаю, для обычных пользователей MAMP конфигурации должны находиться в /Applications/MAMP/conf/. Удачного программирования.

person ioCron    schedule 04.08.2016

2021 - Для тех, кто использует ohmyzsh, файл для редактирования:

/Users/your_user/.zshrc

поэтому вы можете отредактировать этот файл и добавить путь:

export PATH=/Applications/MAMP/bin/php/php8.0.0/bin:$PATH

Отлично работает с Биг Сур

person Ale DC    schedule 20.06.2021

Если ваш терминал использует zsh (oh-my-zosh), как показано во вложении. проверить изображение Сделайте следующее.

Mac Big Sur использует zsh Oh-my-zosh для терминала. Итак, я сделал следующее.

  1. открытый терминал.
  2. проверьте, есть ли у вас файл .zshrc в пути вашего профиля (/Users/yourProfileName)
  3. если у вас нет файла .zshrc, создайте его с помощью команды (~ touch .zshrc).
  4. добавьте эти строки: export MAMP_PHP=/Applications/MAMP/bin/php/php7.4.12/bin export PATH=$MAMP_PHP:$PATH
  5. сохраните файл. закройте терминал и снова откройте его. Теперь запустите, какой php.

дайте мне знать, если вам нужна помощь.

person sohaib    schedule 19.01.2021

Для Mac OS Каталина. Найти каталог /Users/<user_name>/.zprofile

и добавить (например)

# MAMP PRO PHP
export PATH="/Applications/MAMP/bin/php/php7.4.2/bin:$PATH"

после перезагрузки в терминале

which php

новая версия php /Applications/MAMP/bin/php/php7.4.2/bin/php

person Qaurusai    schedule 09.05.2021

Что ж, ошибка «файл существует», вероятно, потому, что вы пытались создать символическую ссылку с именем файла, который уже был там. Я предполагаю, что вы были в каталоге, содержащем версию php, которую вы пытались заменить, или что это была вторая попытка, и вы сначала не удалили существующую символическую ссылку. Я согласен с другими в том, что не нужно «заменять/изменять» версию php по умолчанию.

Основываясь на второй части вопроса, лучший способ обойти необходимость ввода полного пути, ответы, предлагающие псевдоним, соответствуют этому. Однако, когда задействовано несколько версий, это означает, что для запуска версии, которую вы хотите запустить, необходимо вызывать что-то другое, кроме php.

У меня есть скрипт, который позволяет мне «выбрать» версию php, с которой я хотел бы работать, а затем создает символическую ссылку на эту версию и позволяет мне просто ввести «php» в качестве моей команды, когда я хочу ее использовать. Я написал об этом в блоге здесь, где вы можете получить сценарий. Основываясь на ответе, данном @ioCron, мне может потребоваться пересмотреть мой сценарий, чтобы учесть различные папки конфигурации, связанные с каждой версией.

person StevenHill    schedule 08.09.2016

Ну ничего из этого не работало для меня с OSX10.12.5

у меня есть порты Mac php70, установленные в /opt/local/bin

какой php показал:

/usr/bin/php

Я установил псевдонимы, локальные пути и т. д., которые в основном работали для меня, но другие программы не работали (например, композитор), поэтому решение для меня состояло в том, чтобы добавить:

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

в файл /etc/paths

тогда все это работало прелесть!

person pgee70    schedule 05.07.2017

Последняя версия MAMP (версия 5+) предлагает простой способ сделать версию MAMP PHP доступной для командной строки. Просто выберите «PHP» в меню боковой панели и установите флажок «Сделать эту версию доступной в командной строке». Очень просто! :)

скриншот

person hsaada    schedule 15.01.2019
comment
MAMP Pro версии 4 также имеет эту функцию. - person Jesus Lugo; 26.10.2019
comment
Я видел много ссылок на это, но этот вариант ничего не делает для меня. Может быть, это требует какой-то другой конфигурации? - person Drew Dello Stritto; 24.09.2020