1.查询现在可以安装的php版本
brew search php
2.正常安装php版本
brew install php@8.0
3.安装版本控制
网上有说使用brew来安装php-version的,但是我试过了,查不到php-version,就懒得加源了,直接通过git下载安装,这种方式基本上所有电脑都能使用,前提是安装了git。
进入你要放置php-version的目录。
git clone https://github.com/wilmoore/php-version.git
source php-version/php-version.sh
php-version 完成
如果退出被后发现用不了php-version的话,那么就把他加入~/.zshrc
vi ~/.zshrc //在文件的最后加入下面这行
source /usr/local/etc/php-version/php-version.sh //前面是你的实际安装路径
php-version的基本使用:
直接输入:php-version可以查看所有已安装的php版本信息
切换版本:
php-version 7.3.33//这里只是演示,待第二个php安装好之后,就可以使用这条命令切换了
4.安装第二个版本的php
brew install php@7.3
如果报以下的错误:
php@7.3 has been disabled because it is a versioned formula!
解决办法:
brew tap shivammathur/php
brew install shivammathur/php/php@7.3
这个解决办法是安装另一个源的php版本,网上有说注释一个文件的disable语句,我试了还是不行,没有进一步找到解决办法,所以就只有换一个源来安装了。
shivammathur的php安装成功后,执行php -v报了icu4c的错误。
Library not loaded: '/usr/local/opt/icu4c/lib/libicui18n.71.dylib'
Referenced from: '/usr/local/Cellar/php@7.1/7.1.33_5/bin/php'
我查看了一个我电脑的icu4c是70的,但是php要求是71的(基本版本同理,报错要求是什么版本的,就去下什么版本的),所以接下来就要把icu4c升级:
接下来解决版本问题:
1.下载libicui18n.71.dylib 这个包,地址:https://ssl.icu-project.org/files/icu4c/
注意一定要是icu4c-71_1-src.tgz 这个,不要下zip的,zip是针对win系统的,会报错。
71包的下载地址:https://github.com/unicode-org/icu/releases/tag/release-71-1
2.安装下载的包
先解压,然后编译安装
cd ./source
./configure
make
make install
再执行php -v,就不会报错了。
至此就安装了两个php的版本,可以通过php-version查看已经安装的php版本信息,这里安装2个php版本方案,也同样适用于安装多个php版本,使用php-version切换。使用方法上面已经介绍,不再赘述。
中途使用过程中,可能会出现使用php-version切换php的版本后,php -v已经是新版本,但是项目里打印phpinfo()的时候还是老版本,这样的话,就需要把老版本php给停止掉:
brew services stop php@8.0 //停止php@8.0服务
brew services restart nginx //重启nginx服务
原因未知,我也只出现过一次这种情况。停掉老版本服务后,打印phpinfo()就正确了。