jayki
V2EX  ›  PHP

实现了一个简单的 web 服务器,拿出来晒晒

  •  2
     
  •   jayki · May 10, 2016 · 6496 views
    This topic created in 3680 days ago, the information mentioned may be changed or developed.

    一个简单的 web 服务器,支持 php

    地址: https://github.com/jaykizhou/php-server

    欢迎 v 友 star & 赐教!

    35 replies    2016-05-11 09:16:00 +08:00
    qcloud
        1
    qcloud  
       May 10, 2016
    cool
    jayki
        2
    jayki  
    OP
       May 10, 2016
    @qcloud 哈哈, 3Q
    hardyfish
        3
    hardyfish  
       May 10, 2016
    NBlity
    chineselittleboy
        4
    chineselittleboy  
       May 10, 2016 via iPhone
    不会是实验楼的那个吧
    jayki
        5
    jayki  
    OP
       May 10, 2016
    @chineselittleboy 这都能遇到熟人,~_~
    jayki
        6
    jayki  
    OP
       May 10, 2016
    @hardyfish 抱拳
    shellcodecow
        7
    shellcodecow  
       May 10, 2016
    star
    gpw1987
        8
    gpw1987  
       May 10, 2016
    牛逼呀
    ajan
        9
    ajan  
       May 10, 2016
    star, 都是高人
    woodrat
        10
    woodrat  
       May 10, 2016
    同时参考 csapp 写的,之前搞了个 wsgi 的,不过还有 N 多 bug 没修。。。
    地址 : https://github.com/Mithrilwoodrat/toyws
    我的[博客](woodrat.xyz)里面有详细介绍
    woodrat
        11
    woodrat  
       May 10, 2016
    @woodrat 同是打成了同时。。。。
    aljun
        12
    aljun  
       May 10, 2016
    请教一下,写一个类似的 wsgi 服务器的话,应该看些什么呢?并非 c 语言程序员, c 只有学校教的水平
    jayki
        13
    jayki  
    OP
       May 10, 2016
    @shellcodecow 感谢
    jayki
        14
    jayki  
    OP
       May 10, 2016
    @gpw1987 抱拳
    jayki
        15
    jayki  
    OP
       May 10, 2016
    @woodrat 哈哈, see see
    jimzhong
        16
    jimzhong  
       May 10, 2016
    LZ 是不是参考了 CS:APP 那本书,看着有些函数名很像。
    woodrat
        17
    woodrat  
       May 10, 2016
    @aljun 我写过一篇关于这个的[博客]( http://woodrat.xyz/2016/04/24/%E7%BC%96%E5%86%99%E4%B8%80%E4%B8%AA%E6%9C%80%E7%AE%80%E5%8D%95%E7%9A%84-wsgi-server/ )
    主要参考 https://ruslanspivak.com/lsbaws-part2/ 和 PEP 333 。
    如果你要用 C 写的话可以参考一下 https://github.com/jonashaag/bjoern 这个库
    cxshun
        18
    cxshun  
       May 10, 2016
    牛,赞楼主!
    jayki
        19
    jayki  
    OP
       May 10, 2016
    @jimzhong 点头
    jayki
        20
    jayki  
    OP
       May 10, 2016
    @cxshun 感谢,哈哈
    lz3259
        21
    lz3259  
       May 10, 2016
    我理解就是把 fastcgi 封装成了 http ?
    jayki
        22
    jayki  
    OP
       May 10, 2016
    @lz3259 fastcgi 定义了 web 服务器与 php 解释器之间的通信协议规范,建立在 tcp 协议上,可以看成与 http 一样同属应用层协议,就像 http 定义了客户端与 web 服务器之间的通信协议规范
    liamxd
        23
    liamxd  
       May 10, 2016
    那儿有部署好的可以看看的?
    reage
        24
    reage  
       May 10, 2016
    之前自己也搞了一个,设想在嵌入式设备中运行,现在改成代码同步工具。 觉得 web 服务器重点的实现在于内存管理、连接的管理,如果使用 c 写建议封装字符串的操作。
    jayki
        25
    jayki  
    OP
       May 10, 2016
    @liamxd 没有现成部署好的, sorry
    jayki
        26
    jayki  
    OP
       May 10, 2016
    @reage 同意,不过我的实现比较简单,没这么复杂
    a15819620038
        27
    a15819620038  
       May 10, 2016
    不错。
    a15819620038
        28
    a15819620038  
       May 10, 2016
    实现服务器支持 PHP 、 Python 等还是挺容易的~

    支持楼主,希望楼主继续完善~
    strwei
        29
    strwei  
       May 10, 2016
    已 start ,不错,赞个
    yxzblue
        30
    yxzblue  
       May 10, 2016
    挺牛逼
    jayki
        31
    jayki  
    OP
       May 10, 2016 via Android
    @a15819620038 哈哈,谢谢
    jayki
        32
    jayki  
    OP
       May 10, 2016 via Android
    @strwei 感谢, 抱拳
    jayki
        33
    jayki  
    OP
       May 10, 2016 via Android
    @yxzblue 抱拳
    neoblackcap
        34
    neoblackcap  
       May 10, 2016
    @jayki 至少追加个多进程,要不然一个长耗时的连接过来就 gg 了
    jayki
        35
    jayki  
    OP
       May 11, 2016
    @neoblackcap 的确是,目前也实现了一个多进程版本的, https://github.com/jaykizhou/php-server/tree/master/schedule ,由于实现的比较粗糙,所以没有说明出来,后续完善吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2812 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 03:53 · PVG 11:53 · LAX 20:53 · JFK 23:53
    ♥ Do have faith in what you're doing.