PHP之Swoole学习安装教程
目录
- 一、前言
- 二、Swoole 环境搭建
- 2.1 PHP Installation
- 2.2 Swoole Installation
- 2.3 开发工具提示包
一、前言 swoole是什么?官方是这样解释的:
PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端/客户端。
Swoole虽然是标准的PHP扩展,实际上与普通的扩展不同。普通的扩展只是提供一个库函数。而swoole扩展在运行后会接管PHP的控制权,进入事件循环。当IO事件发生后,swoole会自动回调指定的PHP函数。
以及学习swoole需要掌握的基础知识:
- 熟练使用PHP语言
- 熟练使用MySQL、Redis数据库
- 熟练使用Linux操作系统
- 基本了解Unix网络编程相关知识(参阅《Unix网络编程(卷1) 》 )
- 基本的gdb使用
二、Swoole 环境搭建
2.1 PHP Installation
编译安装PHP首先需要安装对应的编译工具和一些依赖包:
yum install libxml2 libxml2-devel curl curl-devel libpng-devel libjpeg-devel pcre-devel autoconf libmcrypt-devel gcc-c++
PHP下载地址 在这里挑选你想用的版本即可。下载源码包后,解压至本地任意目录(保证读写权限),参考如下命令编译安装PHP:
./configure --prefix=/usr/local/php \--with-config-file-path=/etc/php \--enable-fpm \--enable-pcntl \--enable-mysqlnd \--enable-opcache \--enable-sockets \--enable-sysvmsg \--enable-sysvsem \--enable-sysvshm \--enable-shmop \--enable-zip \--enable-soap \--enable-xml \--enable-mbstring \--disable-rpath \--disable-debug \--disable-fileinfo \--with-mysql=mysqlnd \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--with-pcre-regex \--with-iconv \--with-zlib \--with-mcrypt \--with-gd \--with-openssl \--with-mhash \--with-xmlrpc \--with-curl \--with-imap-sslsudo makesudo make installsudo mkdir /etc/phpsudo cp php.ini-development /etc/php/php.ini
另外还需要将PHP的可执行目录添加到环境变量中。在 ~/.bashrc 文件末尾添加内容:
export PATH=/usr/local/php/bin:$PATHexport PATH=/usr/local/php/sbin:$PATH
保存后执行命令:
source ~/.bashrc
2.2 Swoole Installation
Swoole扩展下载地址 可以下载源码编译安装:
phpize./configuremake sudo make install
还可以通过 PECL 一键安装:
pecl install swoole
安装成功后,修改 php.ini 加入:
extension=swoole.so
通过php -m或phpinfo()来查看是否成功加载了 swoole,如果没有可能是 php.ini 的路径不对,可以使用php --ini来定位到 php.ini 的绝对路径。
2.3 开发工具提示包
- https://github.com/eaglewu/swoole-ide-helper
推荐阅读
- PMSJ寻平面设计师之现代(Hyundai)
- 太平之莲
- 闲杂“细雨”
- 七年之痒之后
- 深入理解Go之generate
- 由浅入深理解AOP
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 生活随笔|好天气下的意外之喜
- 感恩之旅第75天
- python学习之|python学习之 实现QQ自动发送消息