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, 官网文档为:https://getcomposer.org/download/
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 改源的命令搜其他博客吧。

macos 安装多版本PHP,composer的更多相关文章

  1. windows+Linux【Composer安装指定版本laravel】

    在windows下安装的方法:(php.ini中openssl.dll扩展必须打开,且版本>=5.4) 方法一:使用安装程序 这是将 Composer 安装在你机器上的最简单的方法. 下载并且运 ...

  2. laravel composer 安装指定版本以及基本的配置

    1 安装指定的 laravel版本 以下的案例是安装5.2版本 composer create-project laravel/laravel=5.2.* --prefer-dist 2 配置 优化相 ...

  3. windows下composer安装不了或composer命令无效的解决办法

    安装方法: http://docs.phpcomposer.com/00-intro.html#Installation-Windows (官方中文帮助文档) 问题描述1: 通过Composer-Se ...

  4. brew 安装指定版本命令行工具 tmux 多版本实现

    Homebrew 是 macOS 命令安装工具,其核心库里的命令行在 github homebrew-core 仓库上维护. 核心库命令大概有 5000 条左右,大部分的命令行工具只保留了最新版本的 ...

  5. macOS 安装 Java (Homebrew)

    macOS 安装多个 Java 版本 Homebrew 是 macOS 下的一个非常好用的包管理工具, caskroom 则是基于 Homebrew 构建的一个强大的应用程序管理器. Homebrew ...

  6. lumen或者laravel安装指定版本

    方法一 安装器安装:缺点不能安装指定版本 composer global require "laravel/lumen-installer" lumen new blog comp ...

  7. 记一次安装多版本php的四个雷区,你踩着了吗

    记一次安装多版本php的四个雷区,你踩着了吗   技术小疯子关注3人评论740人阅读2018-06-29 15:00:30   记一次安装多版本的php的四个雷区,你踩着了吗 需求:公司需要在同一台服 ...

  8. 安装指定版本的Ionic或Cordova(转载)

    安装ionic 及 cordova npm install -g cordova ionic 更新命令 npm update -g cordova ionic 安装特定版本 npm install - ...

  9. macOS 安装 Docker

    系统要求 Docker for Mac 要求系统最低为 macOS 10.10.3 Yosemite,或者 2010 年以后的 Mac 机型,准确说是带 Intel MMU 虚拟化的,最低 4GB 内 ...

  10. 1.1 Python for macOS 安装与配置

    本文主要讲解在macOS系统下的Python3.7.0的配置与安装问题 并调试好开发环境 目标是编辑成功第一个python程序 下载最新版(3.7.0)Python macOS系统自带python 不 ...

随机推荐

  1. C++Vector源码解析(侯捷STL)

    vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新的元素.vector的实现技术,关键在于对大小的控制以及重新配置时的数据移动效率. 一.vector的数据结构 vector采 ...

  2. SpringMVC学习笔记 - 第二章 - SSM整合案例 - 技术整合、统一结果封装、统一异常处理、前后联调、拦截器

    [前置内容]Spring 学习笔记全系列传送门: Spring学习笔记 - 第一章 - IoC(控制反转).IoC容器.Bean的实例化与生命周期.DI(依赖注入) Spring学习笔记 - 第二章 ...

  3. .Net 7 高端玩法,自定义一个CLR运行时

    前言: 曾几何时,一直想自己定制一个CLR运行时玩玩.满足下技术控的虚荣心,本篇带你一步一步打造一个属于自己的.Net 7运行时. 概括 假设你的电脑已经安装了.Net,并且运行正常.在进行自定义运行 ...

  4. JavaScript五花八门的跳转方式

    我们最常见的跳转方式是location.href = "http://www.baidu.com", 这种是最常见的,但是常常使用location.replace,location ...

  5. ARM启动顺序

    iROM(也叫BL0)的作用:   初始化系统时钟,设置看门狗,初始化栈和堆   加载BL1 BL1的作用:   初始化RAM , 关闭Cache , 设置栈   加载BL2 BL2的作用:   初始 ...

  6. 图书管理员(NOIP 2017 PJT2)

    0.题目 1.输入 输入 n,q: 输入图书,存入vector string a[20]数组,a[i][j],其中i表示图书编号的位数 2.查询操作 2.1 每输入一个读者需求 存入 int t; s ...

  7. JAVA虚拟机02---JAVA虚拟机运行时数据区域简介

      JAVA虚拟机运行时数据区域 1.程序计数器 1)它可以看做是当前线程执行的字节代码的行指示器,通过改变计数器的值来决定下一步执行的代码 2)它是线程私有的,每个线程都有自己的程序计数器(JAVA ...

  8. PDF-XChange Editor

    软件简介 PDF-XChange Editor官方版是PDF-XChange的增强版本编辑器,软件完全绿色免费,且功能无限制.PDF-XChange Editor官方版主要提供PDF电子文档的编辑功能 ...

  9. npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

    出现问题原因: vscode运行前端命令,没有为安装的npm配置环境变量 解决办法: 配置环境变量,可查看前一篇文章nodejs 环境变量配置 配置完后还出如题原因: 重新启动vscode终端powe ...

  10. React中组件之间是如何通信的 react的组件通信方式有哪些

    一.是什么 通信指的是发送者通过某种媒体 以某种格式来传递信息 到收信者以达到某个目的,广义上,任何信息的传递都是通信 二.如何通信? 组件传递的方式有很多种,根据传送者和接收者可以分为如下: 父组件 ...