分类目录归档:个人折腾

让nginx支持pathinfo

nginx的高性能优势明显,自己又很喜欢pathinfo类型的url。
apache下mod_rewirte有很好的实现,nginx就捉鸡了。
网上有一些中文的文章教你怎么配置nginx来支持pathinfo(当然很多是互相抄袭的)
英文的相对少很多

这里贴下我的配置:

首先是location / 的块里面,对于不存在的请求文件名,全部转发给index.php,这样便不在404

location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php$1 last;
        break;
    }
}

此外,还需要几行字来把pathinfo提取出来,写在location ~ \.php$ 块里面,注意为了支持pathinfo
这个块匹配的正则需要改为 location ~ \.php($|/)   ,这是正则相关知识自行查阅

location ~ \.php($|/) {
    set $script $uri;
    set $path_info "";
    if ($uri ~ "^(.+\.php)(/.+)") {
        set $script $1;
        set $path_info $2;
    }

    root R:\\;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_param SCRIPT_NAME $script;
    include fastcgi_params;
}

看到root设置你知道这个是windows上面的配置,没错就是我本机的设置,R盘不用惊讶,那是内存盘,只是配置了ide里面的自动上传,方便调试。下面给出这个配置过后的相关的$_SERVER信息。
输出显示pathinfo信息被附加到好多个变量里面,有点乱,其实主要参考是request_uri和path_info,去别在于前者带有queryString参数,后者没有

["DOCUMENT_URI"]=>
string(16) "/index.php/1/2/3"
["REQUEST_URI"]=>
string(6) "/1/2/3"
["SCRIPT_NAME"]=>
string(16) "/index.php/1/2/3"
["PATH_INFO"]=>
string(6) "/1/2/3"
["SCRIPT_FILENAME"]=>
string(13) "R:\/index.php"

Geek方法对手持设备应用抓包

现在手持设备诸如平板上面有很多很大的游戏,很多游戏设计在第一次打开的时候提示下载数据包,不过这些应用内下载通常效率很低,而且没有进度能看。(因为都是外国的公司么?从外国服务器上面下载?)我们知道在电脑上面我们可以使用诸如离线下载、多线程下载等方式提高下载速度,所以如果我们知道应用内下载的数据包的下载地址,我们就能事先在电脑上面下载,再把数据包放入存储卡。当然了,很多发应用的人都会给出数据包下载地址,不过很多都在网盘,而且还是那个最近悲剧了的网盘。所以,我们自己下载可能会好点。

好吧说实在的就是我平板里面的实况足球2011,就是这么一个应用内下载的情况。你说我们电脑上面可以抓包,平板上面怎么办?方法有很多,这里我是用一种比较简单的办法:

软件准备:
电脑端:Fiddler2(抓包用)、Tcpmapping(端口映射)
移动端:ProxyDroid

fiddler的抓包很不错,是抓http的包的,它默认开启8888端口http代理,打开软件后可以点击左下角的capturing停止抓包,不过这是全局的抓包。关掉以后通过8888端口代理的数据包还是可以抓到并显示在主窗口的列表里面的。不过问题是这个fiddler的代理绑定的貌似是127.0.0.1本地地址,也就是通过电脑的独立IP 和8888端口并不能连接上fiddler代理,所以这里我用了tcpmapping这一个小工具,这是一个简单的端口映射工具,我可以在里面建立一条规则在本地再开一个端口并映射到127.0.0.1:8888,这样就成功把fiddler代理暴露在外面。

下一步我在平板上面使用ProxyDroid建立一个代理设置指向电脑的IP和对外开放的映射端口,然后开启代理之后就可以了,再次打开实况足球2011并同意开始应用内下载,fiddler里面就捕捉到下载地址了,接下来你就可以用各种工具来下载数据包了

刷MIUI三天试用感受

自己机器是三星i9003,之前一直有关注到miui的消息,可是我这个机型不算大众,所以理所当然没有MIUI官方支持,i9000就有,国外xda上有些大牛还是愿意去改造miui来适应i9003。

早两天突然手闲了就想刷机,主要考虑Android ICS和MIUI,看了几个图觉得MIUI还真的挺不错的,之前用的Rom是XXKPQ,拿CWM备份一次就开刷了,这里吐槽一下CWM里面按键太滑了,备份的时候我用中间硬件确定一下就按了两次的样子,有点危险的说。

这次的Rom是从这里下载的,是先看到的刷机精灵这工具,工具看上去不错,貌似要把刷机这个折腾活傻瓜化,但是对于我的手机用不了,只是说搜索不到刷机方案。

下面开始说体验。

我个人试用过后觉得MIUI最大的特点莫过于做好了很多必备的用户级程序,体验很好,可定制型强

之前的Rom上面我需要用很多第三方程序才能满足我的需求,主要有:来电通(智能拨号、拦截等用途)、Go短信(美观、定时发送、来信即显)、天天动听、UC浏览器。而我发现刷了MIUI之后系统自带的已经能够基本满足我的需求了!一开始用我基本只需要装个输入法就好

上图分别展示拨号器、浏览器、短信、音乐播放器和图库。从上面看以看到MIUI做了很多细节上的优化,例如短信那幅图还有标注飞信发过来的(12520打头的号码)等

上面的图展示了拨打电话使得界面还有一些小东西像录音、指南针、便笺,这些可能不常用但是还是看到用心做的痕迹,倒数第二个图看到的是MIUI通知+开关整合的下拉通知栏,之前我也有下拉十三开关,但是只是一排横向而且和通知挤在一页很不协调。

最后一图展示的是MIUI的主题商店,在这里可以找到很多好看的主题可以随心更换
 从上面的图可以看到一个主题还能分模块部分应用和自行做小修改。不知道看到上面的桌面的图你们有没有疑惑,反正一开始我刷完的时候就很疑惑,有没有发现好像少了一个Application List的按钮,点击之后应该可以看到所有已安装程序的图标的。没错,确实是没有按钮,MIUI直接把图标都放在桌面上了。再思考一下其实之前的Application List和桌面的区别就只在于桌面可以放壁纸和各种widget,整合在一起应该是个好主意。

另外说到定制性,MIUI里面很多东西可以通过设置来修改,例如状态栏电池图标是图形方式还是数字方式这些。在其他的Rom里面恐怕得通过自己手工修改覆盖系统中的文件才能达到同样效果。

上面说了这么多好的再来说下不好的地方:

耗电问题:确实比较耗电,一天一充也很难撑得住。有一点注意到的是,关于手机里面显示的1.2Ghz的CPU频率,也就是超频了,原生Rom里面默认工作频率是1Ghz。另外MIUI主题包一个可以有十来M的大小,其实动画我开了部分,电话短信都不多,爱美要付出代价……
驱动问题:毕竟不是原生MIUI支持i9003,驱动这个不能怨言太多。目前就发现大家都知道的摄像问题,拍照可以,摄像不行,不过我不常用,我手机买回来只摄像过……两次?

总的来说我对于MIUI还是表示十分喜欢,估计一段时间内不可能刷回去原来的Rom,听说腾讯也来折腾这玩意,名号Tita,刚出来的,貌似手脚太慢了点,而MIUI号称国内外已有50万发烧友用户