• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    centos7环境下swoole1.9的安装与HttpServer的使用方法分析

    本文实例讲述了centos7环境下swoole1.9的安装与HttpServer的使用方法。分享给大家供大家参考,具体如下:

    一、下载swoole源码包

    https://github.com/swoole/swoole-src/releases

    如:swoole-src-1.9.6.tar.gz

    二、编译安装

    > yum install gcc gcc-c++ kernel-devel make autoconf
    > tar xf swoole-src-1.9.6.tar.gz
    > cd swoole-src-1.9.6
    
    

    我的php是安装在/data/php56下,请自行修改

    > /data/php56/bin/phpize
    > ./configure
    > make  make install
    
    

    修改php.ini文件添加如下两行

    > vi /data/php56/lib/php.ini
    
    

    以下路径请根据自的环境修改

    extension_dir = "/data/php56/lib/php/extensions/no-debug-zts-20131226/"
    extension=swoole.so
    
    

    查看扩展是否装上

    > /data/php56/bin/php -m|grep swoole
    
    

    三、HttpServer的使用

    http.php代码如下:

    ?php
    $http = new swoole_http_server('0.0.0.0', 8888);
    //设置回调函数,当收到请求时,会回调此函数
    $http->on('request', function($request, $response) {
      //$request包含了客户端请求的信息
      var_dump($request);
      //$response服务端响应信息
      var_dump($response);
      //向客户端发送404状态码
      $response->status(404);
      //向客户端发送hello
      $response->end('hello');
    });
    //启动http服务
    $http->start();
    
    

    运行该脚本

    > /data/php56/bin/php http.php
    
    

    1、HttpServer如何处理静态文件?

    一般是分析客户端发送的请求信息,如果是一个文件,那么读取并发送给客户端,如果不是则返回404。

    ?php
    $http = new swoole_http_server('0.0.0.0', 8888);
    //设置回调函数,当收到请求时,会回调此函数
    $http->on('request', function($request, $response) {
      $pathInfo = $request->server['path_info'];
      $file = __DIR__ . $pathInfo;
      //获取文件的MIME
      $fileInfo = finfo_open(FILEINFO_MIME);
      $fileMime = finfo_file($fileInfo, $file);
     
      if(is_file($file)) {
        //这里需要手动设置文件MIME格式
        $response->header('Content-Type', $fileMime);
        $response->sendfile($file);
      } else {
        $response->status(404);
        $response->end('not found');
      }
    });
    //启动http服务
    $http->start();
    
    

    我们在http.php同目录下放上一张1.jpg图片,然后请求192.168.1.222:8888/1.jpg就可正常访问。

    2、HttpServer如何处理动态php文件?

    ?php
    $http = new swoole_http_server('0.0.0.0', 8888);
    //设置回调函数,当收到请求时,会回调此函数
    $http->on('request', function($request, $response) {
      $pathInfo = $request->server['path_info'];
      $file = __DIR__ . $pathInfo;
     
      if(is_file($file)) {
        //判断文件后缀名
        if(pathinfo($pathInfo)['extension'] == 'php') {
          ob_start();
          include $file;
          $content = ob_get_contents();
          ob_end_clean();
          $response->end($content);
        } else {
          //处理其他文件
        }
      } else {
        $response->status(404);
        $response->end('not found');
      }
    });
    //启动http服务
    $http->start();
    
    

    我们在http.php同目录下创建1.php脚本,然后请求192.168.1.222:8888/1.php就可正常访问。

    3、HttpServer的守护进程化?

    只需设置配置参数daemonize为1就可以了。

    ?php
    $http = new swoole_http_server('0.0.0.0', 8888);
     
    //设置进程数量,和守护进程化
    $http->set(array(
      'worker_num' => 4,
      'daemonize' => 1,
    ));
     
    //设置回调函数,当收到请求时,会回调此函数
    $http->on('request', function($request, $response) {
      $pathInfo = $request->server['path_info'];
      $file = __DIR__ . $pathInfo;
     
      if(is_file($file)) {
        //判断文件后缀名
        if(pathinfo($pathInfo)['extension'] == 'php') {
          ob_start();
          include $file;
          $content = ob_get_contents();
          ob_end_clean();
          $response->end($content);
        } else {
         
        }
      } else {
        $response->status(404);
        $response->end('not found');
      }
    });
    //启动http服务
    $http->start();
    
    

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP网络编程技巧总结》、《php socket用法总结》、《php面向对象程序设计入门教程》、《PHP数据结构与算法教程》及《php程序设计算法总结》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP扩展Swoole实现实时异步任务队列示例
    • PHP使用SWOOLE扩展实现定时同步 MySQL 数据
    • linux下安装openssl、swoole等扩展的详细步骤
    • linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
    • PHP的swoole扩展安装方法详细教程
    • php安装swoole扩展的方法
    • 使用swoole扩展php websocket示例
    • CentOS7安装PHP7 Redis扩展的方法步骤
    • CentOS下安装Memcached和PHP Memcached扩展
    • CentOS环境下安装Redis3.0及phpredis扩展测试示例
    • Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
    • Centos7安装swoole扩展操作示例
    上一篇:thinkphp3.2框架集成QRcode生成二维码的方法分析
    下一篇:PHP使用swoole编写简单的echo服务器示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    centos7环境下swoole1.9的安装与HttpServer的使用方法分析 centos7,环境,下,swoole1.9,的,