Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

1. Найдите свою версию php osx с помощью:

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 на 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

Ответ 3

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

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

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

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

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

Ответ 4

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

Ответ 5

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

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

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

Ответ 6

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

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

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

/usr/bin/php

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

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

в файл /etc/paths

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

Ответ 7

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

Скриншот