2010-11-23 1 views
52

Я хотел бы использовать версию PHP для MAMP вместо установленного по умолчанию на моем Mac. Я попытался с помощьюКак использовать версию PHP для MAMP вместо значения по умолчанию для OSX

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

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

ответ

75

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

Существует альтернатива, которая может удовлетворить ваши потребности. Вы можете создать псевдоним для своей копии php 5.3 MAMP. В моем случае я назвал псевдоним 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

+3

В более поздних версиях, псевдоним phpmamp = '/ Applications/MAMP/bin/PHP/php5.3.20/bin/PHP' заменяя 5.3.20 часть с версией – AWinter 2013-03-08 08:14:05

+5

Вы также можете создать псевдоним для "PHP" который будет делать то, о чем вы просили, не вникая с конфигурациями: alias php = '/ Applications/MAMP/bin/php5.3/bin/php' Это было бы необходимо для использования автоматических инструментов, таких как Composer правильная версия php. Также не забудьте перезапустить терминал или ввести «источник ~/.bash_profile», чтобы изменения вступили в силу. – soulkphp 2013-06-09 08:26:25

+1

FWIW, последний релиз немного изменил путь. Надеюсь, это поможет кому-то избежать «найти мой путь» чистилище. : D alias phpmamp = '/ Applications/MAMP/bin/php/php5.5.3/bin/php' – 2013-12-27 00:54:23

99

Я создал символическую ссылку на первоначальном месте 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:

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

  • Reboot ваш Mac к RecoveryMode (удерживая Ctrl + 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
  • Reboot снова RecoveryMode и повторно включить безопасность: csrutil enable
54

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

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

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

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

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

1

Я не был доволен результатами/решениями, которые я нашел в сети до сих пор, поскольку конфигурации 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'" 

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

source ~/.bash_profile 

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

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

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

0

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

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

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

0

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

я есть порты макинтош php70 установлен в/Opt/местные/бен

который PHP показал:

/usr/bin/php 

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

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

к файлу/etc/paths

тогда все сработало очарование!

Смежные вопросы