Как использовать версию 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:
в порядке для этого нужно работать на Эль-Капитана
- перезагрузите компьютер 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
тогда все это сработало обаяние!