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

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

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

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

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:

в порядке для этого нужно работать на El-Capitan

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

затем все прелесть!