V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jayki
V2EX  ›  PHP

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

  •  2
     
  •   jayki · 2016-05-10 09:12:03 +08:00 · 5505 次点击
    这是一个创建于 2909 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    欢迎 v 友 star & 赐教!

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

    支持楼主,希望楼主继续完善~
    strwei
        29
    strwei  
       2016-05-10 19:11:11 +08:00
    已 start ,不错,赞个
    yxzblue
        30
    yxzblue  
       2016-05-10 20:01:31 +08:00
    挺牛逼
    jayki
        31
    jayki  
    OP
       2016-05-10 21:03:53 +08:00 via Android
    @a15819620038 哈哈,谢谢
    jayki
        32
    jayki  
    OP
       2016-05-10 21:04:39 +08:00 via Android
    @strwei 感谢, 抱拳
    jayki
        33
    jayki  
    OP
       2016-05-10 21:04:51 +08:00 via Android
    @yxzblue 抱拳
    neoblackcap
        34
    neoblackcap  
       2016-05-10 22:23:22 +08:00
    @jayki 至少追加个多进程,要不然一个长耗时的连接过来就 gg 了
    jayki
        35
    jayki  
    OP
       2016-05-11 09:16:00 +08:00
    @neoblackcap 的确是,目前也实现了一个多进程版本的, https://github.com/jaykizhou/php-server/tree/master/schedule ,由于实现的比较粗糙,所以没有说明出来,后续完善吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   880 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 21:47 · PVG 05:47 · LAX 14:47 · JFK 17:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.