Linux Apache Web服务器基础知识介绍
 

  一、什么是WWW服务

  现在在Internet上最热门的服务之一就是环球信息网WWW(World Wide Web)服务,Web已经成为很多人在网上查找、浏览信息的主要手段.WWW是一种交互式图形界面的Internet服务,具有强大的信息连接功能.

  它使得成千上万的用户通过简单的图形界面就可以访问各个大学、组织、公司等的最新信息和各种服务.

  商业界很快看到了其价值,许多公司建立了主页,利用Web在网上发布消息,并反它作为各种服务的界面,如客户服务、特定产品和服务的详细说明、宣传广千以及是渐增长的产品销售和服务.商业用途促进了环球信息网络的迅速发展.

  如果你想通过主页向世界介绍自己或自己的公司,就必须将主页放在一个WEB服务器上,当然你可以使用一些免费的主页空间来发布.但是如果你有条件,你可以注册一个域名,申请一个IP地址,然后让你的ISP将这个IP地址解析到你的 LINUX主机上.然后,在LINUX主机上架设一个WEB服务器.你就可以将主页存放在这个自己的WEB服务器上,通过它把自己的主页向外发布.

  WWW是基于客户机/服务器方式的信息发现技术和超文本技术的综合.WWW服务器通过HTML超文本标记语言把信息组织成为图文并茂的超文本; WWW浏览器则为用户提供基于HTTP超文本传输协议的用户界面.用户使用WWW浏览器通过Internet访问远端WWW服务器上的HTML超文本,如下图所示:

  http协议

  WWW浏览器 <-> WWW服务器

  在WWW的客户机/服务器工作环境中,WWW浏览器起着控制作用,WWW浏览器的任务是使用一个URL(Internet地址)来获取一个WWW服务器上的WEB文档,解释这个HTML,并将文档内容以用户环境所许可的效果最大限度地显示出来.整个流程如下:

  WWW浏览器根据用户输入的URL连到相应的远端WWW服务器上;

  取得指定的WEB文档;

  断开与远端WWW服务器的连接.

  也就是说,平时我们在浏览某个网站的时候是每取一个网页建立一次连接,读完后马上断开;当需要另一个网页时重新周而复始.

  二、WWW服务器软件的比较和选择

  目前,在世界各地有许多公司和学术团体,根据不同的计算机系统,开发出不同的WWW服务器,如Apache、CERN httpd、Microsoft Internet Information System、NCSA httpd、Plexus httpd、WebSite等.在UNIX/LINUX系统中常用的有:CERN、NCSA、Apache三种

  CERN httpd

  这是最早期的WWW服务器软件,用C语言编写,现在功能有限,用户在缩减中.有兴趣的话可以在:ftp://ftp.w3.org/pub/WWW/bin中找到它.

  NCSA httpd

  这是在WWW服务器发展初期,美国国家超级计算机应用中心(NCSA)

  在1995年创建的当时一流的WWW服务器.它也是用C语言编写的,程序小、速度快.但是现在NCSA WWW服务器的主要开发人员已经离开了NCSA,这个服务器项目已经停顿了.相信大家不会选择一个没有发展的WWW服务器软件吧!

  当然,由于它的特殊历史地位,相信使用它的人现在还不少.如果你需要可以在ftp://ftp.ncsa.uiuc.edu获取它.

  Apache

  根据著名的WWW服务器调查公司所作的调查,世界上百分之五十以上的WWW服务器都在使用Apache,是世界排名第一的WEB服务器.

  Apache的诞生极富有戏剧性.当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的.就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache.

  Apache的主要特征是:

  . 可以运行上所有计算机平台;

  . 支持最新的HTTP 1.1协议;

  . 简单而强有力的基于文件的配置;

  . 支持通用网关接口CGI;

  . 支持虚拟主机;

  . 支持HTTP认证;

  . 集成Perl脚本编程语言;

  . 集成的;

  . 具有可定制的服务器日志;

  . 支持服务器端包含命令(SSI)

  . 支持安全Socket层(SSL)

  . 用户会话过程的跟踪能力;

  . 支持FastCGI;

  . 支持Java Servlets.

  我们还有什么理由放弃这个功能强大而且前途光明的WWW服务器软件呢?

  三、安装Apache

  下面我们就开始漫漫征服Apache之旅,通过循序渐进的需求实例,一步步地学习使用Apache,从入门到精通.

  3.1 系统需求

  运行Apache不需要太多的计算资源.它在有6-10MB硬盘空间和8MB RAM的Linux系统上运行得很好.然而,只运行Apache可能不是你想做的事情.更可能的是,你想运行Apache来提供WWW服务、启动CGI进程以及充分利用所有WWW能够提供的令人惊奇的功能.在这种情况下,你需要提供反映负载要求的额外的磁盘空间和内存空间.也就是说,如果仅仅是启动WWW服务并不需要太多的系统资源,但是想要能为大量的客户提供服务就需要更多的系统资源.

  3.2 获取软件

  你可以在http://www.apache.org中获得Apache的最新版.而几乎所有的Linux发行版中均包含有Apache软件包,你也可以直接使用它.

  需要注意的是,Apache软件包有两种:一种是源代码,下载后需要自己重新编译;另一种是可执行文件,下载后只需解压就可以使用.

  3.3 安装软件

  你可以通过以下三种方法安装Apache服务器.

  1.如果你安装的Linux版本中带用Apache的话,就在选择所要安装的服务器的时候,将httpd这个服务选上,Linux安装程序将自动完成Apache的安装工作,并做好基本的配置.

  2.使用可执行文件软件包,这比较适合那些对编译工作不是太熟悉的初级用户,因为它相对比较简单.

  下载软件包apache_1.2.4.e.tar.gz

  tar xvzf apache_1.2.4.e.tar.gz

  这就完成了安装工作,简单吧!

  如果你使用的是RedHat Linux的话,你也可以下载apache_1.2.4.rpm软件安装包,然后使用rpm –ivh apache_1.2.4.rpm命令安装.

  3.如果你想把Apache服务器充分利用起来的话,就一定要自己编译Apache定制其功能.

  下载包含Apache源代码的软件包apache_1.2.4.tar.gz;

  然后用tar命令将它解开;

  将当前目录改变为Apache源代码发行版的src目录;

  将配置样本文件(Configuration.tmpl)复制为Configuration文件;

  编辑Configuration文件中的配置选项:

  Makefile配置选项:一些编译选项:

  . "CC="一行指定用什么编译软件编译,一般为"CC=gcc";

 . 如果需要将额外的标志(参数)指定给C编译软件,可以使用:

  EXTRA_CFLAGS=

  EXTRA_LFLAGS=

  . 如果系统需要特殊的库和包含文件,可以在这里指定它们:

  EXTRA_LIBS=

  EXTRA_INCLUDES=

 . 如果你要改变代码优化设置的话,你须将下面一句去掉注释,然后改成你所需要的值:

  #OPTIM=-O2

  Rule配置选项:用来决定需要什么功能,一般情况下无需改变.

  模块配置:模块是Apache的组成部分,它为Apache内核增加新功能.通过使用模块配置,可以自定义在Apache服务器中需要什么功能,这个部分也是Apache灵活性的表现.模块配置行如下所示: AddModule modules/standard/mod_env.o

  如果你需要Apache服务器具备什么功能,就将那个模块用AddModule语句加到配置文件Configuration中去.

  在src目录下执行:". /configure";

  编译Apache:执行命令"make";

  根据机器性能的不同,经历一段5-30分钟的编译,就大功告成了.

  将编译好的可执行文件httpd复制到/etc/httpd/bin目录下;

  将Apache发行版的配置文件:access.conf、httpd.conf、mime.types、srm.conf文件复制到/etc/httpd/conf目录下.到此为止,安装完成. 3.4 一些说明

  在Red Hat Linux 6.0中,Apache将自己的所有配置文件和日志文件放在了"/etc/httpd"目录下,其中"/etc/httpd/conf"下为配置文件,"/etc/httpd/log"下为日志文件.

  同时,它将建立"/home/httpd"目录,并在其下建立三个子目录:"html/":在这个目录下存放HTML(主页)文件;"cgi-bin/":在这个目录下可以存放一些CGI程序;"icons/":在这个目录下是服务器自带的一些图标.




也许下面的会对您有所帮助:

Linux流量监控工具-iftop?
http://www.34514.cn/style/info/shownews.asp?id=601

Linux VPS/服务器上轻松导入/导出MySQL数据库?
http://www.34514.cn/style/info/shownews.asp?id=411

Linux 服务器的远程控制技术及实战?
http://www.34514.cn/style/info/shownews.asp?id=40