
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-ssl sudo make sudo make install sudo mkdir /etc/php sudo cp php.ini-development /etc/php/php.ini
另外还需要将PHP的可执行目录添加到环境变量中。在 ~/.bashrc 文件末尾添加内容:
export PATH=/usr/local/php/bin:$PATH export PATH=/usr/local/php/sbin:$PATH
保存后执行命令:
source ~/.bashrc
2.2 Swoole Installation
Swoole扩展下载地址 可以下载源码编译安装:
phpize ./configure make sudo make install
还可以通过 PECL 一键安装:
pecl install swoole
安装成功后,修改 php.ini 加入:
extension=swoole.so
通过 php -m 或 phpinfo() 来查看是否成功加载了 swoole,如果没有可能是 php.ini 的路径不对,可以使用 php --ini 来定位到 php.ini 的绝对路径。
2.3 开发工具提示包
到此这篇关于PHP之Swoole学习安装教程的文章就介绍到这了,更多相关PHP之Swoole学习安装内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
windows系统php环境安装swoole具体步骤
Swoole原本不支持在Windows下安装的,所以我们要安装Cygwin来使用.在安装Cygwin下遇到了很多坑,百度经验上的文档不是很全,所以我把自己安装Cygwin和Swoole写下来相当于对自己的沉淀吧. 首先准备工具: Cygwin下载地址:https://www.jb51.net/softs/102136.html swoole官方下载地址:https://github.com/swoole/swoole-src/releases 一.下载Swoole和Cygwin 下载Cygwin
-
php使用Swoole实现毫秒级定时任务的方法
项目开发中,如果有定时任务的业务要求,我们会使用linux的crontab来解决,但是它的最小粒度是分钟级别,如果要求粒度是秒级别的,甚至毫秒级别的,crontab就无法满足,值得庆幸的是swoole提供的强大的毫秒定时器. 应用场景举例 我们可能会遇到这样的场景: 场景一:每隔30秒获取一次本机内存使用率 场景二:2分钟后执行报表发送任务 场景三:每天凌晨2点钟定时请求第三方接口,如果接口有数据返回则停止任务,如果接口由于某种原因没有响应或者没有数据返回则5分钟后继续尝试请求该接口,尝试5次后
-
PHP用swoole+websocket和redis实现web一对一聊天
Redis 实现每个连接websocket的服务都唯一绑定一个用户.通过 用户账号 = websocket fd 存到redis中. Mysql 实现离线消息池.如果一个用户不在线,则其他用户发送给他的消息暂时存储在mysql.待该用户上线时,再从离线消息池取出发送. 具体参考代码和相应注释: <?php $server = new swoole_websocket_server("0.0.0.0", 9052); $redis = new Redis(); $redis->
-
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
在平时使用swoole进行开发中,常常遇到这种问题,改了代码之后,手动ctrl+c中断服务,再敲命令重启服务.频繁地重启,感觉心很累. php提供了inotify扩展,调用linux的inotify系统调用,监控文件的变化. 这时候就产生了一个想法,我开一个主进程监控文件变化,再开一个子进程运行swoole服务.主进程监听到文件变化之后,干掉子进程,然后再开一个子进程运行swoole服务. 子进程如果想优雅地退出,安装个信号处理器,在退出之前做一些操作. <?php //index.php re
-
PHP Swoole异步读取、写入文件操作示例
本文实例讲述了PHP Swoole异步读取.写入文件操作.分享给大家供大家参考,具体如下: 异步读取文件:swoole_async_readfile 异步写入文件:swoole_async_writefile [示例] 读取文件 readfile.php: <?php $res = swoole_async_readfile(__DIR__."/1.txt", function($filename, $content) { echo "文件名:{$filename} 内
-
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服
-
PHP的swoole扩展安装方法详细教程
Swoole支持PHP 5.3.10以上版本,所以安装Swoole之前请先安装PHP 5.3.10以上版本,现在来介绍Windows下PHP安装配置方法. 软件版本:php-5.3.1-Win32-VC6-x86.zip 这个不需要额外的安装.net的库,所以就用这个了.可以使用其他的. 1.PHP安装 使用绿色方式,下载Zip文件解压. 2.配置 在解压的根目录下找到php.ini-development,是用于开发环境的配置文件:还有一个php.ini-production,这个是用于生产环
-
mysql安装图解 mysql图文安装教程(详细说明)
MySQL5.0版本的安装图解教程是给新手学习的,当前mysql5.0.96是最新的稳定版本. mysql 下载地址 http://www.jb51.net/softs/2193.html 下面的是MySQL安装的图解,用的可执行文件安装的,详细说明了一下!打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行"setup.exe",出现如下界面 mysql安装图文教程1 mysql安装向导启动,按"Next"继续 mysql图文
-
linux系统下MongoDB单节点安装教程
前言 MongoDB是一个高性能.开源.无模式的.基于分布式文件存储的文档型数据库,相信对大家都不陌生,这里就不过多介绍了,本文主要介绍了关于mongo单节点(linux下)的安装教程,分享出来供大家参考学习,下面话不多说了,来一起看看详细的安装过程吧. 安装包 下载地址: (https://www.mongodb.com/download-center) 用户权限/目录 1.创建 dbuser用户 groupadd dbgroup useradd dbuser -m -d /home/dbus
-
Vmware12虚拟机安装教程 Vmware12虚拟机上安装Oracle
Vmware12虚拟机及Oracle安装教程分享给大家,具体内容如下 1.安装XP系统 步骤一: 步骤二: 内存分配大一些,运行会流畅一些 (推荐使用仅主机模式网络(honest),原因是当主机上不了网的时候,也能保证与虚拟机相连) 选择使用现有的虚拟盘,然后加载系统文件即可 系统XP安装成功,检测一下主机和虚拟机的通信,ipconfig获取虚拟机IP,然后在主机 ping ip地址即可 接下来在虚拟机上安装Oralce 首先先启用xp系统的共享文件功能 右击虚拟机,找到设置,点击高级选项,启用
-
vmware Workstation安装教程
vmware Workstation安装教程,供大家参考,具体内容如下 1.安装vmware Workstation VMware现在已经到了 12Pro的版本了,百度下载一个最新的版本就可以了,秘钥也是很简单的,一搜就出来了. 1).双击安装包,进行安装 VMware就是一个普通软件,傻瓜式安装就可以了,全部默认设置,也可以根据自己需要更改,这里就不在介绍了. 2.安装虚拟机 0).安装过程可能会提示未开启虚拟化设置,不能安装64位操作系统,这时需要进入BIOS开启虚拟户设置. 我这里是用的c
-
微信应用号(小程序)入门安装教程及IDE(破解版)下载
2016年9月22日凌晨,微信宣布"小程序"问世,妈的,论坛,博客全是小程序,昨天当之无愧抢了头条,当然只是开始内测了,微信公众平台对200个服务号发送了小程序内测邀请.那么什么是"小程序"呢,来看微信之父怎么说 看完之后,相信大家大概都有些明白了吧,对于开发者来说或许都有些小激动吧,毕竟多关注一些新东西没什么不好.那么问题是"小程序"只有200个内测账号,怎么办?还好,天朝的人才太多了,在消息发布后的几小时内网上已经出了IDE的破解版,废话不多
-
Centos7下MySQL安装教程
MySQL安装教程,供大家参考,具体内容如下 1.下载 去官网下载Yum源:地址 2.安装 rpm -ivh mysql57-community-release-el7-11.noarch.rpm yum install MySQL-community-server 3.连接设置 •初始安装没有密码 mysql -u root •设置密码 set password for 'root'@'localhost' =password('password'); #如果报以下错误 #退出mysql连接运
-
Linux环境下mysql5.7.13安装教程
本文实例为大家分享了Linux mysql5.7.13安装教程,供大家参考,具体内容如下 1.准备 cmake-3.6.0.tar.gz bison-3.0.4.tar.gz mysql-5.7.13.tar.gz (http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13.tar.gz) 2.安装cmake 和 bison 首先可以查看下是否安装了 cmake # rpm -qa |grep cmake # tar zxvf cma
-
图解RedHat AS4.0硬盘版安装教程
网上看了下图解RedHat AS4.0硬盘版安装教程,网上的好多服务器都是用的这个,现在学习以后用redhat advanse server就更上手了1.将4个ISO文件拷靠统一目录比如:c:rhas4 手工建立autoboot.bat 内容如下,并把第一个iso文件揭开把isolinux目录的所有能容cp到rhas4/dos,把RHAS 3.0的第一张盘的dosutils里地loadlin也考到dos目录下. 2.编辑autoboot.bat loadlin vmlinuz initrd
随机推荐
- 面向对象的Javascript之三(封装和信息隐藏)
- Wordpress ThickBox 添加“查看原图”效果代码
- 三种带箭头提示框总结实例
- SQL Server无法生成FRunCM线程的解决方法
- Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
- Angular 页面跳转时传参问题
- java基本教程之多线程基本概念 java多线程教程
- iOS获取Label高度的几种方法与对比
- 详解MySQL数据库设置主从同步的方法
- 给blog加上运行代码功能
- 卖豆浆的永远都是卖豆浆的吗? 自甘平庸 ?
- php中mail函数发送邮件失败的解决方法
- jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
- jQuery实现tag便签去重效果的方法
- IE php关于强制下载文件的代码
- java中break和continue区别及使用场合分析
- 在.net应用程序中运行其它EXE文件的方法
- php 获取一个月第一天与最后一天的代码
- Java中使用websocket实现在线聊天功能
- js捆绑TypeScript声明文件的方法教程
其他
- nginx websocket 延时
- 动态sql中where条件都为空
- python读取CSV数据实现线性回归
- python中窗口句柄转为browser
- 浏览器开发者模式中正则表达式
- powershell清除ie缓存命令
- phpstorm 远程node
- android 阻尼效果
- tp5.0 连接oracle
- 安卓开关Switch设置代码
- spring data jpa vo、dto
- pandas数据标准化处理
- unity dotween 跑马灯
- python 删除最后一位字符串
- vue3仿淘宝放大镜插件PicZoom
- 如何去除信号中的窄带 python
- 如何快速给MySQL表的某个字段设置递增的值
- windows2012多用户远程桌面
- node jwt 接口404
- python3.10对应sympy版本