限时 5折! 详情

swoole基础-swoole的安装与升级

3 0 0

学到这里,我们几乎是“连下五城”,前文讲述了进程/线程,IO模型,TCP/IP协议,说好的学习swoole呢?

今天我们就来揭开swoole的面纱。

swoole其实几乎涉及到网络开发的方方面面,但是这些都是php所不具备的。前文介绍那么多废话,也是考虑部分基础十分薄弱的同学。

我们再来看下swoole是什么,引用官网的一句话:

Swoole是PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole虽然是标准的PHP扩展,实际上与普通的扩展不同。普通的扩展只是提供一个库函数。而swoole扩展在运行后会接管PHP的控制权,进入事件循环。当IO事件发生后,swoole会自动回调指定的PHP函数。

感觉很很难很高大上的样子。本文先来看下swoole是怎么安装的。

准备

windows用户可以使用cygwin环境来学习swoole,但是会有很多问题,下面我们主要介绍下linux环境下swoole的安装。

php版本推荐php5.4+,当然php7也是没有问题的。

后面我们大部分应用都将基于mac+php7。

此外,你应该保证系统中安装了如下软件

gcc-4.4+
make
autoconf

gcc版本不够或者上述软件有一项未安装,下面的操作就没必要往下看了。

下面介绍两种安装的方式,随意选择

编译安装

swoole作为php的扩展,安装方法自然跟其他扩展没有差别。来看下具体的步骤

1、下载最新的稳定版,以pecl官网为准,我们看到当前最新的版本是1.9.6,后面针对swoole的学习,我们也以这个版本为准,如果本地已经安装过swoole了,但是版本不一致,可以直接看下面关于swoole升级的讲解。此外,由于swoole还很年轻,各个版本中可能会与我们所讲述的配置有所冲突,建议尽可能的保证你的版本跟我们一致,除非你知道版本本身的差异。

我们切换到 /usr/local/src 目录,你也可以下载到你期望的路径。利用wget下载,提示wget不是命令的请先下载一下这个命令

wget http://pecl.php.net/get/swoole-1.9.6.tgz

2、随后利用tar命令解压,同样tar命令不存在的自行下载

tar zxvf swoole-1.9.6.tgz

3、切换到 swoole-1.9.6 目录

cd swoole-1.9.6

4、找到phpize所在路径,注意要找你要给具体php版本安装的那个phpize,比如我的php源码在 /usr/local/opt/php70/ 目录,phpize路径就是 /usr/local/opt/php70/bin/phpize,在不确保终端下的phpize是哪个版本的php时候,建议指定绝对路径

/usr/local/opt/php70/bin/phpize

终端下输入上面的命令后回车即可

5、检查&&编译&&安装

./configure
make 
sudo make install

依次输入上述命令进行操作。

PECL安装

编译安装的过程稍微有一些麻烦,swoole也是pecl的项目,所以,我们还可以通过pecl进行一键安装

pecl install swoole

如果以上步骤一切正常的话,即表示swoole已经成功的安装了。

成功之后,我们打开php.ini(不知道配置文件在哪的回去再把CLI看一遍),把swoole.so加入到文件最后

extension=swoole.so

随后通过命令php -m查看swoole是否被正确的安装

$ php -m | grep swoole
swoole

能看到结果即表示安装成功了,当然这是在我们安装过程中一切顺利的情况下进行的。

如果安装过程中出现了失败,下面留言反馈哦。

swoole升级

swoole现在还处于发展中,可能我们还没学完,新的版本又要出来了。有同学要说了,过段时间我估计就忘记现在安装的swoole的版本是多少了,这个怎么办?

我们可以通过 php --ri 命令查看swoole版本

php --ri swoole | grep Version

#结果 
Version => 1.9.6

如果后期发现有新的版本发布了,怎么升级swoole呢?

编译升级

编译升级,只需要从pecl官网下载最新的稳定版,按照我们一开始的编译安装步骤再走一遍就完事了。之前安装的版本不需要过问,这就相当于重新安装一次新版本就好了。

友情提醒,尽可能的下载稳定版,非稳定版可能会发生很多意外的事。

pecl升级

这个更简单,一条命令搞定

pecl upgrade swoole

下一节我们准备讲些下swoole的简单应用,同时也将是我们最后实例的基础,期待的留个言,说不定我能提前写好发文哦。