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


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

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

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

6 55

6 ответов:

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

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

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

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

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

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

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

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

редактировать .файл

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 / I think. Счастливое Программирование.

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

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

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

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

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

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

/usr/bin/php

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

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

к файлу / etc / paths

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