![dbefd1176c233be30eb96799a1ac4bcf.png](https://i-blog.csdnimg.cn/blog_migrate/fd08b3eeaea23809b606da37355844ed.jpeg)
这一段时间准备为大家带来swoole的入门教程,感受一下php的nodeJs强悍之处。
所有的示例代码均放在了github上:learn-swoole
环境
这里不在使用apache做为web server。该用nginx + php-fpm,性能更强大,配置更方便。并且为了跟上php的步伐,也使用了比较新的php版本
- [x] centos7
- [x] php7.0.12
- [x] nginx/1.10.2
- [x] php-fpm
下载 swoole
首先下载swoole的源码包,这个操作很简单,没有太多说的。
wget
编译&安装
使用phpize来生成php编译配置
./configure 来做编译配置检测
make进行编译,make install进行安装
命令执行:
[
make install后,如果正确,会出现以下内容
[root@php7 swoole-src-2.0.6]# make install
Installing shared extensions: /usr/lib64/php/modules/
这表示,在 /usr/lib64/php/modules/ 目录中,成功生成了 swoole.so 文件
修改配置文件
要能够使用该模块,还需要在 php.ini 文件中添加该模块。
这里需要注意,php7的模块配置文件均单独分开了。 在 php.ini 中可找到如下内容
;;;;
; Note: packaged extension modules are now loaded via the .ini files ; found in the directory /etc/php.d; these are loaded by default. ;;;;
因此,如果你的php安装时,如果未特殊设置,可以在/etc/php.d 目录中,找到添加模块的配置文件。
进入到 cd /etc/php.d 目录,完成相关的配置
[root@php7 swoole-src-2.0.6]# vim swoole.ini
; Enable swoole extension module
extension=swoole.so
重启服务
新增php模块后,需要重新启动服务,才会生效,如果有时候restart后依然无效,请先关闭,再重新启动。
[
通过php -m或phpinfo()来查看是否成功加载了swoole
![fa66bb687fc187b06e5eaf98597668db.png](https://i-blog.csdnimg.cn/blog_migrate/407414472a660725746933055903c61a.jpeg)
swoole 代码的自动提示
安装好扩展后,就是使用的问题。由于没有代码的提示,有时候很不方便,github上有人已经提供了swoole代码提示的 ide-helper 。具体设置办法如下:
这里以: phpStorme 为例,download 代码到本地
git clone git@github.com:eaglewu/swoole-ide-helper.git ide-helper
按照图片内容设置
![f8e40a871f0de9a20d26d8c945df130b.png](https://i-blog.csdnimg.cn/blog_migrate/2d504152a9d13cd070ff84ace502c253.jpeg)
经过以上步骤,可以在 phpStorme 中使用swoole了。并且提供代码提示。
简单测试
所有的测试代码均放在 这里
请将该代码 clone 到本地,方便观察效果。
git
本节所提供的代码实例 demo1-serv
进入到测试代码目录,
然后在服务端使用 telnet 进行测试
- 首先,运行服务端的监听程序
php
执行这个命令后,服务器会显示:
Client: Connect.
- 另外开一个终端,使用 telnet 连接当前服务端监听的端口,并且输入一些文字,观察终端的变化。
[
这里只是进行简单的模拟回复。客户端发什么,服务器就回应什么消息。 退出telnet,观察服务器会显示什么 直接关闭窗口,或者:
[
此时,会在服务侧看到:
Client: Close.
PS:如果测试环境没有安装 telnet ,请自行google安装。
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要戳这里PHP进阶架构师>>>实战视频、大厂面试文档免费获取