Total Pageviews

Saturday 6 October 2012

把网站从ASP/ASPX迁徙到PHP

主要把手中几个网站从Windows IIS平台迁徙到了Linux Nginx下面。由于Linux对asp和aspx的支持不好,虽然有MONO,但Access和MSSQL数据库还是无法支持,所以把asp和aspx的网站全部换成php的了。
通过最近半个月左右的观察,感觉LNMP(Linux+Nginx+MySQL+PHP)平台没有让我失望,付出的劳动应该是值得的。

为什么要从Windows+IIS+ASP/ASPX+MSSQL换到LNMP

  • 换到Linux可以节省运营成本,谁叫俺是穷人呢。
  • 稳定
    之前连连看的论坛是ASP.Net的Discuz论坛,经常抛异常,甚至导致w3wp进程死掉。换到PHP的Discuz 7.2后,论坛表现的很稳定,而且速度也有所提升。
    7、8年前ASP.Net 1.1刚出来的时候,我觉得.Net只要5、6年时间就可以一统江湖,但现在无论是桌面开发还是网络开发,.Net的表现都不尽如人意。
    曾经吹牛说Vista是基于.Net的操作系统,结果非常莫名其妙,UAC更是失败中的失败,APP不准写自身文件夹,非要写系统的用户文件夹,难道这就是多用户?现在又把Vista 6.0的内核升到6.1,就当作Win7来卖,实在不明白微软那么多工程师在搞什么。
  • 方便
    Linux管理起来比Windows方便多了,IIS的图形界面使用起来非常低效,rewrite功能不行,需要外置模块或使用ASP.Net的rewrite。
    MS SQL Server 2000的备份功能很弱,经常因为用户权限的问题导致Discuz论坛无法使用,比如恼人的“对象名 ‘dnt_templates’ 无效”。
    而Linux无论使用crontab进行自动备份还是使用各种工具比如PHPMyAdmin手动备份都很方便。

迁徙成本

Discuz的.Net论坛有升级包可以直接转换到PHP的版本,虽然有些帖子需要重新编辑,大部分附件地址有问题,需要重新修改,但时间成本不超过2天。
另一个人工智能网站是基于ASP的动易CMS,由于年代太久远了,无法直接升级,于是使用的DedeCMS做的采集,大部分内容进行了重新编辑,加上界面模板修改,大约花了10多天时间。
最后是自己用ASP.NET 2.0编写的公司网站,花了3、4天重新设计和编写,还没完全完成。原先ASP.NET生成的html代码比较冗余,一大串ViewState的编码,经常自带很长的id名,不利于SEO,换到PHP后好多了,也通过了W3C的验证。

迁徙结果

网站响应速度有所提升

下图是监控宝提供的连连看网站响应时间变化图,约在下午3点,网站由Win2003/IIS迁移到了Debian5/Nginx。

由于LLK.cn的网页基于shtml制作,没有用到动态技术,该图较好地反应两种web server在性能上的区别。
可以看到,IIS服务器在0点和10点分别有两次服务器计算,消耗了较长时间,反应出IIS在建立连接上面比较慢。
另外,切换到Nginx后,传输时间也相应减少,不过这可能仅仅是因为网络原因。

页面执行速度有所提升

连连看论坛从ASP.NET换到PHP后,页面执行时间方面从0.0x 降到了0.00x ,当然后者是用了eaccelerator编译PHP代码的,可ASP.NET也会编译啊。
人工智能网从asp换成php后,提升效果则更为明显,看图即知,都无需指明是几点切换的,这是两种完全没有可比性的技术。

结论

这次Web Server从Windows/IIS换到Linux/Nginx,网站从ASP/ASPX换到PHP,带来了性能上的提升和管理上的方便.