直截了当地讲,我的看法是:操作系统用Linux,数据库用PostgreSQL、MySQL、Sqlite之一,网站编程语言用ASP.NET、PHP、JSP之一,WEB服务器程序用Apache、Nginx、Jexus、Tomcat之一。
进一步分解,我们可以细化为下面几个方案。
方案一:操作系统:Ubuntu,freeBSD等,编程语言:PHP,数据库:MySQL(或PostgerSQL、Sqlite),WEB服务器:Apache(或Nginx)。
方案二:操作系统:Ubuntu,freeBSD等,编程类型:ASP.NET,数据库:PostgreSQL(或MySQL、Sqlite),WEB服务器:Jexus(或Nginx+XSP2)。
方案三:操作系统:Ubuntu,freeBSD等,编程语言:JSP,数据库:PostgreSQL(或MySQL、Sqlite),WEB服务器:Tomcat。
大家看完了上面几个方案,肯定有朋友会问:上面的方案中,怎么没有Windows这样方便的操作系统,怎么没有Oracle或Microsoft SQL Server这类“重量级”的数据库系统,能在Linux跑ASP.NET吗?
为什么不选Windows?我的回答是:凭什么我要选Windows!就服务器操作系统而言,操作界面无需漂亮(再漂亮也是关在机房中的),附属功能越少越好越安全。对于方便性,Windows的“操作方便”之类的优势在WEB服务器这个特殊环境中几乎谈不上什么优势,因为,在WEB服务器上,我们根本就没有太多的操作,Linux控制台的几条命令已经足够多而且足够简便,对于网站管理人员,非常简便的几条Linux命令还有学不会的?至于安装,Ubuntu Linux服务器版的安装与安装Windows一样的简单,几乎是一路“回车”就可以搞定。
当然,选用Linux或类Unix也是有学问的,一定要选择操作简便、稳定可靠、用户面宽量大的免费服务器版,比如Ubuntu服务器版、FreeBSD等就很适合于政府部门的网站服务器和数据库服务器操作系统。如果你选上一种看似免费,实则是高价收费的“免费”系统或者是服务支持度不够、繁复难用的*nix,那就反而会增大你的投入。
为什么不选Oracle、SQL Server之类的“重量级”数据库?我的回答是:为什么您只买小车而不去买航空母舰?实用够用才是硬道理!就政府网站而言,它的主要功能是新闻发布、政务公开、网上办事与交流互动,对于数据库,一个小小的Sqlite数据库的功能都不一定用得完,更不用说PostgreSQL这类更加强大的免费数据库。因此,我们根本就没有任何理由用纳税人的钱去买个所谓的“重量级”!
Linux上能跑ASP.NET吗?完全可以。Mono2.4 已经正式发布一段时间了,它让DotNET跨平台的梦想变成了现实!就我所知,在Linux上架设ASP.NET网站,国内已有实例,国际上的实例更不在少数。更重要的是,Jexus web server这个Linux、Unix平台的同时支持ASP.NET和PHP的WEB服务器程序也已经由国人成功开发出来并且投入到实际应用中去了,用Jexus 在Linux平台上建立ASP.NET网站是一种非常方便而聪明的方案。顺便补充一句,在Mono的支持下,当前许多在Windows下运行的Asp.net网站,几乎都可以不加修改或者略加修改就可以迁移到Linux平台上去(用Access数据库的除外)!
细心的读者会发现,我提出的几种建站方案,所需的人民币几乎都趋近于零,而如果选用Windows加SQL Server或者Oracle这样的方案,每台服务器需要人民币数万甚至十数万。所以,如果全国的政府网站、部门网站都采用Linux方案,节约的建设经费是非常惊人的。
其实,对于政府网站的架构,节约费用不算一个主要课题,安全性、稳定性、可操作性、可持续发展能力才是建设的首要原则。但是,当我们的免费架构同样能够满足这些建站原则时,我们为什么不采用它呢?!
在桌面应用方面,Windows的确有它自身的优势,这方面,Linux还有一段不小的路要去追赶。因此,在桌面,要求大家都用Linux是不现实的,短时间内根本就做不到。但是,在服务器方面特别是Web服务器方面就不同了,在服务器方面,Linux和Windows是并驾齐驱的两架马车,都可以称得上“重量级”,但综合取舍分析之后,我强烈建议大家用Linux作服务器操作系统。
【注】本文是从网文《政府或部门的网站服务器到底应该是一种什么样的架构》改写而成。