当前位置学海荡舟 -> 电脑乐园 -> XteamLinux

XteamLinux    

XteamLinux
什么是XteamLinux
安装XteamLinux
XteamLinux系统配置
KDE介绍
中文环境
KDE下的应用程序
Linux基础命令
XteamLinux系统管理
Internet下的使用
域名管理和服务系统
电子邮件系统的设置
WWW服务器的配置
FrontPage的问题
开发动态Web站点
附录

  本教程由冲浪平台(中国)软件技术有限公司提供。



 

9.5 开发动态Web站点:PHP3和mod_perl

9.5 开发动态Web站点:PHP3和mod_perl

    XteamLinux中考虑到为了方便用户快速的开发高效率的动态Web站点,集成了PHP3和mod_perl等多种动态Web站点开发方案,用户可以根据自己的需要,选择最适合自己、用起来最顺手的方案。下面我们来简略的介绍一下所有的这些动态Web站点开发方案中最流行的两种:PHP3和mod_perl。我们这里着重要介绍的是它们和XteamLinux所捆绑的Apache Web服务器所结合起来以后的开发方案。

    在介绍PHP3和mod_perl之前,我们先来看一下关于开发动态Web站点的最基本的技术:CGI的一些背景知识。

    CGI即所谓的通用网关接口(Common Gateway Interface)。这是一种独立于平台的,通过Web服务器来运行其它外部程序的接口标准。CGI提供了一种独立于平台、独立于各种Web服务器、独立于各种编程语言的,简明的、标准的动态Web页面开发办法。

    CGI的缺点是显而易见的。首先是性能上不去,为了创建进程以及连接状态等等,要消耗掉大量的资源。其次是CGI接口根本谈不上“面向对象”等等高级编程技术,它是一种非常底层的API(Application Programming Interface,应用程序编程接口)。此外,如何在多次请求之间维护状态信息、Transaction、开发更强的动态交互的Web站点等等,用CGI实现起来都是非常的困难,甚至是根本不可能实现的。

    至于诸如Netscape的NSAPI、微软的ISAPI等等服务器API接口技术,确实解决了许多标准的CGI技术难以解决的问题。但是这些服务器API接口技术带来的严重问题是,它们完全依赖于特定的Web服务器、依赖于特定的编程语言;并且,利用这些API开发程序必须得特别小心,一个程序中的小错误就极有可能导致整个系统死机。

    我们下面要介绍到的PHP3和mod_perl这两个方案,以及在后面一节中提到的基于Python的Zope技术,将在不同程度上解决以往在开发动态Web站点时所遇到的各种不同的问题。

    我们先来粗略的看一下PHP3。PHP3是解释于服务器端、内嵌于HTML页面文件中的脚本语言,或者可以简单粗略的理解为SSI(Server Side Include)的高级形式。对于熟悉微软的Active Server Pages(ASP)的朋友们来说,也许PHP3会有一些似曾相识的感觉。它和Apache Web服务器结合起来,可以提供比普通的CGI程序更高的执行效率。并且,正如ASP相比较于ISAPI一样,PHP3的开发过程相比较于其它的动态Web开发方案也更为简明、清晰,开发效率也更高。

    也许,PHP3的最强大的地方就在于它和各种数据库技术的紧密集成。我们都知道,一个没有数据库支持的站点是不能够被称为“动态”的。XteamLinux当前版本所捆绑的PHP3的Apache模块mod_php3版本3.0.5:

    [root@xteam /root]# rpm -q mod_php3

    mod_php3-3.0.5-2

    [root@xteam /root]#

    这一版本的mod_php3已能支持如下所列的数据库:

    PostgreSQL

    Oracle

    Adabas D

    Sybase

    FilePro

    mSQL 1.x以及2.x

    Velocis

    MySQL

    Solid

    dBase

    Generic ODBC

    Unix dbm

    所有支持ODBC接口的数据库系统

    这几乎涵盖了在Web上使用的95%以上的数据库了。不过,数据库支持无论怎样都是一个比较大的话题,以后我们可以专门集中注意力于PHP3的数据库支持;暂时目前我们还是先回过头来看一个取自于PHP3手册中的简单的例子吧。这个例子是一小段嵌于HTML页面文件中的PHP3代码,验证用户的身份信息:

    <?php

    if(!isset($PHP_AUTH_USER)) {

    Header("WWW-authenticate: basic realm="My Realm"");

    Header("HTTP/1.0 401 Unauthorized");

    echo "对不起,你的身份验证失败。";

    exit;

    } else {

    echo "欢迎你,$PHP_AUTH_USER。<P>";

    echo "你输入的密码是:$PHP_AUTH_PW。<P>";

    }

    ?>

     

    PHP3程序脚本被包括在“<?php”和“?>”中间,当激活了PHP3支持的Apache Web服务器读到这样的标记时,就把这中间的PHP3代码解释执行,把结果连同HTML页面文件中的其它部分一起输出给客户端的Web浏览器。上面的Header()函数的输出被置于HTTP响应的头信息(Header)中间,而“echo”命令的输出在客户端Web浏览器看来,则相当于普普通通的HTML文件中的简简单单的一句话而已。

    由于PHP3解释器是以Apache Web服务器的模块的身份来运行的,这就免去了一般的(诸如用标准Perl脚本语言所写的)CGI程序运行时,要启动一个解释器所带来的额外的系统开销;另外,PHP3又天生的具有脚本语言所特有的快速开发的优点,不需要用户去摆弄复杂、晦涩的C语言等等。而“嵌于大段HTML中的小段代码”,相比较于标准的CGI中的“嵌于一大段又一大段代码中的几行HTML”,对于Web写作来说,不啻是一个福音。利用PHP3,Web作者可以更加专注于Web本身了。

    除了PHP3,XteamLinux还提供给用户另外的一个选择,即mod_perl。从Web诞生一直到现在,强大的Perl始终是动态Web开发中最最重要的角色。但是,随着Web一天比一天的长大,用Perl写作的CGI脚本的执行效率越来越引起人们的垢病。mod_perl加上Apache基本上解决了在Web开发中一直困扰着Perl的各种问题,而完全保留了Perl所一贯的强大。

    篇幅所限,有好多话题只是简单的提了一下,而无法深入,如:DNS的性能调优,sendmail的详细设置,Apache的性能调优问题,虚拟主机的设置问题,用户访问控制的设置,Apache对多语言的支持,匿名FTP站点的架设,PHP3的数据库支持,mod_perl的介绍,等等。

                                 

下一节  

请您留言
谈谈您的看法