• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
浅析Apache中SSI和CGI的设定方法
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
浅析Apache中SSI和CGI的设定方法
软件发布 浅析Apache中SSI和CGI的设定方法
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 网络技术 >> WEB服务器架设与维护 >> 浅析Apache中SSI和CGI的设定方法

浅析Apache中SSI和CGI的设定方法

添加时间: 2007-7-31 5:22:40  作者: Web服务器教程  阅读次数:34   来源: http://www.d9soft.com

       

 由于Apache具有相当高的可移植性,它支持超过30种操作系统,包括Unix、Windows 及Darwin等系统,所以目前在网络上已注册的网域里大部份是使用Apache网页服务器。目前ApacheSoftware Foundation 正致力于发展现在已进入alpha测试阶段的Apache2.0。在这里,我和大家探讨如何修改服务器选项让服务器能提供简单的动态网页内容,也就是支持CGI程序及 Server-Side Include(SSI)程序。

  1、准备工作

  首先,我假设你已经安装好Apache而且你的Apache能提供静态网页供浏览。Apache的安装会自动附上静态的HTML测试页,也就是说如果能看到那测试页,就代表你的Apache能正常运作了。基本安装下的Apache仅能提供静态的HTML网页。然而,你可以通过使用模块(modules)来提升它的功能。在原始的设定下,Apache的编译会包含mod_include 及 moc_cgi 这两个模块。你可以在bin子目录下执行./httpd -l来查看你的Apache是否装有这两个模块。执行的输出会是一长串Apache现在安装的所有模块。如果mod_include及moc_cgi 这两个模块不在清单里,你必须重新编译服务器。重新编译时,确定依照如何含括 mod_include、moc_cgi 模块的说明。此外你还必需有提供实时网页的Server-Side Includes(相关资料网址:http://www.oreilly.com/catalog/apache/excerpt/ch10.html)。有了 server-side includes (SSI)支持,你就能制作出实时的动态网页。接下来,我先从服务器的SSI支持设定开始,然后进入CGI的编写。

2、Apache的设定

  首先你必须先找到Apache这个设定文件。Apache的原始安装目录在 Unix下是/usr/local/apache,在Windows下则是 c:\Program Files\Apache。接着在conf子目录下你会找到httpd.conf 文件。这就是Apache的设定档。这个设定文件是个纯文字文件,所以你可以使用一般的文字编辑器,如vi或Notepad 等,来编辑。首先要注意的是在这个设定档里有些行的起始文字是#符号,这表示这行的文字全为批注。适当地在你的设定档内做批注是个好习惯,因为那帮你记得你曾做了哪些设定以及为什么。

  3、执行 SSI 程序

  开启设定文件并寻找以下这些文字:

  #
  # To use server-parsedHTMLfiles
  #
  #AddType text/html .shtml
  #AddHandler server-parsed .shtml

  删除AddType及AddHandler这两行指令前的#符号。AddType指令会要求服务器在传回任何附属档名为.shtml的网页时,以 text或HTML做为传回文件的内容格式。AddHandler 则是用来指示服务器将文件内容送交给mod_include 处理。之后,mod_include 就会判断该如何响应这样的文件。接下来,寻找以下文字:

  在这行文字及对应的 间会有一行选项行(options line)。原始的设定是:

  Options Indexes FollowSymLinks MultiViews

  在这行尾端加上Includes ,结果看起来会是这样:

  Options Indexes FollowSymLinks MultiViews Includes

  这是要求Apache在htdocs子目录里执行 server-side includes 程序。为了让这些修改生效,我们必须重新启动服务器。在 Unix 下重新激活,执行"kill -HUP `cat /usr/local/apache/logs/httpd.pid`"。在 Windows 下,执行"Apache-k restart"。现在我们来试试刚才的设定结果。在/usr/local/apache/htdocs 目录里新增一个文件 test.shtml。这个文件必须要包含以下程序代码:

  The file hello.txt is long and it was last modified on


 这段 SSI 程序会去读取一个称为 hello.txt 文件,并将该文件的大小以及最近一次的修改日期输出到网页上。显然的,我们还必须在 htdocs 目录下新增这个hello.txt 文件。在我的hello.txt 文件里只有一行文字:HOW ARE YOU!。完成新增这些文件后,打开你惯用的浏览器并开启http://localhost/test.shtml网页。如果你服务器的安装并不是通过root用户,你可能必须改为开启http://localhost:8080/test.shtml。之后将得到如下结果:

  HOW ARE YOU! The file hello.txt is 1k bytes long and it was last modified on Wednesday, 02-Aug-2000 20:18:28 PDT

  另外一种可以激活支持SSI程序的方法称为XbitHack设定(相关资料网址:http://www.apache.org/docs/mod/mod_include.html#xbithack )。这个方法的由来是当你将文本文件的使用者可执行位(user-executable bit)设为可执行状态后,Apache会将那些文件视为 SSI 程序文件。

  要激活这样的功能必须将以下指令(directive)放在所有目录的 .htaccess 文件里:XbitHack status on (or full) status 的值可以设为on 、off 或是full。on 的设定会强制服务器将所有使用者可执行的文件视为SSI项。Off则使服务器完全忽略使用者可执行的设定状态。若是设定为Full,服务器会视所有使用者可执行档为SSI项,同时也会检查组可执行(group-executable bit)。如果组可执行项设定为可执行时,传回header的last modified time的值就会被设定为该文件最近一次被修改的时间。这样的设定可以让客户端的浏览器及代理服务器(proxy)进行缓存(caching)。不过在使用这样的功能时必须要小心。例如说,如果你的网页有提供轮替式广告看板你就不会想要设定群组可执行位为开启的状态,因为那么做会让第一个下载的广告被快取起来,导致使用者再也看不到其它页的广告。

  4、执行CGI程序

  在Apache原始安装里,cgi-bin子目录下附有两组CGI程序,test-cgi 以及printenv,只不过这两组程序有潜在的安全漏洞。但是由于我们只是要做设定测试,并且我们不会将这样的原始安装设定直接放在主运行服务器(live server),所以我们还是会激活其中一组CGI程序,看看Apache当初是如何被设定来执行这组程序。最后我们会自己撰写一支简单的CGI程序。

  首先,要确定这组程序是能执行的。进入cgi-bin子目录,确定程序文件被设定为使用者(服务器执行时使用者)可执行以及使用组(服务器执行时使用组)可执行。对 Windows系统来说,这一步应该是非必要的。接着,对服务器要求这样的内容:


  注意:只有在通过非root使用者进行服务器安装的情况下才需要指定8080端口(port)。这支Apache内建的test-cgi程序会列出CGI程序会存取的变量值。激活CGI支持是设定在httpd.conf设定文件内的ScriptAlias 指令区段。这个指令区段的原始设定值是:


  ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"

  这行指令是告诉Apache如果要求的网页路径是以cgi-bin为起始,这些文件可在/usr/local/apache/cgi-bin/ 目录下找得到。这行指令同时也告诉Apache要在这个目录下执行文件。在下面我准备了一个会输出"How are you!"的简单CGI程序。我将它命名为 how.sh。

  #!/bin/sh
  echo "Content-type: text/html"
  echo
  echo "How are you!"

  修改这个文件的权限使其成为可执行文件并且向你的服务器提出以下的要求:

  http://localhost:8080/cgi-bin/how.sh

  虽然这组CGI是采用shell script来编写,其实它可以用任何适用于该系统的语言来撰写。至于关于CGI程序的撰写如果有机会我会和大家作更深入的探讨。

  结论:

  Apache支持的所有SSI 指令可以在Apachedocumentation 里找到,Apache所有的功能都可以通过设定文件 (config file)进行调试。在这里我所介绍的仅只是设定文件相关知识的皮毛。设定文件的原始设定有着非常详尽的说明文件,而且每一个系统版本都附有核心模块及标准模块的说明文件,如果你花些时间在这些文件里摸索,你会找到任何你想要的功能。

 

上下文章:

 

上一篇文章: 深入剖析IIS 6.0(下) 下一篇文章: 给IIS Web服务器装上一把锁

相关文章:

  • vista隐蔽的注册表垃圾清理方法
  • 在局域网中配置Vlan的基本方法
  • 常见问题诊断方法---(常见错误篇)
  • 常见问题诊断方法---(SQL*NET篇)
  • Oracle联机日志文件丢失处理方法

相关软件:

  • 学习方法宝典 2006 新春贺年版
  • APACHE-II评分系统 V1.0
  • Toolkit for Apache Pro V2.5.3
  • Toolkit for Apache Free V2.5.3
  • ApacheChroot V1.3.24-001 For Redhat7.2
  • ApacheTray V1.7

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

网络技术分类导航

  • 局域网专栏
  • 病毒快报
  • 网络安全
  • 组网教程
  • WEB服务器架设与维护
  • FTP服务器架设与维护
  • DNS服务器架设与维护
  • 邮件服务器架设与维护

本类经典文章推荐

  • Web站点崩溃的原因总结
  • 保护(IIS)web服务器的15个技巧
  • 关于Win2003系统中证书服务
  • 虚拟服务器实现方法
  • Web 服务器日志工具点评
  • IIS5中的两种服务器端网页重定向方...
  • Insert和Rs.Addnew的比较
  • 什么是web 2.0 (3)
  • 什么是web 2.0 (1)
  • 什么是web 2.0 (4)

WEB服务器架设与维护阅读排行

  • 保护(IIS)web服务器的15个技巧
  • Web站点崩溃的原因总结
  • 虚拟服务器实现方法
  • 在局域网中实现Web共享
  • 关于Win2003系统中证书服务
  • 什么是web 2.0 (1)
  • IIS5中的两种服务器端网页重定向方...
  • 什么是web 2.0 (3)
  • FreeBSD下构建安全的Web服务器(1)
  • 中小企业服务器配置-Web服务器(2)

网络技术阅读总排行

  • 网络解惑:找回消失的本地连接
  • 教你如何通过路由器来控制上网
  • 网卡故障排除技巧详解
  • FlashFTP教程
  • 网上邻居十大经典应用技巧
  • 如何有效建立Win2000 VPN服务器
  • 经济实惠:组建P2P电影服务器
  • 查找局域网络中的故障技巧
  • 南阳信息港被黑案告破!
  • 小区宽带主要常见故障解决办法

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有