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

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

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

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

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

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

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

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

 phpmamp --help 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 /usr/bin/php 

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

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

в файл / etc / paths

тогда все это получило обаяние!