几日前调试了一个php的加密扩展,用于php代码的加密。linux下的开发工作比较简单,安装好需要的php版本后,依次执行phpize等命令即可完成。可是我们的代码不能只在linux下运行啊,所以着手进行windows平台的编译,于是乎麻烦就来了。
首先是php版本问题,要到官方下载你需要版本的php源代码,这个自不必说。同时还需要相应版本的php5ts.lib文件,这个文件可以从win平台下php安装包的dev目录里面找到。注意5.3以下的编译都是vc6编译的,5.3区分服务平台,iis使用的php是vc9编译的,apache是vc6编译的。因此需要在线上环境使用的话,直接去下载线上环境dev里面的文件最合适了。
再就是编译环境的问题,vc6和vc9的编译器是必须的了。只是我直接装了一个vs2010,然后就哭了……所以好的配合还是vc++6.0和vs2008.
最后编译就是各种依赖了,缺少代码什么的,反正是缺啥就从网上下最新版的就行。还有一个比较麻烦的地方就是编译参数的设置,一般在windows下面通过ext_skel_win32.php(需要cygwin)生成的编译参数不需要调整,只是在缺少依赖时调整个别文件的路径就可以了。
总得来说,linux环境下简单,windows下面因为web服务器平台和php版本问题,再加上需要安装庞大的编译器,耗时比较长。结论就是能不动扩展坚决不动,太痛苦了。