Mac / OSx — изменить версию PHP, которая называется вызовом в bash
Я хочу, чтобы вторичная версия PHP 5.3.15 была в основном, потому что в этой версии я правильно установил расширения и т.д. Как я могу установить /usr/bin/php как основной → я хочу, когда вызов «php -v» возвращает мою версию 5.3.15. Избегайте моего плохого английского, я надеюсь, что вы поймете. Большое вам спасибо. У меня Mac OSx Lion
Есть ли разница в функциональности PHP между этими версиями? ( 5.3.15 vs 5.3.17 ) Хотя вопрос хороший.
5 ответов
Я бы порекомендовал вам установить php через «Mac-порты».
У вас установлено несколько версий php.
С помощью команды cli «which» вы можете:
ОПИСАНИЕ Утилита принимает список имен команд и ищет путь для каждого исполняемого файла который будет запущен, если бы эти команды действительно были вызваны.
Итак, прочитайте man-страницы команды cli «which».
Сделайте это из своего cli:
а затем вы увидите, где находится ваш исполняемый файл php. Я бы рекомендовал вам заменить исполняемый файл php для символической ссылки на ваш/usr/bin/php.
Да, которые возвращают «/ opt / local / bin / php». Я думаю, что у меня беспорядок в PHP на моем ПК, потому что я правильно использовал PHP, который был в OSX (Lion), но мне нужна была библиотека php_intl, поэтому я установил эту библиотеку через порты Mac и знаю, что у меня есть две версии PHP и с php_intl и правильно установлена версия / usr / bin / php.
@frosty22 frosty22 Хорошо, просто сделайте то, что я сказал, удалите ссылку php или файл из / opt / local / bin, а затем сделайте символическую ссылку php внутри / opt / local / bin, указывающую на / usr / bin / php, а затем вот эту. будет вашей официальной версией php cli и все.
Спасибо удалите файл /opt/local/bin/php и создайте символическую ссылку — sudo ln -s /usr/bin/php /opt/local/bin/php работает отлично
Другой способ, не изменяя исходный файл/ссылку php, — это изменить файл .bashrc следующим образом (также работает с другими командами):
- Откройте терминал/Командная строка и введите:
alias php="/Applications/MAMP/bin/php/php5.4.10/bin/php"
Чтобы он не изменялся в папке /usr/bin, и вы можете экспортировать файл/настройки bashrc в любую другую систему linux/bsd, если это необходимо, даже не касаясь файлов OS/usr/bin. Вы также можете добавить новые псевдонимы для разных версий php, псевдонимы типа «php52», «php53», «php54» и т.д. Для целей тестирования или вообще.
Для пользователей brew вам может не понадобиться php55, если у вас уже есть 54 — но независимо от того, что вы, вероятно, должны запускать эти команды
$ brew install php54 php54-xdebug php54-mcrypt
вы можете заменить 54 с последним номером, если хотите. последний я проверил, что он был на 56
тогда, основываясь на некоторых комментариях выше, вы должны запустить:
PHP 5.4.24 (cli) (built: Jan 19 2014 21:32:15) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
если это так, а затем измените свой .bash_profile, как некоторые из других комментаторов мой экземпляр brew (я думаю, его значение по умолчанию) живет в
/usr/local/Cellar /usr/local/bin
по мере того, как все будет установлено с помощью brew, они будут помещены в подвал и связаны через корзину. но в этом случае нам нужно переопределить php
my kinda выглядит следующим образом:
PATH=$PATH:~/bin PATH=$PATH:/usr/local/bin PATH=$PATH:/usr/local/sbin PATH=$PATH:/usr/local/Cellar/r/2.15.1/R.framework/Versions/Current/Resources/li$ export PATH
что означает, что он уже имеет доступ к /usr/local/bin — но я использую псевдоним для указания добавив эту строку, в нижней части:
сохраните и закройте окно терминала, откройте еще один, и он должен показать что-то вроде:
$ php --version PHP 5.4.27 (cli) (built: Apr 24 2014 17:16:35) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies with Xdebug v2.2.4, Copyright (c) 2002-2014, by Derick Rethans
Managing multiple versions of PHP on Mac OS X with Homebrew
The blog is currently being ported from WordPress to over 12 years of static pages of content. If there’s an article missing that you’re hoping to see, please contact me and let me know and I’ll prioritize getting it online.
A few weeks ago, I wrote a post about managing different versions of Python on Mac OS X, and today I’m going to explain how I use multiple versions of PHP on the same platform.
The Problem
Until the homebrew-php group figure out a better way of handling several versions of PHP (their instructions haven’t worked for several months), and without installing something like phpenv, I concocted my own means to manage PHP versions using bash aliases similar to my Python post.
(Command line output that I’ve pasted below may be truncated for brevity.)
Step 1: Install your favorite versions of PHP
Homebrew is still awesome at installing PHP, but trying to install multiple versions back-to-back will produce errors:
$ brew tap homebrew/dupes $ brew tap homebrew/versions $ brew tap homebrew/homebrew-php $ brew install php55,6>,70,1>> . Error: Cannot install homebrew/php/php56 because conflicting formulae are installed. php55: because different php versions install the same binaries. Please `brew unlink php55` before continuing.
There’s an easy way around it:
$ for i in 55 56 70 71; do > brew install php$i > brew unlink php$i > done
This will install PHP 5.5, 5.6, 7.0 and 7.1, unlinking each version right after its installation, and leaving you with PHP 7.1 as your system default.
Step 2: Bash aliases
I put all of my aliases in a .bash_aliases.sh file in my home directory and call that from within my .bashrc file. (your system may use .bash_profile which will operate in the same way.
# ~/.bashrc # put this at the bottom of the file if [ -f ~/.bash_aliases.sh ]; then . ~/.bash_aliases.sh fi
# ~/.bash_aliases.sh function unlink_php for i in `ls -1 /usr/local/opt/ | grep php | cut -c4-5 | uniq`; do brew unlink php$i > /dev/null done > for i in `ls -1 /usr/local/opt/ | grep php | cut -c4-5 | uniq`; do alias php$i="unlink_php && brew link php$i" done
The unlink_php function basically auto-detects which versions of PHP you have installed with homebrew, and unlinks all of them. I’m sure you could be clever and detect via php -version which version is currently linked and just unlink that one, but this gives me peace of mind that ALL versions are properly unlinked.
Then, it uses the same auto-detection to create aliases for each version which also calls the unlink_php function so any time I switch to a different PHP version, Homebrew will unlink all others and re-link the version I want.
Now you can source that aliases script and you should be in business:
Step 3: Magic
Verify that your new aliases are made:
$ alias | grep php alias php55='unlink_php && brew link php55' alias php56='unlink_php && brew link php56' alias php71='unlink_php && brew link php71'
And then you can switch your version of PHP using your alias:
$ php55 Linking /usr/local/Cellar/php55/5.5.38_11. 17 symlinks created $ php --version PHP 5.5.38 $ php71 Linking /usr/local/Cellar/php71/7.1.0-rc.3_8. 17 symlinks created $ php --version PHP 7.1.0RC3