PHP异步并行网络扩展swoole安装

最近想用PHP写一个聊天网站,于是注意到了swoole这个扩展,看上它就是因为事件驱动异步非阻塞。

Swoole可以广泛应用于互联网、移动通信、企业软件、网络游戏、物联网、车联网、智能家庭等领域。 使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。

Swoole底层内置了异步非阻塞、多线程的网络IO服务器。PHP程序员仅需处理事件回调即可,无需关心底层。与Nginx/Tornado/Node.js等全异步的框架不同,Swoole既支持全异步,也支持同步。

Swoole是开源免费的自由软件,授权协议是Apache2.0。企业和开发者均可免费使用Swoole的代码,并且在Swoole之上所作的修改可用于商业产品,无需开源。

以上这段话摘自swoole官网,http://www.swoole.com/

以下是我在Debain系统里的安装过程。我在Ubuntu14.04里是按照官方视频教程的过程,下载源码并本地编译完成的,如果有同学想挑战一下,也可以到http://wiki.swoole.com/wiki/page/230.html去跟着Rango安装。

swoole仅支持Linux/FreeBSD/Mac,如果你使用的是Windows系统,请安装一个虚拟机,VirtualBox/VMWare都可以。然后在虚拟机里安装Linux。
swoole已经加入到PHP的官方扩展库中,所以在Linux系统里只需要执行

pecl install swoole

但是,我在第一次安装的时候遇到了一个问题,提示我本机没有安装phpize,于是

sudo apt-get update
sudo apt-get install php5-dev

再次执行安装命令,接下来又提示我编译错误, 

缺少pcre.h ,于是

sudo apt-get install libpcre3 libpcre3-dev

再次执行安装命令,终于

于是按照提示,在php.ini添加extension=swoole.so

输入php –m 得到以下结果

恭喜你,安装成功了。

可以新建一个server.php 的demo测试一下

<?php
    $serv = new swoole_server("0.0.0.0", 9501);
    $serv->on(‘connect‘, function ($serv, $fd){
            echo "Client:Connect.\n";
    });
    $serv->on(‘receive‘, function ($serv, $fd, $from_id, $data) {
            $serv->send($fd, ‘Swoole: ‘.$data);
    });
    $serv->on(‘close‘, function ($serv, $fd) {
            echo "Client: Close.\n";
    });
    $serv->start();

?>

执行 php server.php

新开一个终端,使用telnet连接到你的服务器:

telnet 127.0.0.1 9501
> hello world
> Swoole: hello world

如果提示地址冲突,可以更改源代码中的“9051”端口。

时间: 2024-11-12 07:19:49

PHP异步并行网络扩展swoole安装的相关文章

用PHP搭建基于swoole扩展的socket服务(附PHP扩展的安装步骤)

最近公司的一项目中,需要用PHP搭建一个socket服务. 本来PHP是不适合做服务的,因为和第三方合作,需要采用高效而稳定的TCP协议进行数据通信.经过多次尝试,最终选择了开源的PHP扩展:swoole,是用C写的多线程异步Server. swoole官网:http://www.swoole.com/,http://wiki.swoole.com/wiki/index/prid-1 swoole入门教程及文档:https://github.com/LinkedDestiny/swoole-do

一、swoole安装

说明:swoole扩展需要安装php环境,这里就不说了. 1.有了PHP环境后,即可安装swoole扩展. swoole扩展下载地址:https://github.com/swoole/swoole-src/releases 尽量选择stable版本,alpha版本最好仅用于实验新特性. 解压源码至任意目录,执行如下命令: cd swoole-src-swoole-1.7.20-stable/ phpize ./configure --with-php-config=/server/apps/p

Eclipse 扩展activiti-desinger 安装——Activiti BPM

activiti-desinger 工作流画图工具分为在线安装.离线安装两种方式:下图提供当前所用eclipse版本信息 1.1        在线安装 打开Eclipse -> Help -> Install New SoftWare-> Add 图1.1.1 图1.1.2 Name:Activiti BPMN 2.0 Desinger Location: http://www.activiti.org/designer/update/ 点击ok按钮出现如下界面,后续next 直至完成

lnmp + swoole 安装

nginx地址:http://120.52.51.16/nginx.org/download/nginx-1.15.7.tar.gz PHP地址:http://am1.php.net/distributions/php-7.2.14.tar.gz mysql地址:http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.39.tar.gz cmake地址:http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar

windows下的php的memcache扩展的安装及memcache最新下载地址

windows下的php的memcache扩展的安装及memcache最新下载地址 memcached for Windows下载地址.(memcached本身并没有windows版本)如果上面下载不了,可以去:http://splinedancer.com/memcached-win32/  下载最新的windows版memcache的文件: Windows下的Memcache安装:1. 下载好memcached后,解压放某个盘下面,比如在c:\memcached2. 在终端(也即cmd命令界

window下python 扩展库安装 使用第三方镜像源

0.前言 由于python的官方镜像位于国外,若使用pip或者easy_install安装第三方插件时或许会被限制,甚至连easy_install或pip也无法安装,例如在windows环境下运行ez_setup.py 安装easy_install,可能遇到下图这样尴尬的情况. 图1 运行ez_setup.py失败 遇到这种问题可以”转战“国内的第三方镜像,问题便可迎刃而解.例如豆瓣镜像——http://pypi.douban.com/simple/ 1.安装easy_install 先安装ea

php编译安装,cgi启动,以及memcache扩展编译安装.

先安装必须的依赖库(参数-y:apt-get命令参数详解 http://hi.baidu.com/usen68/item/942891e5de324f0f8d3ea885): 1 sudo apt-get -y install autoconf && 2 sudo apt-get -y install libxml2-dev && 3 sudo apt-get -y install bzip2 && 4 sudo apt-get -y install lib

linux上安装php7 memcache扩展 和 安装服务端memcached

linux上安装memcached不算太困难.唯一让本人感到困难的是 php7的memcache扩展安装.真的蛋疼! 先说安装服务端 memcached 1. 首先安装Libevent事件触发管理器. wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz tar vxf libevent-2.0.21-stable.tar.gz cd libevent-2.0.21-stable ./c

pxe+kickstart 实现基于网络的无人值守安装操作系统

基于网络的无人值守安装操作系统 简介: 1.pxe PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议