Linux构建网站案例

2008-02-23 05:31:47来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

网站建设已成为当今社会的一个热门话题,形形色色的网站如雨后春笋般发展起来。我所在单位通信标准化推进中央拥有丰富的标准资源,这些资源又是企业研发的重要信息,因此我们就建立了通信标准和质量信息网(www.ptsn.cn.net ),把我们的资源在Internet网上发布,供用户查询、下载。

  系统选择

  网站建设不外乎两种方案:一种是采用微软的一系列产品,另一种是使用Linux系统连同一些第三方的网络产品,两者系统配置如下表:

操作系统 Win NT Linux
WWW服务器 IIS Apache
网络数据库 MS SQL Server MySQL
信件服务器 Exchange Sendmail
编程语言 ASP PHP
  由于微软的网络产品技术比较成熟,最初我们选择了微软的Win NT 4.0、IIS 3.0、SQL Server 6.5、Exchange 5.5来建设网站。但是经过一段时间的试运行我们发现了一些问题,比如,对用户进行身份验证时由于用户自身的网络接入不同而造成了一部分用户必须提升为管理员权限才能下载标准全文,甚至个别用户提升为管理员权限后仍不能下载全文。另一方面,系统的稳定性、安全性也让人担忧,曾有几次系统莫名奇妙地死机,使我们的网站长时间不能正常工作,而且我们的系统管理员利用Win NT本身的漏洞能够通过浏览器“窃取”数据库和系统的重要数据。最后我们决定改用Linux方案。

  Linux现在的版本比较多,每个版本都有其独到的地方,但我们考虑到Intel和Netscape两大公司对RedHat的大力支持,加上RedHat独有的RPM(RedHat Package Manager)软件包管理器,我们最终选择了RedHat Linux6.0(现在出到6.2版本)。

  系统分析和关键问题解决

  我们重点解决了以下几个问题:

  1.用户身份认证

  通信标准和质量信息网的标准资源只对网员开放,只有加入信息网的网员能够查询和下载标准信息,按服务项目的不同能够分为A、B、C、D、Z等几类网员。为此,我们必须对用户身份进行验证,并且分成不同的级别。经过分析研究,发现有三种方法能够解决这个问题:一种是通过程式来控制,也就是在用户访问受限资源以前,程式让用户输入用户名/口令来验证身份。这样做存在一个问题是用户只需记下受限资源的链接,下一次就能够避开身份验证直接访问受限资源。另一种是用Apache自带的mod—auth模块来实现身份验证,但实现起来手工成份太大,不方便。更有一种是和MySQL相结合的mod—auth—mysql模块,他能够和MySQL数据库结合由系统来实现身份认证。我们选择了第三种实现方法。

  2.Linux和Win 98共享资源

  考虑到在将来研发过程中要对程式做大量修改、调试,就要涉及到现有的Win 95/98操作系统和Linux交互的问题,虽然能够用FTP把程式传上去,但这样做是很繁琐的:程式员每次要把程式传到Linux上调试,修改一个小错误就可能要传好几次,很不方便。后来我们了解到Linux带有一套Samba程式,能够使Linux的共享目录让Win 95/98在“网上邻居”中访问他,这样我们只要把Linux的共享资源在Windows中映射成一个盘符就能够方便地存取了。

  3.数据保护

  考虑到在系统调试的过程中可能会需要重新安装,所以我们在进行系统分区时单独分出两个硬盘分区,用于存放网站的数据和数据库数据,这样做的好处是当系统重新安装时不会影响有用的数据,只要将相应数据所在分区映射成相应的目录即可。这样,重新安装Linux后,也不用把这些数据拷来拷去。但是必要的备份工作是必不可少的。假如系统中有双硬盘或多硬盘,能够将数据和系统分开存放。

  硬件选择

  由于Linux对系统资源的需要并不高,而且现在各品牌的服务器配置都很高,所以一般来说,任何一个品牌的服务器都可满足用户的需要。为了使系统在大量用户访问时不会太慢,笔者建议采用主频400MHz、内存128MB以上的服务器,我们的系统最终采用了HP LH3服务器,PⅢ500,256MB内存,27GB硬盘,其中有9GB热插拔硬盘。之所以采用这台服务器,是因为笔者曾对三台不同配置的机器做了比较:

  1.75MHz,16MB内存的PC机。他安装运行Linux所需的时间明显很长。这台机器不支持光驱启动,在安装时不能发挥RedHat光驱启动、自动安装的优势,而且在编译MySQL时用了两个多小时,令人心焦。

  2.HP E50服务器,400MHz,128MB内存。他安装运行Linux的速度已相当快,从开始安装系统到完成MySQL等软件的安装只需两个小时左右,但是安装MySQL还是占用了近二十分钟。系统在运行过程中的速度令人满意,即使有多个用户同时访问网站或对数据库进行大数据量查询,也不会有太慢的感觉。

  3.HP LH3服务器,500MHz,256MB内存。他编译MySQL只需两三分钟,即使有几百兆数据在进行传输,也不会影响主页的浏览和数据库的查询。

  软件选择和安装

  虽然RedHat 6.0已带有Apache、PHP等软件,但由于他不带有MySQL数据库,而Apache、PHP、MySQL 、mod—auth—mysql的编译过程之间还存在一定的联系,因此要对上述软件的源代码进行单独编译。上述软件能够从下列站点获得: 

  Apache—1.3.6.tar.gz,从http://www.apache.org 获得;

  PHP-3.0.12.tar.gz,从http://www.php.net 获得,而且这里是PHP的“老家”;

  MySQL-3.22.27.tar.gz,从http://www.mysql.com 获得;

  mod—auth—mysql-2.20.tar.gz,从http://bourbon.netvision.net.il/mysql/mod—auth—mysql/ 获得。

  注意:以上均为源代码而非RPM包。

  选择好了软件,就要着手安装Linux系统连同相应的软件,由于讲述Linux安装和调测的资料已很多,这里就不再周详讨论,但以下几点需要注意:

  1.由于Apache要用到PHP模块和mod—auth—mysql模块,所以在编译Apache之前要先编译这两个模块,并激活该模块,在编译Apache时加载这两个模块。

  2.在安装完MySQL后要为MySQL增加一个系统用户,让MySQL以该用户的身份运行,因为在缺省状态下MySQL是以Root身份运行,这样会使系统变得不安全。但要注意更改var目录的任何者为该用户,并有744(rwxr--r--)的权限。

  3.为使系统更安全,对于一些有安全漏洞的端口应该关闭,比如FTP的21端口,Telnet的23端口等等。即使不关闭也应对用户权限作严格管理。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 大型动态网站智能生成解决方案--从“网站自助”到“产业自助”

下一篇: 供给链管理(SCM)的网络解决方案