Swoole:面向生产环境的 PHP 异步网络通信引擎
使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务
Swoole 可以用来做网络通信、异步操作文件、毫秒级定时器等等,今天就来说一下 Swoole 入门前的准备工作:安装 PHP7 和 Swoole 扩展
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
在配置结束可能会报错,如下图
报错:checking for gcc... no
,表示没有安装 gcc,使用以下命令进行安装
$ yum -y install gcc
$ yum -y install libxml2 libxml2-devel
同样也可能会报错 checking libxml2 install dir... no
,所以也最好安装一下
看到如上图所示就表示配置成功了,下一步,进行编译安装。使用命令:
$ make && make install
如果报错 -bash:make:command not found
,是因为安装系统的时候使用的是最小化 mini 安装,系统没有安装 make、vim 等常用命令,直接 yum 安装下即可
$ yum -y install make
如下图所示,表示为编译成功
开始下一步操作,复制配置文件到 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 安装成功
使用命令获取 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 的配置文件
/opt/remi/php72/root/usr/bin/phpize
执行phpize可能会提示下面的错误,表示php72-php-devel模块未安装
Can't find PHP headers in /opt/remi/php72/root/usr/include/php
The php72-php-devel package is required for use of this command
执行 yum install php72-php-devel即可,继续执行phpize
如果报错 Cannot find autoconf
的话,使用 yum 安装一下
$ yum -y install m4 autoconf
然后再执行下面的操作,就可以生成成功,成功以后目录下如图的绿色文件
$ ./configure --with-php-config=/opt/remi/php72/root/usr/bin/php-config
生成成功以后,我们就可以进行下一步操作:使用 make 命令进行编译安装,编译安装成功以后如下图所示
make && make install
有时候安装swoole4会报错,执行
sudo yum install centos-release-scl
sudo yum install devtoolset-7
scl enable devtoolset-7 bash
编译安装完成以后配置 php.ini
,加入一下配置
$ extension=swoole.so
通过 php -m
或 phpinfo()
来查看是否成功加载了 Swoole,如果没有可能是 php.ini
的路径不对,可以使用 php --ini
来定位到 php.ini
的绝对路径,加载到了就表明 Swoole 安装成功