月度归档:2012年03月

使用netbeans进行PHP团队开发和基于xdebug进行多人远程调试

不少的非单纯PHP架构的网站系统中,PHP开发的Web系统,往往对特定的服务器环境有依赖,例如使用php开发某些面向开放平台的系统,或者带有支付接口功能的系统,都需要在真正的服务器环境上进行开发与调试。2011年中国PHP技术高峰论坛上,金山技术运营中心技术经理张宴老师介绍了PHP在金山游戏运营中的一些应用实践(传送门:2011中国PHP技术高峰论坛:PHP在金山游戏运营中的应用),在其中提到了PHP的开发团队,使用一致的Linux服务器作为开发调试平台,这样所有开发者可以使用一致的配置文件,也可以进行某些依赖于服务器的开发和测试。

文中张宴老师提到使用本地nginx服务器+远程fastcgi服务器,将本地的共享文件夹映射到远程服务器的模式,在具体实践中我稍作修改:

  1. 将Web服务器和PHP-FastCGI只架设在Linux端。
  2. 将Linux服务器上的用户工作目录建立共享,映射为开发者Windows上的虚拟驱动器。
  3. 开发者通过同样的地址访问测试,在Nginx里面配置根据来访者IP地址选择root目录。

这样一来,开发者端只需要IDE环境和映射网络驱动器,在服务器端为其建立相应的SMB账号和以开发者IP命名的工作目录。例如开发者A的IP为192.168.137.101,那么他访问192.168.137.10开发服务器时,WebRoot为/home/192.168.137.101。

但是实践中发现这么做有个问题存在,即SMB服务器的读写速度太慢,由于工作区的代码副本包含SVN信息,所以SVN提交或者更新时,经常会出现超时失败的情况。后来研究Netbeans之后,发现其自带强大的远程开发调试功能。方案大致如下:

继续阅读

开源的下载工具wxDownload Fast中文汉化包

在公司电脑上是不可以安装未授权的商业软件的,之前一直用下载吧提供的IDM,应该不可以使用的,于是求助于开源社区。最先尝试了Linux下早有名气的MutiGet,但是Windows版本功能简直就是坑爹!在开源中国发现了wxDownload Fast下载工具,兼容Windows/Linux/Mac OSX平台,试了下下载速度和“抢带宽”的能力,和IDM不相上下。不错,就选择它了!

界面很简单,功能比较全面,但可惜只有英文版。自己利用闲暇,就顺手给它汉化了下。其实这个很容易做,开源社区的软件通常使用gettext库实现本地化,只需要创建合适的翻译库即可。

好了,废话不多说了,有图有真相,翻译率在95%左右。

继续阅读

PHP由于服务器时间不正确导致的IE、Chrome下SESSION丢失

今天系统联调的时候遇到了一个比较奇怪的Bug,火狐下一切正常,切换到IE和Chrome之后发现一直是未登录状态。在确认了Ajax提交的登录一切正常后,把问题定位在了PHP Session是否正常设置上。

切换到项目的Session临时目录,删除所有的SESSION文件,使用IE打开页面。发现每次刷新一次都会新增一个SESSION文件。使用IE的开发者工具(按下F12唤出面板,菜单【缓存】->【查看Cookie信息】,如图)查看Cookie列表,发现PHP的Session确实没有写进去。

继续阅读