Как использовать версию PHP MAMP вместо версии по умолчанию в OSX - PullRequest
56 голосов
/ 24 ноября 2010

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

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

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

Ответы [ 7 ]

101 голосов
/ 21 июня 2013

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

1. Найдите свою версию OSX PHP с:

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

PS:

Для того чтобы это работало на Эль-Капитане

  • Перезагрузите ваш Mac в RecoveryMode (удерживайте Cmd + R при загрузке)
  • Откройте терминал и введите: csrutil disable
  • Reboot
  • либо: 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
78 голосов
/ 24 ноября 2010

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

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

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

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

phpmamp --help

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

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

65 голосов
/ 25 октября 2014

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

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

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

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

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

2 голосов
/ 04 августа 2016

Меня не порадовали результаты / решения, которые я нашел в сети, поскольку конфиги 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 /, я думаю. Удачного программирования.

0 голосов
/ 16 января 2019

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

Скриншот

0 голосов
/ 05 июля 2017

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

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

, который показал php:

/usr/bin/php

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

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

к файлу /etc / paths

тогда все заработало!

0 голосов
/ 08 сентября 2016

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...