我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

本文中,苏南大叔主要介绍的内容是:一款php扩展swoole,这款swoole是国人作品。swoole并不是一款普通的php扩展,它和其它php扩展的差别在于:swoole并不是给php扩展一些函数,而是全面接管php。那么,关于swoole重新定义php的说法,是怎么来的。大概就知晓了吧?

苏南大叔:swoole 如何编译安装?swoole 如何重新定义 php - swoole-install
swoole 如何编译安装?swoole 如何重新定义 php(图6-1)

本文测试环境:centos7/swoole4.2.12/php72

swoole官方网站

swoole的官方网址是:

苏南大叔:swoole 如何编译安装?swoole 如何重新定义 php - swoole-offical
swoole 如何编译安装?swoole 如何重新定义 php(图6-2)

Swoole:面向生产环境的 PHP 异步网络通信引擎
使 PHP 开发人员可以编写高性能的异步并发 TCP、UDP、Unix Socket、HTTP,WebSocket 服务。Swoole 可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。 使用 PHP + Swoole 作为网络通信框架,可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。

方案一:pecl安装swoole

本方案适合新人,简单易于操作。

通过pecl来快速安装swoole

pecl install swoole

通过pecl来快速升级swoole

pecl update swoole

方案二:源码编译安装swoole

苏南大叔对于swoole的安装,更倾向于源码安装。毕竟php的扩展安装,目前来看,也不是那么的高不可攀。所以,不妨试试看?在通过源码安装swoole的过程中,苏南大叔的测试环境是: centos7宝塔面板6.8.4。由于这个因素,所以试验过程中,就稍稍增添了一点点的未知变量。

下载release源码

swoole官方文档里面,有明确说明:希望大家下载release里面的源码,而不要下载master里面的源码。可能会编译不通过。所以,苏南大叔也听取官方的建议,下载到截至到发稿最新的4.2.12版本。

注意:当你看到这篇文字的时候,这个版本号很有可能发生了变化,请替换版本号到最新的!

苏南大叔:swoole 如何编译安装?swoole 如何重新定义 php - swoole-github
swoole 如何编译安装?swoole 如何重新定义 php(图6-3)

使用的命令是:

wget https://github.com/swoole/swoole-src/archive/v4.2.12.tar.gz
tar zxvf v4.2.12.tar.gz
cd swoole-src-4.2.12

当然,您还可以选择git clone官方的master版本:

git clone https://github.com/swoole/swoole-src.git
cd swoole-src

配置信息

大家都知道,php的扩展安装,需要做个phpize./configure动作。而在苏南大叔的宝塔环境里面,这两个命令是有所变形的。

正常的命令:

phpize
./configure

由于宝塔面板里面,php是个多版本共存的状态,所以,phpize./configure又添加了新的变数。苏南大叔实际执行的命令是:

/www/server/php/72/bin/phpize
./configure --with-php-config=/www/server/php/72/bin/php-config 

苏南大叔:swoole 如何编译安装?swoole 如何重新定义 php - phpize
swoole 如何编译安装?swoole 如何重新定义 php(图6-4)

关于./configureswoole官方还提供了额外的几个参数,用于定制swoole的具体功能。分别是:

  • --enable-openssl
  • --enable-sockets
  • --enable-http2, --with-nghttp2-dir=/path/to (need nghttp2)
  • --enable-mysqlnd (need mysqlnd)
  • --enable-async-redis, --with-hiredis-dir=/path/to (need hiredis, build-in in v4.2.6 or later)

苏南大叔暂时不对这几个参数做评价,暂时就保持默认的./configure状态了。

编译build及生效

make && make install

不出意外的话,编译成功就可以得到一个swoole.so了。在php.ini中启用即可,注意重启php生效:

extension = swoole.so

苏南大叔:swoole 如何编译安装?swoole 如何重新定义 php - phpini
swoole 如何编译安装?swoole 如何重新定义 php(图6-5)

对于苏南大叔的编译环境来说,这个swoole.so文件的位置是:

/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/

查看swoole信息

重启php之后,就可以通过phpinfo()查看具体的swoole信息了。

phpinfo();

苏南大叔:swoole 如何编译安装?swoole 如何重新定义 php - phpinfo_swoole
swoole 如何编译安装?swoole 如何重新定义 php(图6-6)

相关链接

总结

swoole作为重新定义php的新兴事物,是值得大家关注和学习的。同时,swoole也提供了一个类似zephir的方式,可以以较低的学习成本,编写php扩展的方式。这个swoole提供的方式,被称之为phpx

phpx这种扩展的编写方式,是苏南大叔所感兴趣的。那么,phpx的具体的使用方式,苏南大叔会在后续的文章中,有所提及。敬请关注苏南大叔的swoole系列文章。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   php    swoole