PHP安装Swoole扩展

简介: 前言:之前有尝试使用源码安装php7,本次分享主要是学习安装了Swoole.我听过一个大牛曾经说过,Swoole是php的新世界,不会使用Swoole的php工程师不是一名合格的php工程师.

前言:

之前有尝试使用源码安装php7,本次分享主要是学习安装了Swoole.我听过一个大牛曾经说过,Swoole是php的新世界,不会使用Swoole的php工程师不是一名合格的php工程师.我一听,那还得了.赶紧学习

下载安装包

swoole官网里有下载版本,选择你需要的版本,会跳转到swoole的一个码云或者是一个github
都是使用的git.那这个就比较方便了.直接git clone下来就可以了

git clone https://gitee.com/swoole/swoole.git

克隆下来就会有个文件名叫swoole的安装包


克隆下来的安装包

编译安装

其实安装Swoole的思路和安装php大体是一样的.都是先编译configure 然后make && make install
但是当我进入swoole的文件时,发现并没有我们熟悉的configure文件
其实安装这种扩展分为两种:

  1. 编译php时候安装的扩展
  2. php安装完成后,外挂到php上的扩展
    我们这里的Swoole就是属于第二种.我们要让Swoole变成我们php外挂模块,则需要一个php命令
    那就是phpize
    如果配置了环境变量则可以直接使用phpize命令
phpize
有可能会遇到的报错

如果报这个错的话,就是没有安装autoconf
解决方案也简单

yum install autoconf

安装完成后,再一次使用phpize就可以了
如果没有报错的话,我们再查看下安装包里的文件,就可与发现里面多了些之前没有的文件,报错我们需要的configure文件也有了


多了些文件

那么现在我们就可以执行编译了,同样 我们可以使用 configure --help 查看可以配置信息

#我们编译需要指定一个php-config的文件
./configure --with-php-config=/service/php/bin/php-config

如过出现一下报错


报错截图

出现该情况是由于c++编译器的相关package没有安装

解决方法就是安装一个c++的编辑器

yum install gcc-c++

安装完成后,直接重新编译.编译成功后依然还是老套路

make && make install
安装完成

如图显示,我们的扩展编译到了这个目录面去了.在linux中扩展文件的后缀一般是.so

检查扩展

我们cd到扩展目录查看


扩展文件

如图我们的扩展目录里面已经有了swoole.so文件,说明我们已经安装成功.


6月4日更新
虽然我们之前已经安装好了swoole,但是我们的php现在还并不能使用它,因为我们知道php安装扩展是需要在php.ini中去配置一下才能生效的

;加入swoole扩展
extension=swoole

只需要这一句代码就可以了

那么现在我们如何去判断swoole到和php双剑合璧了吗?

那么这里我们就要用到swoole安装包里的demo

#这里是swoole安装包的位置里面的examples文件夹下的server文件夹
cd /root/downloads/swoole/examples/server

里面有个echo.php


echo.php里面的内容

这是一个php使用swoole的一个demo
我们现在试着运行下这个demo

php echo.php

我们发现我们使用的php命令进入了持续执行的状态,如下图.说明我们的swoole服务启动了

持续执行状态

那么我来佐证下我们的观点,之前我们echo.php中发现,swoole服务需要监听9051端口
那么我看看9051端口的状态便知道是否在运行了

lsof -i:9501
端口状态

那么现在我们尝试关掉echo.php的进程呢?
我们使用Ctrl+C来关闭echo.php的执行


关闭执行

我再次查看端口状态

端口状态

我们发现端口并没有被占用了.这也进一步证明了我们的swoole服务是安装好了

好了关于swoole 先展示写到这里,这篇文章我会继续更新.如果有写错的地方,希望大神指正谢谢

以上

相关文章
|
1月前
|
设计模式 算法 数据库连接
PHP中的设计模式:提高代码的可维护性与扩展性本文旨在探讨PHP中常见的设计模式及其应用,帮助开发者编写出更加灵活、可维护和易于扩展的代码。通过深入浅出的解释和实例演示,我们将了解如何使用设计模式解决实际开发中的问题,并提升代码质量。
在软件开发过程中,设计模式是一套经过验证的解决方案模板,用于处理常见的软件设计问题。PHP作为流行的服务器端脚本语言,也有其特定的设计模式应用。本文将重点介绍几种PHP中常用的设计模式,包括单例模式、工厂模式和策略模式,并通过实际代码示例展示它们的具体用法。同时,我们还将讨论如何在实际项目中合理选择和应用这些设计模式,以提升代码的可维护性和扩展性。
53 4
|
1月前
|
域名解析 关系型数据库 MySQL
基于PHPEnv的本地环境搭建—PHP第一个项目:HelloWorld(从安装到运行)
该文章指导如何使用PHPEnv搭建本地PHP开发环境,并通过一个简单的"Hello World"程序演示从安装到运行的全过程。
基于PHPEnv的本地环境搭建—PHP第一个项目:HelloWorld(从安装到运行)
|
21天前
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
|
4天前
|
测试技术 PHP 开发工具
php性能监测模块XHProf安装与测试
【10月更文挑战第13天】php性能监测模块XHProf安装与测试
10 0
|
1月前
|
PHP Windows
thinkPhP6.0安装教程图解--PHP框架安装
本文是一篇关于ThinkPHP 6.0安装教程的图解,包括环境检查、安装Composer、修改Composer镜像地址、安装ThinkPHP框架以及启动运行ThinkPHP的步骤。文章详细描述了每个步骤的操作方法,并提供了相应的命令和截图,帮助用户理解并顺利完成ThinkPHP 6.0的安装和运行。
thinkPhP6.0安装教程图解--PHP框架安装
|
12天前
|
缓存 PHP C语言
宝塔PHP8.1安装fileinfo拓展失败解决办法
在宝塔面板安装PHP8.1后,fileinfo扩展安装失败,手动尝试也报错。通过分析错误信息,在Makefile中修改CFLAGS添加`-std=c99`,并执行`make clean`清除缓存后,重新编译安装成功。最后在php.ini中启用fileinfo扩展并重启PHP服务。注意需调整CFLAGS为`-std=c99 -g`,去掉`-O2`。
31 0
|
1月前
|
缓存 程序员 PHP
为什么说 Swoole 是 PHP 程序员技术水平的分水岭?
【9月更文挑战第8天】Swoole 被视为 PHP 程序员技术水平的分水岭,因为它要求程序员深入理解底层原理(如网络编程、异步和并发模型),具备性能优化能力(如高效服务器开发、数据库连接池管理),拥有架构设计能力(如微服务架构、项目复杂度管理),并具备持续学习和自我提升意识。熟练掌握 Swoole 的程序员在技术能力和综合素质方面更具优势。
|
1月前
|
PHP Apache 数据库
PHP做二次开发:本机安装ThinkCMF系统
文章详细说明了如何在本地环境中从零开始安装并配置ThinkCMF系统,包括环境准备、源代码获取、虚拟域名设置及数据库配置等步骤。
|
1月前
|
设计模式 存储 算法
PHP中的设计模式:策略模式的深入解析与应用在软件开发的浩瀚海洋中,PHP以其独特的魅力和强大的功能吸引了无数开发者。作为一门历史悠久且广泛应用的编程语言,PHP不仅拥有丰富的内置函数和扩展库,还支持面向对象编程(OOP),为开发者提供了灵活而强大的工具集。在PHP的众多特性中,设计模式的应用尤为引人注目,它们如同精雕细琢的宝石,镶嵌在代码的肌理之中,让程序更加优雅、高效且易于维护。今天,我们就来深入探讨PHP中使用频率颇高的一种设计模式——策略模式。
本文旨在深入探讨PHP中的策略模式,从定义到实现,再到应用场景,全面剖析其在PHP编程中的应用价值。策略模式作为一种行为型设计模式,允许在运行时根据不同情况选择不同的算法或行为,极大地提高了代码的灵活性和可维护性。通过实例分析,本文将展示如何在PHP项目中有效利用策略模式来解决实际问题,并提升代码质量。
|
2月前
|
安全 前端开发 PHP
PHP与现代Web开发:构建高效和可扩展的应用程序
【8月更文挑战第29天】在这篇文章中,我们将深入探讨PHP如何适应现代Web开发的需求。我们将通过实际案例分析,揭示PHP的核心优势,并展示如何利用这些优势来构建高性能、可扩展的Web应用。文章不仅提供理论知识,还包括具体的代码示例,旨在帮助开发者更好地理解和运用PHP解决实际问题。