Swoole扩展

PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。

Swoole底层内置了异步非阻塞、多线程的网络IO服务器。PHP程序员仅需处理事件回调即可,无需关心底层。与Nginx/Tornado/Node.js等全异步的框架不同,Swoole既支持全异步,也支持同步。

除了异步IO的支持之外,Swoole为PHP多进程的模式设计了多个并发数据结构和IPC通信机制,可以大大简化多进程并发编程的工作。其中包括了并发原子计数器,并发HashTable,Channel,Lock,进程间通信IPC等丰富的功能特性。

Swoole从2.0版本开始支持了内置协程,可以使用完全同步的代码实现异步程序。PHP代码无需额外增加任何关键词,底层自动进行协程调度,实现异步。

Swoole可以广泛应用于互联网、移动通信、企业软件、网络游戏、物联网、车联网、智能家庭等领域。 使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。

Swoole是开源免费的自由软件,授权协议是Apache2.0。企业和个人开发者均可免费使用Swoole的代码,并且在Swoole之上所作的修改可用于商业产品,无需开源。

下面进入具体的安装步骤:
一、下载源码包
wget -c https://github.com/swoole/swoole-src/archive/v2.0.6.tar.gz 如果wget下载报错可以直接通过 https://github.com/swoole/swoole-src/archive/v2.0.6.tar.gz 下载
解压: tar -zxvf v2.0.6.tar.gz
cd swoole-src-2.0.6/
二、
编译&安装
使用phpize来生成php编译配置

./configure 来做编译配置检测

make进行编译,make install进行安装
命令执行:
[root@php7 swoole-src-2.0.6]# phpize[root@php7 swoole-src-2.0.6]# ./configure[root@php7 swoole-src-2.0.6]# make && make install

三、修改配置文件

要能够使用该模块,还需要在 php.ini 文件中添加该模块

vim /usr/local/php/etc/php.ini

extension=swoole.so

四、重启服务

重启php
serice php-fpm restart
重启nginx
serice nginx restart

查看http://192.168.3.169/phpinfo.php
Swoole扩展_第1张图片
说明 swool 驱动安装成功

五、测试
创建php代码测试swoole的功能
vim /etc/locet/nginx/html/swoole.php

on('connect', function (swoole_server $serv, $fd) { echo 'Client: Connect.' . PHP_EOL; }); //监听数据接收事件 $serv->on('receive', function (swoole_server $serv, $fd, $fromId, $data) { $serv->send($fd, 'Server: ' . $data); }); //监听连接关闭事件 $serv->on('close', function (swoole_server $serv, $fd) { echo 'Client: Close.' . PHP_EOL; }); //启动服务器 $serv->start(); 测试代码 1、 首先,运行服务器的监控程序 php swoole.php 2、另外开一个终端,使用 telnet 连接当前服务端监听的端口,并且输入一些文字,观察终端的变化。 [root@php7 ~]# telnet 127.0.0.1 9999 Hi! Server: Hi! 这里只是进行简单的模拟回复。客户端发什么,服务器就回应什么消息。 退出telnet,观察服务器会显示什么 直接关闭窗口,或者: [root@php7 ~]# Ctrl+] [root@php7 ~]# telnet> quit 此时,会在服务侧看到: Client: Close. 测试环境没有安装 telnet ,可以通过yum直接安装

你可能感兴趣的:(linux基础服务搭建)