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

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

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

本文實例講述了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

查看擴展是否裝上

> /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)收到請求時,會回調(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');
});
//啟動http服務(wù)
$http->start();

運行該腳本

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

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

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

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

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

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

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

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

3、HttpServer的守護進程化?

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    php 強制下載文件實現(xiàn)代碼

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

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

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

    PHP上傳圖片進行等比縮放可增加水印功能

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

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

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

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

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

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

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

最新評論

达孜县| 城步| 申扎县| 南皮县| 武清区| 阿拉尔市| 汤阴县| 镇原县| 长丰县| 会理县| 隆德县| 克什克腾旗| 石屏县| 民和| 古交市| 仙居县| 深州市| 兰考县| 彰化县| 朝阳市| 科技| 望江县| 页游| 诸暨市| 楚雄市| 正镶白旗| 绵阳市| 手游| 桓台县| 礼泉县| 滦南县| 威海市| 木兰县| 阳春市| 祁连县| 淮滨县| 广灵县| 抚远县| 大余县| 崇州市| 琼结县|