入坑一个话题,总得有入坑的理由。有好多话题可供选择,可是思来想去,对于PHPer进阶与其急着去掌握一门新的语言,匆忙地踏足一个新的知识体系,还不如先把php圈子的技能点攒齐了。php
话说Swoole诞生以前,php是世界上最好的语言。但很惋惜php语言没法支持长链接,始终是个遗憾。而自从Swoole诞生以后,php晋升为太阳系最好的语言。Swoole提供给了php长链接、协程、异步任务、微服务的能力,弥补了php短板,让php有了在即时通信、物联网、区块链的领域中发力的可能。虽然在Swoole的生态圈子里发生了一些不太友好的事情,可是神仙吵架丝绝不影响Swoole的优秀。接下来,作好准备,让咱们一块儿徜徉在知识的海洋。c++
在这一系列的文章中,咱们会假设你们已经有良好的php基础,对于扩展的编译已经熟练掌握。若是对于相关的知识点不甚了解,能够随时联系博主。git
另外,博主使用的操做系统是CentOS 7.5,PHP版本号是7.3.15github
这一篇里,咱们要了解两个问题:安装Swoole 和 写出一个Swoole的Hello world。编程
一、安装Swoolecentos
安装Swoole有两种方式,即编译成php的扩展,或者在编译php的过程过静态编译到php中。两种方法均可以让php顺利使用上Swoole。固然,为了编译方便与灵活,笔者会采用扩展的方式进行编译。浏览器
由于Swoole自身要求PHP版本号>7.1,gcc版本号>4.8,因此若是须要升级gcc的小伙伴能够运行:bash
yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils scl enable devtoolset-9 bash
接着,须要到如下三个地方,下载Swoole扩展的源代码(任选其一):swoole
https://github.com/swoole/swoole-src/releases
http://pecl.php.net/package/swoole
https://gitee.com/swoole/swoole
开始编译,编译过程就是编译的老套路。请看如下栗子:异步
#简单编译 #进入swoole源码目录 phpize ./configure --with-php-config=/path/to/php-config make make install #高级编译 #进入swoole源码目录 phpize ./configure --with-php-config=/path/to/php-config --enable-openssl --enable-http2 make make install
编译完成以后,进入php.ini中添加extension=swoole.so便可。
为了确认php是否成功载入了swoole扩展,能够执行php -m | grep swoole查看结果。以下图:
二、写出Swoole的Hello World
在写出Swoole的Hello World以前,须要先解决一个问题:在phpstorm中添加swoole的自动提示。
1) 下载https://github.com/wudi/swoole-ide-helper,解压获得目录swoole-ide-helper
2) PhpStorm的菜单项中找到File->Settings->Languages & Frameworks->PHP->inclue path,将swoole-ide-helper目录加入便可。
接下来,咱们建立一个文件命令为swoole.php,并从利用Swoole写一段很简单的的http服务代码:
<?php $http = new Swoole\Http\Server("0.0.0.0", 9501); $http->on("start", function ($server) { echo "Swoole http server is started\n"; }); $http->on("request", function ($request, $response) { $response->header("Content-Type", "text/plain"); $response->end("Hello World\n"); }); $http->start();
如今咱们还不须要详细知识这段代码每一句什么做用,只须要先了解这段代码实现了一个侦听在9501上的很简单的http服务。
咱们运行一下这段代码php swoole.php,以后咱们经过浏览器能够看到如下界面:
好了,这一节到这里就大功告成了。以后咱们会逐一讨论Swoole这东西能够为咱们带来什么难以想象的功能。今天就先到这里吧:)
--------------------------- 我是可爱的分割线 ----------------------------
最后博主借地宣传一下,漳州编程小组招新了,这是一个面向漳州青少年信息学/软件设计的学习小组,有意向的同窗点击连接,联系我吧。