A new way called DWS to run php script on nginx 0.8.x !

lhmwzy lhmwzy at gmail.com
Sat Oct 9 12:58:40 MSD 2010


Looks great!

在 2010年10月9日 下午4:47,hightman <hightman at zuaa.zju.edu.cn> 写道:
> PHP-DWS is the abbreviation for "PHP Direct Web Server".  It works much like
> fastcgi server with nginx,
> But nginx pass the request header of HTTP and socket file description of
> this connection to it via
> calling sendmsg(), and then PHP-dws read request body data from http
> connection , send response
> data to the http connection directly.
> I simply draw their work in the following flow diagram:
>       [PHP-CGI]
>       ============
>
>             i)request header+body     ii)request header+body
>            +~~~~>~~~~>~~~~>~~~+     +~~~~~>~~~~~>~~~~>~~~~~+
>            |                  |     |                      |
>           /|\                \|/   / \                    \|/
>       WebVisitor             Web Server               FastCGIServer
>         (user)                (nginx)                  (php-cgi)
>           /|\                \ /   /|\                    \ /
>            |                  |     |                      |
>            +~~~<~~~~<~~~~<~~~~+     +~~~~~<~~~~~<~~~~<~~~~~+
>           iv)response header+body    iii)response header+body
>       [PHP-DWS]
>       ============
>                         i)request header           ii)request header
>            +~~~~>~~~~>~~~~>~~~+     +~~~~~>~~~~~>~~~~>~~~~~+
>            |                  |     |                      |
>           /|\                \|/   / \                    \|/
>       WebVisitor             Web Server               DWSCGI Server
>         (user)                (nginx)                   (php-dws)
>        /|\  \ /                                         /|\   \ /
>         |    |                                           |     |
>         |    +~~~~~~~~>~~~~~~~~~~~~>~~~~~~~~~~~~>~~~~~~~~+     |
>         |     iii) request body                                |
>         |                                                      |
>         +~~~~~~~~~~~~~<~~~~~~~~~~~<~~~~~~~~~~~~~<~~~~~~~~~~~~~~+
>         iv)response header+body
> I think that php-dws will save much more IO operator and become more
> efficient.
> In addition, we can send partial data to browser during script running, i.e:
> http://root.twomice.net/dws-test/sleep.phpd
> Welcome to give me some suggestions or comments!
> ===
> I have completed the preliminary work, including two part.
> The first is ngx_http_dwsgi_module,  download source codes from:
> http://www.hightman.cn/down/nginx_0.8_dwsgi_module_beta1.tgz
> Extract it to top source directory of nginx, it will be looked like:
> nginx-0.8.x/src/addon/dwsgi/
> then recompile the nginx with option: --add-module=src/addon/dwsgi
> config sample can be found in src/addon/dwsgi/*.conf
>
> The second is a new sapi module for php, develop under 5.3.3, get the source
> code package from:
> http://www.hightman.cn/down/php53_sapi_dws_beta1.tgz
> Extract it to top source directory of php5, it will be looked like:
> php-5.3.x/sapi/dws/
> then run following commands to rebuild the php:
> ./buildconf --force
> ./config.nice --disable-fpm --disable-cgi --enable-dws
> make && make install
> Run $prefix/bin/php-dwsctl to start or stop php-dws,
> or try $prefix/bin/php-dws -h  for more options and its description.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx
>
>



More information about the nginx mailing list