最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

centos7環(huán)境下swoole1.9的安裝與HttpServer的使用方法分析

 更新時(shí)間:2020年03月11日 11:33:40   作者:懷素真  
這篇文章主要介紹了centos7環(huán)境下swoole1.9的安裝與HttpServer的使用方法,結(jié)合實(shí)例形式分析了centos7環(huán)境下swoole1.9的安裝、配置方法以及HttpServer的相關(guān)使用技巧,需要的朋友可以參考下

本文實(shí)例講述了centos7環(huán)境下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

以下路徑請根據(jù)自的環(huán)境修改

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

查看擴(kuò)展是否裝上

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

三、HttpServer的使用

http.php代碼如下:

<?php
$http = new swoole_http_server('0.0.0.0', 8888);
//設(shè)置回調(diào)函數(shù),當(dāng)收到請求時(shí),會(huì)回調(diào)此函數(shù)
$http->on('request', function($request, $response) {
  //$request包含了客戶端請求的信息
  var_dump($request);
  //$response服務(wù)端響應(yīng)信息
  var_dump($response);
  //向客戶端發(fā)送404狀態(tài)碼
  $response->status(404);
  //向客戶端發(fā)送hello
  $response->end('hello');
});
//啟動(dòng)http服務(wù)
$http->start();

運(yùn)行該腳本

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

1、HttpServer如何處理靜態(tài)文件?

一般是分析客戶端發(fā)送的請求信息,如果是一個(gè)文件,那么讀取并發(fā)送給客戶端,如果不是則返回404。

<?php
$http = new swoole_http_server('0.0.0.0', 8888);
//設(shè)置回調(diào)函數(shù),當(dāng)收到請求時(shí),會(huì)回調(diào)此函數(shù)
$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)) {
    //這里需要手動(dòng)設(shè)置文件MIME格式
    $response->header('Content-Type', $fileMime);
    $response->sendfile($file);
  } else {
    $response->status(404);
    $response->end('not found');
  }
});
//啟動(dòng)http服務(wù)
$http->start();

我們在http.php同目錄下放上一張1.jpg圖片,然后請求192.168.1.222:8888/1.jpg就可正常訪問。

2、HttpServer如何處理動(dòng)態(tài)php文件?

<?php
$http = new swoole_http_server('0.0.0.0', 8888);
//設(shè)置回調(diào)函數(shù),當(dāng)收到請求時(shí),會(huì)回調(diào)此函數(shù)
$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');
  }
});
//啟動(dòng)http服務(wù)
$http->start();

我們在http.php同目錄下創(chuàng)建1.php腳本,然后請求192.168.1.222:8888/1.php就可正常訪問。

3、HttpServer的守護(hù)進(jìn)程化?

只需設(shè)置配置參數(shù)daemonize為1就可以了。

<?php
$http = new swoole_http_server('0.0.0.0', 8888);
 
//設(shè)置進(jìn)程數(shù)量,和守護(hù)進(jìn)程化
$http->set(array(
  'worker_num' => 4,
  'daemonize' => 1,
));
 
//設(shè)置回調(diào)函數(shù),當(dāng)收到請求時(shí),會(huì)回調(diào)此函數(shù)
$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');
  }
});
//啟動(dòng)http服務(wù)
$http->start();

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php socket用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》及《php程序設(shè)計(jì)算法總結(jié)

希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • php intval函數(shù)用法總結(jié)

    php intval函數(shù)用法總結(jié)

    在本篇內(nèi)容里小編給大家總結(jié)了關(guān)于php intval函數(shù)用法以及相關(guān)知識(shí)點(diǎn)總結(jié),需要的朋友們跟著學(xué)習(xí)下。
    2019-04-04
  • MySQL 日期時(shí)間函數(shù)常用總結(jié)

    MySQL 日期時(shí)間函數(shù)常用總結(jié)

    MySQL 日期時(shí)間函數(shù)常用總結(jié),需要的朋友可以參考下
    2012-06-06
  • php cli模式下獲取參數(shù)的方法

    php cli模式下獲取參數(shù)的方法

    本篇文章主要介紹了php cli模式下獲取參數(shù)的方法,具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-05-05
  • 24條貨真價(jià)實(shí)的PHP代碼優(yōu)化技巧

    24條貨真價(jià)實(shí)的PHP代碼優(yōu)化技巧

    這篇文章主要為大家分享了24條貨真價(jià)實(shí)的PHP代碼優(yōu)化技巧,幫助大家更好的進(jìn)行PHP項(xiàng)目開發(fā),感興趣的小伙伴們可以參考一下
    2016-07-07
  • php 強(qiáng)制下載文件實(shí)現(xiàn)代碼

    php 強(qiáng)制下載文件實(shí)現(xiàn)代碼

    php 強(qiáng)制下載文件實(shí)現(xiàn)代碼。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • PHP strlen()函數(shù)用法詳解

    PHP strlen()函數(shù)用法詳解

    PHP中的strlen()函數(shù)用于獲取字符串的長度,即字符串字符的個(gè)數(shù),并返回該字符串中字符的數(shù)量,這個(gè)函數(shù)不考慮字符的編碼,只計(jì)算字符的個(gè)數(shù),本文就給大家詳細(xì)說說PHP strlen()函數(shù)的使用方法
    2023-07-07
  • PHP上傳圖片進(jìn)行等比縮放可增加水印功能

    PHP上傳圖片進(jìn)行等比縮放可增加水印功能

    PHP上傳圖片進(jìn)行等比縮放,大家可以自行添加增加水印功能,具體代碼如下,喜歡的朋友可以參考下
    2014-01-01
  • PHP中比較兩個(gè)對象的幾種方式小結(jié)

    PHP中比較兩個(gè)對象的幾種方式小結(jié)

    在PHP中,比較兩個(gè)對象并不是一件直接明了的事情,因?yàn)閷ο笾g的比較通常依賴于它們的屬性和狀態(tài),而這些屬性和狀態(tài)可能非常復(fù)雜且多樣化,本文給大家總結(jié)了PHP中比較兩個(gè)對象的幾種方式,需要的朋友可以參考下
    2024-09-09
  • PHP+jQuery實(shí)現(xiàn)雙擊修改table表格功能示例

    PHP+jQuery實(shí)現(xiàn)雙擊修改table表格功能示例

    這篇文章主要介紹了PHP+jQuery實(shí)現(xiàn)雙擊修改table表格功能,涉及php數(shù)組讀取、遍歷及jQuery動(dòng)態(tài)響應(yīng)修改頁面元素屬性相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • ie與session丟失(新窗口cookie丟失)實(shí)測及解決方案

    ie與session丟失(新窗口cookie丟失)實(shí)測及解決方案

    正如標(biāo)題所言測試結(jié)果為:如果cookie設(shè)置是延后定時(shí)失效,而非進(jìn)程級(jí)的,那在open后也能看到,所以,針對此情況,防止用戶在使用ie內(nèi)核出現(xiàn)登錄狀態(tài)丟失,可以配合cookie來使用
    2013-07-07

最新評論

神农架林区| 冕宁县| 喜德县| 灵寿县| 彭水| 绥阳县| 永吉县| 正阳县| 灵台县| 枞阳县| 泾川县| 大化| 新沂市| 兴宁市| 汉沽区| 秭归县| 昭平县| 佛教| 深水埗区| 东乡县| 巴林左旗| 会同县| 蒲江县| 遂昌县| 克山县| 道真| 岑溪市| 江阴市| 吐鲁番市| 巴马| 玉山县| 大埔区| 福清市| 班玛县| 涡阳县| 固安县| 遂川县| 罗城| 霍山县| 乐至县| 德清县|