Swoole:面向生产环境的 PHP 异步网络通信引擎
使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务
Swoole 可以用来做网络通信、异步操作文件、毫秒级定时器等等,今天就来说一下 Swoole 入门前的准备工作:安装 PHP7 和 Swoole 扩展
安装PHP7
Swoole 作为 PHP 的扩展,必不可少的就是 PHP 了
Swoole 虽然是标准的PHP扩展,实际上与普通的扩展不同。普通的扩展只是提供一个库函数,而 Swoole 扩展在运行后会接管PHP的控制权,进入事件循环,当IO事件发生后,Swoole 会自动回调指定的PHP函数
先进入到一个目录中,获取我们的PHP包,进行解压
$ cd /usr/local/src/
$ wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2
$ tar jxvf php-7.1.6.tar.bz2
解压完成后,进入到PHP的目录当中进行配置,使用如下命令
$ cd php-7.1.6/
$ ./configure --prefix=/usr/local/php7
在配置结束可能会报错,如下图
![v2-c8b2d43d20079be6477a9f7ca14ed424_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=987ef407-3f30-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-c8b2d43d20079be6477a9f7ca14ed424_b.jpg)
报错:checking for gcc... no,表示没有安装gcc,使用以下命令进行安装
$ yum -y install gcc
$ yum -y install libxml2 libxml2-devel
同样也可能会报错checking libxml2 install dir... no,所以也最好安装一下
![v2-273c3574660e255e2af445549244d486_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=987ef407-3f30-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-273c3574660e255e2af445549244d486_b.jpg)
看到如上图所示就表示配置成功了,下一步,进行编译安装。使用命令:
$ make && make install
如果报错-bash:make:command not found,是因为安装系统的时候使用的是最小化mini安装,系统没有安装make、vim等常用命令,直接yum安装下即可
$ yum -y install make
如下图所示,表示为编译成功
![v2-02eb932b4c881dc499c795eecba2dc35_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=987ef407-3f30-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-02eb932b4c881dc499c795eecba2dc35_b.jpg)
开始下一步操作,复制配置文件到PHP目录中,命令:
$ cp /usr/local/src/php-7.1.6/php.ini-development /usr/local/php7/lib/php.ini
然后一切完成后,我们需要将PHP加入环境变量中,打开环境变量配置文件,写入以下配置,然后重启服务器或者使用命令让终端生效配置
$ # 打开环境变量配置文件
$ vi ~/.bash_profile
$ # 写入以下配置
$ alias php=/usr/local/php7/bin/php #PHP目录
$ # 让终端生效
$ source ~/.bash_profile
如果没有报错,使用php -v能够查看版本号表示配置成功,也就是我们的PHP7安装成功
![v2-ca3293305c6828708714bf10e81a725c_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=987ef407-3f30-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-ca3293305c6828708714bf10e81a725c_b.jpg)
安装Swoole
使用命令获取 Swoole 的包,Swoole 项目已收录到PHP官方扩展库,除了手工下载编译外,还可以通过PHP官方提供的pecl命令,一键下载安装 Swoole
$ yum install pcre-devel
$ pecl install swoole
$ # 或者手动安装
$ wget http://pecl.php.net/get/swoole-2.2.0.tgz
$ tar zxvf swoole-2.2.0.tgz
解压以后进入到Swoole的目录当中,通过PHP的phpize文件生成swoole的配置文件
如果报错Cannot find autoconf的话,使用yum安装一下
$ yum -y install m4 autoconf
然后再执行下面的操作,就可以生成成功,成功以后目录下如图的绿色文件
$ ./configure --with-php-config=/usr/local/php7/bin/php-config
![v2-12d9144a71c9c582c5d06ba55c366ecd_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=987ef407-3f30-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-12d9144a71c9c582c5d06ba55c366ecd_b.jpg)
生成成功以后,我们就可以进行下一步操作:使用make命令进行编译安装,编译安装成功以后如下图所示
![v2-6c2849a1a3e1fc3572c6df218351f138_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=987ef407-3f30-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-6c2849a1a3e1fc3572c6df218351f138_b.jpg)
编译安装完成以后配置php.ini,加入一下配置
$ extension=swoole.so
通过php -m或phpinfo()来查看是否成功加载了Swoole,如果没有可能是php.ini的路径不对,可以使用php --ini来定位到php.ini的绝对路径,加载到了就表明Swoole安装成功
精简版:
先进入到一个目录中,获取我们的PHP包,进行解压
$ cd /usr/local/src/
$ wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2
$ tar jxvf php-7.1.6.tar.bz2
安装依赖文件
$ yum -y install gcc libxml2 libxml2-devel vim make
解压完成后,进入到PHP的目录当中进行配置,使用如下命令
$ cd php-7.1.6/
$ ./configure --prefix=/usr/local/php7
进行编译安装
$ make && make install
复制配置文件到PHP目录中
$ cp /usr/local/src/php-7.1.6/php.ini-development /usr/local/php7/lib/php.ini
将PHP加入环境变量中
# 打开环境变量配置文件 bash_profile
$ vi ~/.bash_profile
# 写入以下配置
$ alias php=/usr/local/php7/bin/php #PHP目录
# 让终端生效
$ source ~/.bash_profile
使用php -v能够查看版本号表示配置成功
安装swoole
一键下载安装 Swoole 或者 手工下载编译
$ yum install pcre-devel
$ pecl install swoole
# 或者手动安装
$ wget http://pecl.php.net/get/swoole-2.2.0.tgz
$ tar zxvf swoole-2.2.0.tgz #解压
# 如果报错Cannot find autoconf的话,使用yum安装一下
$ yum -y install m4 autoconf
# 解压以后进入到Swoole的目录当中
$ cd /usr/local/src/swoole-2.2.0
#通过PHP的phpize文件生成swoole的配置文件
$ /usr/local/php7/bin/phpize
#在swoole文件夹里进行 编译
$ ./configure --with-php-config=/usr/local/php7/bin/php-config
#使用make命令进行编译安装
$ make && make install
#编译安装完成以后配置php.ini,加入一下配置
$ vim /usr/local/php7/lib/php.ini #在最后一样加入如下
extension=swoole.so
#通过php -m或phpinfo()来查看是否成功加载了Swoole