PHP版本切换网上有写博客用 brew-PHP-switcher 切换实际没生效,博客也是相互抄,看了袭浪费时间。讲一下我的思路,因为PHP 可以cli 和fpm 的方式。安装PHP 将不同版本添加命令到bin 实现cli模式可以调用不同版本;fpm通过修改配置文件,绑定不同端口,就可以同时运行不同版本的fpm,使用Nginx 时配置文件写不用的fpm的端口号就可以使用不同版本的fpm了。用 homebrew 安装后软件目录也不同。Linux、windows也可以用类似方式实现。记录一下博客,方便后续有需要的人看,节约时间。
别跟我说docker!夏天macbook 开docker 热得一匹!
brew install PHP@7.4
## 等待brew 更新安装,太慢的,可以参考别人的博客换homebrew 的源
cd /usr/local/bin/
## PHP74 是我定义的命令文件名,其他版本自行定义名字。不过下文安装对应版本composer时要使用对应的命令名
ln -s /usr/local/opt/PHP@7.4/bin/PHP PHP74
PHP74 -v
PHP 7.4.21 (cli) (built: Jul 12 2021 11:57:26) ( NTS )
copyright (c) The PHP Group
Zend Engine v3.4.0, copyright (c) Zend Technologies
with Zend OPcache v7.4.21, copyright (c), by Zend Technologies
## 到此PHP7.4 安装成功了, 然后我们修改7.4 fpm 的配置文件
vim /usr/local/etc/PHP/7.4/PHP-fpm.d/www.con
## 找到 listen = 127.0.0.1:9000 这一行,将端口改为 listen = 127.0.0.1:9001,wq 保存退出
## 启动PHP7.4
brew services start PHP@7.4
## 然后查看端口, 发现9001 端口已经被PHP-fpm占用,配置 Nginx时,可根据需要配置fpm的端口。
lsof -nP -iTCP -sTCP:LISTEN
PHP-fpm 20184 xxx 8u IPv4 0x44b5422db725d7a3 0t0 TCP 127.0.0.1:9001 (LISTEN)
PHP-fpm 20187 xxx 9u IPv4 0x44b5422db725d7a3 0t0 TCP 127.0.0.1:9001 (LISTEN)
PHP-fpm 20188 xxx 9u IPv4 0x44b5422db725d7a3 0t0 TCP 127.0.0.1:9001 (LISTEN)
## 现在安装composer
cd ~
PHP74 -r "copy('https://getcomposer.org/installer', 'composer-setup.PHP');"
PHP74 -r "if (hash_file('sha384', 'composer-setup.PHP') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.PHP'); } echo PHP_EOL;"
PHP74 composer-setup.PHP
PHP74 -r "unlink('composer-setup.PHP');"
sudo mv composer.phar /usr/local/bin/composer74
## 运行composer74,出现composer字样表明安装成功!
composer74
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
重复以上步骤,指定不同版本如:brew install PHP@8.0,就可以安装其他版本的PHP 和 composer!
composer 改源的命令搜其他博客吧。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。