一、背景

前段时间把Mac系统重装了,PHP的一些扩展都没了,昨天需要调试一个swoole开发的项目,发现命令行中的PHP是系统自带的,如果安装swoole扩展很不方便;需要自己手动去下载swoole的源码,然后去编译swoole的源码,并自己配置,整个过程非常繁琐;

我记得之前用brew安装的PHP,再使用pecl很方便就可以安装swoole,于是我把自带的PHP卸载然后重新使用brew安装,并且安装了pecl,在通过pecl安装了swoole扩展,把这个安装过程记录下来,方便下次使用吧

二、操作概要

  1. 卸载自带软件
  2. 重新安装软件
  3. 验证swoole扩展

三、卸载自带软件

之前Mac系统升级到10.15 catalina 版本,发现在卸载自带PHP的时候提示Read-only file system,网上找了一下解决方法是需要关闭系统的sip,然后才可以删除一些文件,执行的命令如下所示

sudo mount -uw /

命令执行之后,返回的信息如下图所示

在上图中可以看到命令已经执行成功,接着我们就可以删除自带的PHP,我们首先要找出自带PHP的位置,查看PHP位置命令如下所示

which php

命令执行之后,返回的信息如下图所示



在上图中可以看到返回了一个PHP的路径,我们将它删除即可,删除自带的PHP的命令如下所示

sudo rm -rf /usr/local/bin/php

命令执行之后,返回的信息如下图所示



在上图中可以看到rm命令没有提示异常,说明删除自带的PHP已经成功。

为了防止我们之前使用brew安装过老版本的PHP,我们也尝试卸载brew安装的PHP版本,卸载brew安装的PHP老版本命令如下所示

这一步骤不是必须的,但为了防止安装过程当中产生意外问题,所以可以的话就卸载,不卸载也可以直接跳到安装pecl步骤中

brew uninstall php

命令执行之后,返回的信息如下图所示



在上图中可以看到已经成功卸载了brew安装的PHP版本

四、重新安装

我们使用brew命令来安装PHP的新版本,brew本身也是需要安装的,但相信大家已经安装过了,使用brew安装php命令如下所示

brew install php

命令执行之后,返回的信息如下图所示

在上图中可以看到安装的PHP版本为7.3,也显示了PHP的安装位置,说明我们已经安装成功了。

接下来我们安装pecl,首先需要去php的官网下载pecl的安装包,执行命令如下所示

wget http://pear.php.net/go-pear.phar

命令执行之后,返回的信息如下图所示

在上图中可以看到已经将安装包下载完成,接下来我们使用PHP执行此安装包即可,执行命令如下所示

sudo php go-pear.phar

命令执行之后,返回的信息如下图所示

在上图中可以看到pecl已经安装完成,现在我们就可以使用pecl安装swoole了,执行命令如下所示

pecl install swoole

这条命令会有一个编译的过程,执行的时间有点长,在命令执行之后,返回的信息如下图所示

在上图中可以看到已经执行成功,并且自动将swoole扩展安装到了PHP的扩展目录,并添加到了配置文件当中。

五、验证swoole扩展

在swoole安装完成之后,我们可以通过下面两种方式来验证安装的可用性,首先是通过查看php安装的扩展模块命令,看看是否显示了swoole,执行命令如下所示

php -m

命令执行之后,返回的信息如下图所示

在上图中可以看到返回了swoole,说明php安装了swoole模块,我们接着找一个依赖swoole的项目,我这里有一个用laravel开发的项目需要一来到swoole,启动命令如下所示

php artisan laravels start

命令执行之后,返回的信息如下图所示

在上图中可以看到显示了PHP和swoole的版本信息,到此说明我们整个安装过程已经完成了

六、 图书推荐

如果对笔者的实践文章较为感兴趣,可以关注笔者出版社《PHP Web安全开发实战》,现已在各大平台上架销售,封面如下图所示

作者:汤青松

微信:songboy8888

日期:2019-12-03

Mac下使用Pecl安装PHP的Swoole扩展实践的更多相关文章

  1. mac下sublime text3安装SFTP及使用

    mac下sublime text3安装SFTP 1.shift+command+p进入控制面板 2.输入install进入程序安装界面选择需要安装的插件(SFTP) 3.直接进行安装(需要联网) 4. ...

  2. mac 下用 brew 安装mongodb

    转自:mac 下用 brew 安装mongodb 经过这位仁兄的文章指导,终于连上了mongodb. 启动mongo数据库,就是打开一个终端sudo mongod,然后打开另一个终端sudo mong ...

  3. mac下java的安装和升级以及相关环境设置

    安装:brew cask install java8 如果存在多个java,可以设置JAVA_HOME指定java版本 打开终端,执行/usr/libexec/java_home -V 查看MAC下J ...

  4. Mac下的mongodb安装

    mac下的mongodb安装主要有两种方式,一是手工安装,需在官网下载源文件,二是通过homebrew,至于homebrew不做介绍.既然是Mac系统下,我认为直接通过homebrew安装最好,省事还 ...

  5. mac下Spark的安装与使用

    每次接触一个新的知识之前我都抱有恐惧之心,因为总认为自己没有接触到的知识都很高大上,比如上篇介绍到的Hadoop的安装与使用与本篇要介绍的Spark,其实在自己真正琢磨以后才发现本以为高大上的知识其实 ...

  6. Mac下anaconda的安装和基本使用

    Mac下anaconda的安装和基本使用 安装 在conda官网下载安装conda. 打开terminal输入conda -V,回车显示conda的版本说明安装成功. 将conda更新到最新版本 co ...

  7. pecl安装php的ev扩展时的报错处理

    pecl安装php的ev扩展,安装完毕后php.ini中加入扩展extension=ev.so,然后重启php-fpm出现以下报错 PHP Warning:  PHP Startup: Unable ...

  8. Mac 下 PostgreSQL 的安装与使用

    在 mac 下,可以利用 homebrew 直接安装 PostgreSQL: 1 brew install postgresql -v 稍等片刻,PostgreSQL 就安装完成.接下来就是初始数据库 ...

  9. [转] Mac 下 PostgreSQL 的安装与使用

    在 mac 下,可以利用 homebrew 直接安装 PostgreSQL: 1 brew install postgresql -v 稍等片刻,PostgreSQL 就安装完成.接下来就是初始数据库 ...

随机推荐

  1. javascript小技巧-js小技巧收集(转)

    本文转载自:http://blog.csdn.net/ocean20/article/details/2498699 每一项都是js中的小技巧,但十分的实用! 1.document.write(&qu ...

  2. Asp.net MVC使用EasyNetQ操作RabbitMQ

    Demo下载地址:https://download.csdn.net/download/u010312811/11259742 .Net下操作RabbitMQ最常用的SDK是RabbitMQ.Clie ...

  3. SQL一些记录

    1,2字段约束create unique index [索引名] on 软件信息表(S_SName,S_Edition)

  4. offset系列属性

    offset系列:获取元素的相关的样式属性的值 offsetwidth:获取元素的宽 offsetheight:获取元素的高 offsetleft:获取元素距离左边位置的值 offsettop;获取元 ...

  5. Mobox企业网盘回收站文件清空与恢复的管控

    1. Mobox系统提供了 个人网盘的回收站 2. Mobox系统提供了 针对公司及部门文档柜的回收站 Mobox系统对个人网盘的回收站可以做这样的限制 1)  可以通过安装程序 ,不出现 回收站 2 ...

  6. 【JZOJ3424】粉刷匠

    description 赫克托是一个魁梧的粉刷匠,而且非常喜欢思考= = 现在,神庙里有N根排列成一直线的石柱,从1到N标号,长老要求用油漆将这些石柱重新粉刷一遍.赫克托有K桶颜色各不相同的油漆,第i ...

  7. csdn的富文本编辑器(html)格式的文章,添加的代码格式粘贴到项目中总是不对,我这里是maven的pom文件。

    在用富文本编辑器(html)格式编辑的时候,总是出现将pom文件的配置从csdn粘贴到项目中发现很多红,是因为自己在设置的时候有问题. 因为我们的是pom.xml,这里原来设置的java呀或者js为了 ...

  8. Spring MVC(十四)--SpringMVC验证表单

    在Spring MVC中提供了验证器可以进行服务端校验,所有的验证都必须先注册校验器,不过校验器也是Spring MVC自动加载的,在使用Spring MVC校验器之前首先要下载相关的jar包,下面是 ...

  9. Vue .sync修饰符与$emit(update:xxx)写法问题

    在学习vue自定义事件的.sync修饰符实现改变数值时发现一个问题如下由于props的大小写命名:fatherNum,对应不同的$emit()会有不同的效果,具体如下: 使用.sync修饰符,即 // ...

  10. namespace 命名空间

    namespace作用:资源隔离 当我们不指定namespace时,默认放在default下 创建namespace kubectl create namespace 资源名称 在生产中,我们建议一个 ...