Mac下使用pecl安装PHP的swoole扩展实践

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

一、背景


前段时间把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安全开发实战》,现已在各大平台上架销售,封面如下图所示


目录
相关文章
|
2月前
|
设计模式 开发框架 PHP
深入浅出PHP中的依赖注入:实现与实践
在软件开发中,依赖注入(Dependency Injection, DI)作为一种设计模式,已经被广泛用于提高代码的模块化和可测试性。PHP作为一门动态脚本语言,在现代Web开发框架中广泛应用。本文将探讨依赖注入的基本概念、实现方式,并结合PHP语言特性,展示如何在日常开发中有效利用依赖注入来构建更加灵活和可维护的应用程序。
|
20天前
|
Java 程序员 PHP
01 入门PHP就来我这-安装phpstudy
路老师的PHP入门教程,带你从零开始学习PHP。首先下载并安装phpStudy,接着配置域名和端口,最后创建并运行第一个PHP文件。内容详实,适合初学者。
39 3
01 入门PHP就来我这-安装phpstudy
|
19天前
|
程序员 PHP 开发者
PHP中的异常处理:理解与实践
【10月更文挑战第36天】在编程的海洋里,异常处理是导航灯塔,指引我们避开错误的暗礁。本文将深入浅出地介绍PHP中如何通过try-catch语句来处理程序运行中的异常情况。我们将从基础语法入手,逐步过渡到高级用法,最后以一个实战案例来巩固知识点。无论你是PHP新手还是有经验的开发者,这篇文章都将帮助你提升代码的健壮性和可维护性。
|
2月前
|
NoSQL MongoDB PHP
PHP7 MongDB 安装与使用
10月更文挑战第19天
37 1
PHP7 MongDB 安装与使用
|
24天前
|
安全 编译器 PHP
PHP 8新特性解析与实践应用####
————探索PHP 8的创新功能及其在现代Web开发中的实际应用
|
1月前
|
PHP 开发者
PHP中的面向对象编程实践
【10月更文挑战第25天】在探索PHP的世界中,面向对象编程(OOP)是一块基石。本文将通过浅显易懂的语言和生动的例子,带你领略PHP中OOP的魅力。从基础概念到实际应用,我们将一步步揭开OOP的神秘面纱,让你轻松掌握这一强大的编程范式。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供有价值的指导和启示。
|
2月前
|
开发框架 自然语言处理 PHP
PHP在Web开发中的持久魅力与创新实践###
【10月更文挑战第17天】 本文探讨了PHP作为一门老牌却充满活力的编程语言,在现代Web开发中的独特优势和未来趋势。通过分析其简洁性、灵活性、强大生态系统及不断创新的特性,本文旨在揭示PHP为何能持续吸引开发者,并在技术快速迭代的时代保持竞争力。同时,文章也展望了PHP在未来Web开发领域的发展潜力,强调其在技术创新和社区支持下,依然能够引领Web开发的新潮流。 ###
39 9
|
1月前
|
SQL 安全 Go
PHP在Web开发中的安全实践与防范措施###
【10月更文挑战第22天】 本文深入探讨了PHP在Web开发中面临的主要安全挑战,包括SQL注入、XSS攻击、CSRF攻击及文件包含漏洞等,并详细阐述了针对这些风险的有效防范策略。通过具体案例分析,揭示了安全编码的重要性,以及如何结合PHP特性与最佳实践来加固Web应用的安全性。全文旨在为开发者提供实用的安全指南,帮助构建更加安全可靠的PHP Web应用。 ###
36 1
|
1月前
|
PHP 开发者
PHP中的面向对象编程:基础与实践
【10月更文挑战第22天】本文旨在通过简明的语言和实例,介绍PHP中面向对象编程的基础知识和实际应用。文章将深入浅出地解释类、对象、继承、封装和多态等概念,并通过代码示例展示如何在PHP中实现这些面向对象的特性。无论你是PHP新手还是有一定基础的开发者,这篇文章都将帮助你更好地理解和应用面向对象编程,提升你的PHP开发技能。
|
2月前
|
PHP 数据安全/隐私保护 开发者
PHP 7新特性解析与实践
【10月更文挑战第20天】本文将深入浅出地介绍PHP 7的新特性,包括性能提升、语法改进等方面。我们将通过实际代码示例,展示如何利用这些新特性优化现有项目,提高开发效率。无论你是PHP新手还是资深开发者,都能从中获得启发和帮助。