又爱又恨的LightTPD

     之前开发一真用Apache(入门时就用的它)后来因为安卓火了后有人在编译了almp觉得不错,可惜当时用的好多框架,又没好好研究lighttpd装上看了下phpinfo就放下了.

     某天心血来潮又想起这个梗(好像是因为MIPS下apache一直没运行起来),折腾了一翻,上网搜了个遍,终于把lighttpd的rewrite搞出点头绪,便想着以后可以用它来开发了还能熟悉一下CGI.

     先是从国外网站上下了个windows版的(LightTPD/1.4.35-1-IPv6 (Win32) - with SSL Support),一般的都还行,但是转义后经常找不到模块,测试后发现:rewrite后把大小写变了导致找不到文件(class_exists 判断类是否存在 竟然是区分大小写的)

         测试现象:   请求地址为: http://localhost/phpinfo.php/ABcd/efGH 结果为

     _SERVER["PATH_INFO"]    /abcd/efgh

     _SERVER["REQUEST_URI"]    /phpinfo.php/ABcd/efGH

     _SERVER["PHP_SELF"]    /phpinfo.php/abcd/efgh

  后来装了cygwin用自带的1.4.4X版这个问题修正了.但还不是很完善,就是当转义地址中带有?等其它特殊符号时又都转成了小写 :(

        测试现象:   请求地址为: http://localhost/phpinfo.php/ABcd/efGH  正常

                           请求地址为: http://localhost/phpinfo.php/ABcd/efGH?

                   _SERVER["PATH_INFO"]    /abcd/efgh

                  _SERVER["REQUEST_URI"]    /phpinfo.php/ABcd/efGH?

                  _SERVER["PHP_SELF"]    /phpinfo.php/abcd/efgh

       测试发现用windows版的PHP和cygwin自带(后来只有PHP7好些程序不支持放弃了)的都不好使.就想着自己编译一个试试,自己编译的另一个目的是让它能脱离cygwin运行,这样就在哪都可以用了.

       偶然的机会发现我编译的竟然没有上述BUG了,最后仔细比对(我编译的是最新版lighttpd-1.4.45,之前cygwin自带的是1.4.42,当发现cygwin更新最新版后我也升级了下发现问题依旧)后发现竟然是 server.document-root(lighttpd.conf)的问题,server.document-root参数不能有大写字母,不管实际路径是不是有大写字母 :P

       竟然遇到这么奇葩问题.

     

你可能感兴趣的:(又爱又恨的LightTPD)