最近写SDK的时候需要用到object类型提示符,PHPStorm智能提示说需要PHP7.2以上才能支持这种类型提示。

我一查我本机的PHP是7.1.30版本,于是考虑升级一下PHP版本。

首先要尝试使用如下命令进行升级:

brew update
brew upgrade php@7.4

第一个遇到的报错如下所示:

git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
This restriction has been made on GitHub's request because updating shallow
clones is an extremely expensive operation due to the tree layout and traffic of
Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you
automatically to avoid repeatedly performing an expensive unshallow operation in
CI systems (which should instead be fixed to not use shallow clones). Sorry for
the inconvenience!

然后按照提醒执行"git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow"命令还会报错:

fatal: dumb http transport does not support shallow capabilities

由此怀疑homebrew-core的源可能因为一些不可抗力的原因无法正常使用,从而导致fetch操作失败。可以考虑换成国内的源,编写shell如下所示:

# 切换到homebrew-core目录下
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
# 设置homebrew源为国内的中科大镜像
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
# 更新homebrew-core
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow

执行之后可以看到如下输出,然后就可以顺利执行brew update了。

remote: Enumerating objects: 539863, done.
remote: Counting objects: 100% (539826/539826), done.
remote: Compressing objects: 100% (194417/194417), done.
remote: Total 530481 (delta 341532), reused 521981 (delta 333211)
Receiving objects: 100% (530481/530481), 191.29 MiB | 9.18 MiB/s, done.
Resolving deltas: 100% (341532/341532), completed with 8120 local objects.

安装php7.4的方法很简单,可以使用源码下载编译的方法:

brew install --build-from-source php@7.4

可以看到大量输出,最后没有报错就可以完成php7.4的安装啦。

要让终端里面之前的PHP版本切换成功还需要在.bash_profile中设置环境变量,添加如下语句:

export PATH="/usr/local/opt/php@7.4/bin:$PATH"
export PATH="/usr/local/opt/php@7.4/sbin:$PATH"

最后执行source ~/.bash_profile命令完成生效操作。

为了确认是否真的生效,可以执行如下命令php -v

得到输出如下即为正确:

PHP 7.4.15 (cli) (built: Feb 21 2021 20:08:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.15, Copyright (c), by Zend Technologies

参考的资料如下:

  1. homebrew国内源替换办法
  2. php7.2升级到php7.4

MacOS下PHP7.1升级到PHP7.4.15的更多相关文章

  1. php7.0升级到php7.1

    $ add-apt-repository ppa:ondrej/php$ apt-get update$ apt-get upgrade php 来源:http://www.wuweixin.com/ ...

  2. 在lnmp环境下,将原来的PHP7.0升级到PHP7.2

    基础环境: 系统:centos6.8   环境:lnmp 停止PHP7.0的版本,在做如下操作: 1.下载php-7.2.6.tar.bz2软件包放在/opt 路径下 mkdir /usr/local ...

  3. 升级到php7相关问题,日请求过亿QQ会员活动平台PHP7升级实践

    升级到php7相关问题,日请求过亿QQ会员活动平台PHP7升级实践 日请求过亿:QQ会员活动平台PHP7升级实践http://mp.weixin.qq.com/s?__biz=MjM5MjAwODM4 ...

  4. windows 下wamp环境3 安装php7

    打开 http://php.net 点击download,选择Windows downloads,根据系统选择版本 注意左侧的提示: With Apache you have to use the T ...

  5. win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置

    原文:win7 64bit下最新Apahe2.4.18+php7.0.2+MySQL5.7.10配置 一.说明 以前配置apache+php+mysql都是参考网上的,一般都没有什么问题.最近公司有个 ...

  6. 升级安装php7要考虑的几个方面

    php7从推出到现在,前两天官方已经发布到7.2版本,把自己升级和安装php7中遇到的问题和解决方法做一个笔记,内容主要包括:1) mysql2) php3) nginx4) memcache扩展5) ...

  7. phpwind9.0升级到php7后出现的问题修复

    最近将一个两年多以前的用phpwind9.0搭建的论坛升级到php7,遇到了页面无法打开,显示为500错误,排查了一整天时间,终于解决! 1.打开文件:src/applications/appcent ...

  8. mac升级到php7

    使用homebrew安装php7 brew update #更新源 brew search php #查找源中的php,发现有php7.1版本,安装最新的php7.1 brew install php ...

  9. 升级到php7和安装拓展(mac centos)

    Mac升级到php7 使用homebrew安装php7 brew update #更新源 brew search php #查找源中的php,发现有php7.1版本,安装最新的php7.1 brew ...

  10. php7.3升级后CI框架session失效session不能读取的问题

    php7.3升级后CI框架session失效session不能读取的问题 框架ci3.0.2,php服务器从5升级到7.x后发现session失效了ci无法设置session的问题根本原因在,libr ...

随机推荐

  1. juery学习总结——例子

    1.select元素在选择是找到选择的值和option中的值 <!DOCTYPE html> <html> <head lang="en"> & ...

  2. Effective C++ -----条款19:设计class犹如设计type

    Class的设计就是type的设计.在定义一个新type之前,请确定你已经考虑过本条款覆盖的所有讨论主题. 新type的对象应该如何被创建和销毁? 对象的初始化和对象的赋值该有什么样的区别? 新typ ...

  3. window dos命名

    dos命令从c盘进入d盘c:\>d:敲回车 >dir 查看文件夹中文件运行java程序,最好先进入文件夹:然后javac Hello.javajava Hello

  4. 【poj1015】 Jury Compromise

    http://poj.org/problem?id=1015 (题目链接) 题意 随机挑选n个人作为陪审团的候选人,然后再从这n个人中选m 人组成陪审团.选m人的办法是:控方和辩方会根据对候选人的喜欢 ...

  5. AngularJS(15)-依赖注入

    AngularJS 依赖注入 什么是依赖注入 wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或 ...

  6. 玩转Android之数据库框架ActiveAndroid的使用

    ActiveAndroid是一个开源的数据库框架,使我们在Android中使用数据库变得更为简单,今天我们就来看看这个数据库框架的使用. 1.引入ActiveAndroid 首先创建我们自己的项目,在 ...

  7. http一问一答

    1.用户浏览网站时,发起请求和得到响应的基本过程是什么样的?为什么用户键入一个网址往往会发起多个请求? 首先制作一个非常简单的网页,它的内容只有一行: <html><body> ...

  8. Perl一行式:文本编解码、替换

    perl一行式程序系列文章:Perl一行式 文本大小写转换 全部字符转换成大写或小写,有几种方式: # 转大写 $ perl -nle 'print uc' file.log $ perl -ple ...

  9. redis数据转移随笔

    生产环境有一批版本比较老的redis主从架构,是一主多从,版本是2.8 由于想迁移到阿里云上,那么问题来了,怎么把redis数据转移到阿里云上 为了省事,阿里云也是和生产环境一样的版本,架构也一致,其 ...

  10. 写出优质Java代码的4个技巧

    我们平时的编程任务不外乎就是将相同的技术套件应用到不同的项目中去,对于大多数情况来说,这些技术都是可以满足目标的.然而,有的项目可能需要用到一些特别的技术,因此工程师们得深入研究,去寻找那些最简单但最 ...