当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Linux下源码包安装Swoole及基本使用操作图文详解

    栏目:Linux/apache问题 时间:2019-10-07 22:01

    本文实例讲述了Linux下源码包安装Swoole及基本使用操作。分享给大家供大家参考,具体如下:

    下载Swoole PECL扩展源码包:http://pecl.php.net/package/swoole

    关于PHP版本依赖选择:

    下载好放到/usr/local/src下,解压缩:

    tar -zxvf swoole-2.2.0.tgz

    准备扩展安装编译环境:

    phpize

    查看php-config位置:

    find / -name php-config

    配置:(--with-php-config==后面是你自己的php-config位置)

    ./configure --with-php-config=/www/server/php/72/bin/php-config

    编译安装:

    make && make install

    在php.ini里面加一行 :

    extension = swoole.so

    使用 php -m 命令查看swoole扩展已经安装成功:

    查看phpinfo信息:


    (测试前说明:以下使用的端口,要确认服务器放行,宝塔环境还需要添加安全组规则)

    【创建TCP服务器】

    创建server.php:

    <?php
      //创建Server对象,监听 127.0.0.1:9501端口
      $serv = new swoole_server("127.0.0.1", 9501); 
     
      //监听连接进入事件
      $serv->on('connect', function ($serv, $fd) { 
        echo "Client: Connect.\n";
      });
     
      //监听数据接收事件
      $serv->on('receive', function ($serv, $fd, $from_id, $data) {
        $serv->send($fd, "Server: ".$data);
      });
     
      //监听连接关闭事件
      $serv->on('close', function ($serv, $fd) {
        echo "Client: Close.\n";
      });
     
      //启动服务器
      $serv->start(); 

    启动TCP服务:

    php server.php

    查看9501端口已被监听:

    netstat -an | grep 9501

    使用telnet连接TCP服务,输入hello,服务器返回hello即测试成功:

    telnet 127.0.0.1 9501

    (如果telnet工具没有安装,执行yum install telnetyum install telnet-server

    也可以写一个TCP客户端连接TCP服务器端:

    创建tcp_client.php:

    <?php
      //创建Client对象,监听 127.0.0.1:9501端口
      $client = new swoole_client(SWOOLE_SOCK_TCP); 
    
      if(!$client->connect("127.0.0.1" ,9501)){
    	echo "连接失败";
    	exit;
      }
    
      //向tcp服务器发送消息
      fwrite(STDOUT, "请输入:");
      $msg = trim(fgets(STDIN));
      $client->send($msg);
    
      //接受tcp服务器消息
      $result = $client->recv();
      echo $result;