PHP - 将macOS系统下的PHP升级成最新版本(7.3),并设为默认

2020-01-06 23:34:07

参考地址 PHP - 将macOS系统下的PHP升级成最新版本(7.3),并设为默认

    由于我当前使用的 Mac 电脑的 PHP 版本比较低(7.1.19),许多新特性和功能不支持,现准备将其升级成最新版(7.3.2),具体步骤如下。

1,通过 brew 安装 php

在终端输执行如下命令,不需要指定安装 php 版本,它会自动升级到最新版本,同时 brew 会自动 update

1
brew install php


2,启用新版本的 php

(1)安装后我们在终端执行 php -version 会发现版本还是老的:

原文:PHP - 将macOS系统下的PHP升级成最新版本(7.3),并设为默认


(2)首先我们执行如下命令打开 .bash_profile

1
sudo vim ~/.bash_profile


(3)按下 i 键启用编辑模式,并在末尾增加如下两行内容。

1
2
PATH="$(brew --prefix php)/bin:$PATH"
export PYTHON_ENV=development


(4)然后按下 esc 退出编辑模式。 接着组合按下 shift + : 开启命令,然后输入 wq 回车,保存退出。

(5)最后我们在终端中执行如下命令即可 :

1
source ~/.bash_profile


(6)再次在终端执行 php -version 会发现已经使用更新版本的 php 了:

原文:PHP - 将macOS系统下的PHP升级成最新版本(7.3),并设为默认


3,重新安装 Apache

(1)经过上面操作后,由于我之前使用的是系统自带的 Apache,当创建一个 php 页面输出 phpinfo() 信息会发现,php 版本还是使用老的:

原文:PHP - 将macOS系统下的PHP升级成最新版本(7.3),并设为默认


(2)这是由于系统自带的 Apache 与 Homebrew 一起使用会有问题,因为 Apple 在此版本中删除了一些必需的脚本。首先我们依次执行下面命令关闭内置的 Apache

1
2
sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null


(3)接着使用 Brew 安装新的 Apache 版本:

1
brew install httpd


(4)执行如下命令启动新 Apache 服务器:

1
sudo brew services start httpd


(5)新 Apache 服务器默认端口是 8080,我们使用浏览器访问 http://localhost:8080 测试下效果:

原文:PHP - 将macOS系统下的PHP升级成最新版本(7.3),并设为默认


(6)接着我们要给 Apache 增加 php 模块支持,在终端中执行如下命令编辑 httpd.conf  文件:

1
sudo vim /usr/local/etc/httpd/httpd.conf


(7)按下 i 键进入编辑模式,增加如下几行配置:

1
2
3
4
LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so
<FilesMatch \.php$>
        SetHandler application/x-httpd-php
</FilesMatch>


(8)接着找到如下节点:

1
2
3
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>


将其改成如下内容:

1
2
3
<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php
</IfModule>


(9)最后按下 esc 退出编辑模式。 接着组合按下 shift + : 开启命令,然后输入 wq 回车,保存退出。

(10)在 /usr/local/var/www 下放置创建一个 php 页面输出 phpinfo() 信息会发现,已经是使用新版的 php 了:

原文:PHP - 将macOS系统下的PHP升级成最新版本(7.3),并设为默认


4,修改 Apache 网站根目录

    默认网站根目录是 /usr/local/var/www,如果想切换到自定义的目录下,比如:/Users/hanggg/wwwroot。可以通过如下操作来实现。

(1)使用 vim 命令编辑 httpd.conf 文件,找到 DocumentRoot 和 Directory 替换成 /Users/hangge/wwwroot

原文:PHP - 将macOS系统下的PHP升级成最新版本(7.3),并设为默认


(2)保存退出后,执行如下命令重启 Apache 服务器即可。

1
sudo brew services restart httpd


5,修改 Apache 服务器端口

(1)默认服务器端口是 8080,如果想要改成 80。同样是修改 httpd.conf 文件。

原文:PHP - 将macOS系统下的PHP升级成最新版本(7.3),并设为默认

(2)保存退出后,执行如下命令重启 Apache 服务器即可。

1
sudo brew services restart httpd


  • 2019-05-21 12:37:34

    RecyclerView 刷新闪烁

    闪烁是 notifyDataSetChange 造成的。由于适配器不知道整个数据集中的哪些内容已经存在,在重新匹配 ViewHolder 时发生的。 当然,遇到这个问题时有去搜索一些答案,看到的很多都是去禁止 RecycleView 的默认动画,可惜这对我没什么用。下面的方法是对我有用的。

  • 2019-05-21 12:43:26

    (重要)RecycleView的缓存机制

    RecycleView的四级缓存是由三个类共同作用完成的,Recycler、RecycledViewPool和ViewCacheExtension。Recycler用于管理已经废弃或者与RecyclerView分离的ViewHolder,这里面有两个重要的成员,为可以看见的屏幕的内部缓存成员mAttachedScrap、mChangedScrap和滑出屏幕外的外部缓存成员mCachedViews二者共同完成ViewHolder的缓存;RecycledViewPool类是用来缓存整体所有的ViewHolder,是对mCachedViews缓存的补充;ViewCacheExtension是扩展内的缓存对象,默认不加载,需实现方法getViewForPositionAndType(Recycler recycler, int position, int type)来实现自己的缓存。接下来对四级缓存一步步介绍。

  • 2019-05-21 12:44:31

    对嵌套RecyclerView的优化

    RecyclerView 是一个更高级的 ListView ,它可以重用view避免额外创建太多的view从而带来流畅的滚动性能。RecyclerView通过叫做 View pool 的东西持有不再可见的 view ,让它可被回收

  • 2019-05-25 14:54:50

    commit your changes or stash them before you can merge

    Your local changes to the following files would be overwritten by merge:         protected/config/main.php Please, commit your changes or stash them before you can merge. --------------------- 作者:陈小峰_iefreer 来源:CSDN 原文:https://blog.csdn.net/iefreer/article/details/7679631 版权声明:本文为博主原创文章,转载请附上博文链接!

  • 2019-05-27 10:43:34

    IntelliJ IDEA中C盘文件过大怎么办

    当我在D:\ 安装完IDEA9.0之后,建立了一个工程,发现C:\Users\Administrator\.IntelliJIdea90 竟然增大到了500+M,并且随着使用在逐渐增大,这样占用系统盘资源是非常让人不爽的,那么如何将其修改到其他路径呢?

  • 2019-05-28 13:33:20

    BRVAH+MTRVA,复杂?不存在的

    言归正传,这样的一个首页,我们需要做怎么样的基础工作呢?或者说,碰到以后更复杂的页面我们应该怎么做?这里小提示下,不要再用什么类似ScrollView的这种东西了,诶,好像说的有点绝对,尽量不要用,这不是谷歌想要看到的,5.0谷歌推出了RecyclerView,从它的整个设计架构来看,简直就是为这而生的。而RecyclerView的视图是通过Adapter来渲染的。原始的Adapter,让人很蛋疼,重复工作太多,我们应该要有封装的思想,把最需要的部分提供出来,其它不用管。