让asp跑在linux环境下的方案[精讲]

由于ASP编程比较简单,所以在企业中有很多的简单应用都是基于在Windows 2000 Server+ASP+MSSQL上的。而这也是企业想把应用迁移到Linux环境的其中一大障碍。若要达到迁移的目的,通常有两种方式:

引用
1、把ASP改PHP,MSSQL换Mysql,效果好,性能稳定,可靠性强,但耗费时间比较多,费用比较高,用户不容易接受;
2、让ASP通过中间环境直接运行在Linux平台上,连接到独立的MSSQL上,这对用户的影响不大,容易接受,工作量相对较低,但可能因中间环境对ASP的支持不够完善,所以部分代码可能不能识别,须调整,需考虑成功率。


下面要实现的主要是指第二种方式。
通过努力,已经实现了红旗Linux+Apaceh+iASP+ASP连接到独立的MSSQL服务器上。性能和效果都不错,可供实际应用参考。
一、原理
要在Linux环境中运行ASP,需要依赖第三方的中间环境。通常有几种模式:

引用
1、Apache_ASP功能模块,兼容性不好,而且不能连接数据库,意义不大;
2、Instant ASP java模块(简称iASP),可支持Apache、Zenus等Web服务,可连接数据库,效果不错;
3、Sun one ASP模块,效果最好,但收费很贵,测试版只有30天试用期,而且速度慢。


而我选择的环境是:

引用
操作系统:红旗DC Server 5.0 for x86 SP3
Web服务:Apache 2.0
中间环境:iASP 2.1.1
java环境:Sun jdk
数据库环境:Windows 2000 Server+MSSQL 2000


※网上有不少基于iASP的资料,可惜资料都不太完整。而且该公司似乎已经关闭了(原来还有中文版本的),技术文档已经不容易找到了。下述的配置,我是依赖一些遗留文档“猜”出来的,若有问题,请大家指正。

二、配置java环境
考虑到iASP的搭建环境,从兼容性出发,选择Sun 1.4.2版本的jdk环境,可从下面获得:
Sun提供的链接
本地下载:


1、安装
解压:

引用
# sh j2re-1_4_2_15-linux-i586-rpm.bin
Unpacking...
Checksumming...
0
0
Extracting...
UnZipSFX 5.40 of 28 November 1998, by Info-ZIP (Zip-Bugs@lists.wku.edu).
 inflating: j2re-1_4_2_15-linux-i586.rpm


安装:

# rpm -ivh j2re-1_4_2_15-linux-i586.rpm


2、调整环境变量
红旗默认带有1.5.0版本的java环境:

引用
# whereis java
java: /usr/share/java
# java -version
java version "1.5.0_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode)


让我们改过来:

# ln -s /usr/java/j2re1.4.2_15 /usr/java/j2re1.4.2


并修改/etc/profile.d/sun_java_sdk.sh,为:

引用
#jdkroot=/usr/lib/jdk
jdkroot=/usr/java/j2re1.4.2


保存后,重新登陆一次,再看看:

引用
# su - root
# java -version
java version "1.4.2_15"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_15-b02)
Java HotSpot(TM) Client VM (build 1.4.2_15-b02, mixed mode)

三、安装iASP 2.1.1
正如前面提到的,负责iASP开发公司的网站已经上不去了。下面提供下载地址:

1、解压
# mkdir iASP_dir
# tar xzvf iASP2.1.01.tar.gz -C iASP_dir/
iasp21.tar
install.sh
README

2、安装
# cd iASP_dir/
# ./install.sh

输入上述java环境的目录:
引用
Please enter the full path to your JDK's bin directory.
e.g. /usr/jdk1.1.6/bin, Q/q(quit), S/s(skip):
/usr/java/j2re1.4.2/bin

输入iasp的安装路径:
引用
Enter the absolute directory under which Instant ASP should be installed.
(./iasp21 will be created underneath.)
> /usr/iasp
Directory /usr/iasp does not exist,  create it (Y/N/Q)?
> y

※目录的最后都不要加“/”符号
对Web服务器进行配置,这里用得是Apache 2.0版本:
引用
Would you like to configure your web server for Instant ASP now [Y/N]?y
Do you want to continue (Y/N)? y

Please choose a servlet interface
[1]  Instant ASP native servlet interface
[2]  Apache JServ

Enter a number [1/2]: 1

***** Please select a web server  *****

[1]  Netscape
[2]  Apache
[3]  Xitami
[0]  Quit

Enter a number [0-4]: 2

*****    Please choice Apache version    *****

[1]  Apache 1.3.0
[2]  Apache 1.3.1
[3]  Apache 1.3.2
[4]  Apache 1.3.3
[5]  Apache 1.3.4
[6]  Apache 1.3.6
[7]  Apache 1.3.9
[8]  Apache 1.3.11
[9]  Apache 1.3.12
[10] Apache 1.3.14
[11] Apache 1.3.2X
[12] Apache 2.X
[0]  Quit

Note:  If you are using Apache Web Server higher version or have additional
      modules, such as Front Page Server Extensions, Raven SSL, or you are
      using Apache Strong Hold Server. Please configure iASP according
      to <iASP_Home>/bin/apache/source/readme.txt

Enter a number [0-10]: 12

Please enter the path to the Apache /conf directory > /etc/httpd/conf

setting for "Proxy host IP address" <127.0.0.1>
setting for "Proxy port" <9098>
setting for "Server manager port" <9095>

"httpd.conf"configuration completed.

Would you like to configure another web server (Y/N)? n

Configuration successful.
You can access the Instant ASP documentation and samples
from the virtual directory /iasp/

结果:
引用
Server Information:

iASP Path:          /usr/iasp/iasp21
iASP Version:       2.1.01
OS Name:            Linux  2.6.9-42.7AXsmp
Host IP:            192.168.228.250
Java Path:          /usr/java/j2re1.4.2_15
Java Version:       1.4.2_15
Java Vendor:        Sun Microsystems Inc.
iASP License:       No License

3、配置
如果这个使用启动Apache,会报错:
引用
# service httpd start
启动 httpd:httpd: module "mod_iasp.c" is not compatible with this version of Apache (found 20020329, need 20020903).
Please contact the vendor for the correct version.
                                                          [失败]

这是由于iasp自带的模块是基于20020329的Apache版本编译的。所以加载失败。我们需要手动的为当前版本配置一个新模块:
# cd /usr/iasp/iasp21/bin/apache/source/2.0/
# apxs -i -c *.c

新生成的模块放在:
引用
/usr/lib/httpd/modules/mod_iasp.so

修改/etc/httpd/conf/httpd.conf文件为:
引用
#LoadModule iasp_module "/usr/iasp/iasp21/bin/apache/linux/2.0/mod_iasp.so"
LoadModule iasp_module "/usr/lib/httpd/modules/mod_iasp.so"

启动Apache即可:
# service httpd start
引用
启动 httpd:                                    [  确定  ]

4、启动
启动iasp代理模块:
引用
# /usr/iasp/iasp21/start-server.sh &
logging to stdout
iASP/2.1.01 started
[1] 13846

监听端口:
引用
# netstat -ln&#124;grep 9098
tcp        0      0 :::9098                     :::*                        LISTEN

停止:
引用
# /usr/iasp/iasp21/stop-server.sh
iASP server stopped

四、测试ASP在Linux上的运行
1、创建asp源代码
在/var/www/html/目录下创建一个test.asp文件:
引用
<html>

<head>
<title>Test iASP</title>
</head>

<body>
<%
Response.Write "<BR><h1>Congradulations!<BR>Instant ASP has worked for you!</h1>"
%>
</body>
</html>

接下来,您可以修改httpd.conf中的配置,增加虚拟主机、虚拟目录、默认字符集、默认index.asp文件等Apache功能,以实现更多元化的工作。甚至在一台服务器上同时运行php和asp模块也是没有问题的。
除了简单的ASP代码外,接下来要做的,就是连接数据库的事情。

 

 

 

 

 

 

自从MS推出ASP技术后,由于ASP在创建动态交互式站点上的强大功能及其代码编写的简便性,使ASP在很多
Internet/Intranet/Extranet网站上得到了极其广泛的应用,尤其是涉及到数据库操作的网站应用系统更是倾向于采用ASP
技术。但由于众所周知的原因,ASP只能工作于MS自己的操作系统平台和服务器软件之下,即只能在WindowsNT+IIS系列
或Windows9X+PWS系列中使用,因而就决定了ASP应用的局限性。据有关资料显示,采用Windows操作系统平台和服务器软件
的网站在15%左右,也就是说有将近85%的网站将不能采用ASP技术。实际上,很多网站采用的是Unix、Linux、Soris
和Netware等操作系统及相应的服务器,这说明ASP技术在应用上确实有很大的限制。

  最近,一家名为“Halcycon”的软件公司,不仅看到了ASP应用系统的优势和局限性,而且提出了“ASP Anytime,
Anywhere”的口号,并开发了一个称为iASP(Instant ASP)的ASP脚本解释引擎软件,使ASP不仅可以在采用Windows操作
系统平台和服务器软件的网站上使用,还可以在采用其它操作系统如Unix、Linux、Soris、Netware操作系统及相应服务器
的网站上使用。iASP全面继承了ASP的优势,并与ASP完全兼容,因而ASP应用系统几乎可以直接移植到非Windows操作系统
平台下的iASP环境中运行,使得ASP应用系统真正成为了一种跨平台的Internet、Intranet或Extranet应用系统。

  iASP与ASP相比,不仅在支持操作系统平台上具有优势,在使用第三方组件构建ASP应用系统上同样具有明显的优势。
iASP不仅支持流行的ActiveX组件,同样支持流行的Enterprise Java Beans组件和CORBA兼容组件,从而使用ASP应用系统
功能更为强大,应用更为广泛。除了MS Visual系列开发工具和Borland系列开发工具外,还可以用Java系列开发工具,让
组件开发人员有更多的选择从而可以更为得心应手地开发有关组件。

  iASP有两种版本,一种适用于Windows操作系统平台和服务器软件,另一种适用于Unix、Linux、Soris、Netware操作
系统及相应服务器软件。iASP目前的版本为1.0,其开发版本可以在“Halcycon”的软件公司网站上免费下载,其功能与正
式版本相比基本相同,区别在于开发版本只支持两个并发连接,因而只能用于ASP学习和开发或用在比较小的Intranet局域
网系统中,想在网络特别Unix、Linux局域网络中使用ASP的网络开发人员不妨去下载一个试用一下,文件大小有6M多。

  下面是笔者在搭建iASP开发环境时安装与配置iASP软件的一些经验,希望给初用者做个参考,从而少走弯路,多做些
有意义的工作。

一、iASP软件环境要求

iASP软件是用JAVA程序语言编制而成的,需要JDK1.1.X或以上版本的支持,因而需要服务器系统上预先安装JDK1.1.X或以
上版本。Linux平台下的JDK1.1.X可以在http://xfer.nitric.com/pub/java-linux/下载,基于Windows9X/NT平台的
JDK1.1.X的下载地址为ftp://202.103.111.173/Download/DEVELOP/JAVA/jdk1_1_1-win32-x86.exe。

二、iASP安装程序支持的系统平台和服务器软件

iASP软件是用JAVA程序语言编制而成的,原则上可运行在所有JAVA平台上。
iASP可自动配置服务器软件,使之能使用iASP解释引擎解释ASP页面;iASP可以使用Halcycon软件公司开发的iASP Servlet
接口与服务器进行连接和通信,也可以使用其它Servlet接口与服务器进行连接和通信。下面是Halcycon软件公司的工程技
术人员已证实支持较好的系统平台和服务器软件的列表。

(一)Sun Solaris Sparc系统平台
1、Apache服务器软件
iASP可对Apache服务器软件的1.3.0、1.3.1、1.3.2、1.3.3、1.3.4、1.3.6六个版本进行自动配置使之使用iASP解释引擎
解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。
2、Netscape Fast Track(FT)和Enterprise Server(EP)服务器软件
iASP可对FT3.0.X、EP3.5.X、EP3.6.X进行自动配置使之使用iASP解释引擎解释ASP页面;并通过iASP中的Servlet接口与之
连接和通信。
3、Sun Web Server2.1服务器软件
iASP可对Sun Web Server2.1服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;
     并通过服务器软件的Servlet接口与之连接和通信。
4、Zeus服务器软件
iASP可对Zeus服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通过Zeus和
     Apache JServ Servlet接口与之连接和通信。

(二)Sun Solaris Intel系统平台
1、Apache服务器软件
iASP可对Apache服务器软件的1.3.0、1.3.1、1.3.2、1.3.3、1.3.4、1.3.6六个版本进行自
     动配置使之使用iASP解释引擎解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。
2、Sun Web Server2.1服务器软件
iASP可对Sun Web Server2.1服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;
     并通过服务器软件的Servlet接口与之连接和通信。
3、Zeus服务器软件
iASP可对Zeus服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通过Zeus和
     Apache JServ Servlet接口与之连接和通信。

(三)Novell Netware系统平台
Netscape Fast Track(FT)和Enterprise Server(EP)服务器软件
iASP可对FT3.0.X、EP3.5.X进行自动配置使之使用iASP解释引擎解释ASP页面;并通过Novell
    Servlet Gateway接口与之连接和通信。

(四)SCO Unixware系统平台
1、Apache服务器软件
iASP可对Apache服务器软件的1.3.0、1.3.1、1.3.2、1.3.3、1.3.4、1.3.6六个版本进行自
     动配置使之使用iASP解释引擎解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。
2、Netscape Fast Track(FT)和Enterprise Server(EP)服务器软件
iASP可对FT2.0.X进行自动配置使之使用iASP解释引擎解释ASP页面;并通过iASP中的Servlet
     接口与之连接和通信。

(五)Linux Intel系统平台
1、Apache服务器软件
iASP可对Apache服务器软件的1.3.0、1.3.1、1.3.2、1.3.3、1.3.4、1.3.6六个版本进行自
     动配置使之使用iASP解释引擎解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。
2、Zeus服务器软件
iASP可对Zeus服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通过Zeus和
     Apache JServ Servlet接口与之连接和通信。

(六)Windows9X/NT系统平台
1、Apache服务器软件
iASP可对Apache服务器软件的1.3.0、1.3.1、1.3.2、1.3.3、1.3.4、1.3.6六个版本进行自
     动配置使之使用iASP解释引擎解释ASP页面;并通过iASP中的Servlet接口与之连接和通信。
2、Netscape Fast Track(FT)和Enterprise Server(EP)服务器软件
iASP可对FT3.0.X、EP3.0.X、EP3.6.X进行自动配置使之使用iASP解释引擎解释ASP页面;并
     通过iASP中的Servlet接口与之连接和通信。
3、Internet Information Server服务器软件
iASP可对Internet Information Server服务器软件进行自动配置使之使用iASP解释引擎解释
     ASP页面;并通过iASP中的Servlet接口与之连接和通信。
4、Lotus Domino服务器软件
iASP可对Lotus Domino服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通过
     Lotus Domino服务器软件自有的Servlet接口与之连接和通信。
5、Java Web Server服务器软件
iASP可对Java Web Server服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通
     过Java Web Server服务器软件自有的Servlet接口与之连接和通信。

(七)HPUX系统平台
Zeus服务器软件
iASP可对Zeus服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通过Zeus和
     Apache JServ Servlet接口与之连接和通信。

(八)SGI系统平台
Zeus服务器软件
iASP可对Zeus服务器软件进行自动配置使之使用iASP解释引擎解释ASP页面;并通过Zeus和
     Apache JServ Servlet接口与之连接和通信。

三、用iASP构建ASP应用系统环境

假设系统中已经正常安装和配置了TCP/IP等网络协议。
下面以RedHat Linux 5.1和Apache 1.3.3服务器软件为例,讨论如何安装和配置iASP,以建立一个
ASP开发和应用环境。

(一)、安装Apache 1.3.3服务器软件
1、卸载Apache 1.2.6服务器软件
如果当前使用的是RedHat Linux 5.1自带的Apache服务器软件,则其版本号为1.2.6-4(用
命令httpd -v可以查看Apache服务器软件的版本号),不在iASP自动配置程序支持的服务器范
围之内,因而需要将其卸载,以便重新安装Apache 1.3.X服务器软件。
在“控制面板”的Package Management(包管理)中打开Network(网络)中的Daemons(
服务程序),选择“apache1.2.6-4”,单击Uninstall(卸载)可将其卸载。
2、安装Apache 1.3.3服务器软件
       如果手头没有Apache 1.3.X服务器软件,可以到http://apache.nextpath.com/dist/
apache_1.3.6.tar.gz下载一个。
笔者手头有一个Xteam Linux 1.0的光盘,其中有Apache 1.3.3服务器软件的发行版本,
位于光盘的/xteam/pack目录下,文件名称为apache-1.3.3-1.i386.rpm。用命令
rpm -i /mnt/cdrom/xteam/pack/apache-1.3.3-1.i386.rpm可完成安装。

3、启动Apache 1.3.3服务器软件
可以用命令httpd来启动Apache 1.3.3服务器软件。启动Apache 1.3.3服务器软件后可以
用Netscape Communicator浏览器以http://YourComputerName的方式如http://localhost来
访问Apache 1.3.3服务器软件提供的WWW服务。默认的页面为index.html,通常位于“/home/
httpd/html”目录中(该目录是Apache的WEB发布目录,相当于IIS或PWS系统中的
c:/inetpub/wwwroot),页面的主题为“It Worked”,表明Apache已能正常工作,可以进行
iASP的配置工作了。

(二)、安装JDK1.1.X
iASP的运行要依赖JDK1.1.X或以上版本,要求系统中必须安装JDK。
1、确定C运行库的类型
Liunx/Unix版本的JDK一般有libc5和glibc两个版本,以适应不同Liunx/Unix系统中的C运行
库版本。用命令“ls -l /lib/libc.so.*”可以列出C运行库文件,若“*”处的字符为“5”
则表示C运行库类型为libc5,为“6”则表示C运行库类型为glibc。笔者所用的RedHat Linux
5.1的C运行库类型为glibc。
2、安装JDK1.1.X
笔者在http://xfer.nitric.com/pub/java-linux/处下载JDK1.1.7的glibc版本,并将其改名
    jdk117.gz。将jdk117.gz复制到/usr/local目录下,进入/usr/local目录,用“tar -xvzf
    jdk117.gz”命令将文件解压即完成JDK1.1.7的安装,安装目录为/usr/local/jdk117_v1a。

(三)、安装iASP
笔者在http://www.halcyonsoft.com/asp/iasp_fcs.tar.gz处下载了Linux/Unix版本的iASP,并改
  名为iasp_lnx.gz,并复制到/usr/local。
用命令“tar -xvzf iasp_lnx.gz”将文件解压,可产生install.sh和iasp.tar两个文件。进入
  /usr/local目录,运行./install.sh,按照安装程序提示完成iASP的安装。
    在安装过程中,需要指定JDK的BIN目录(/usr/local/jdk117_v1a/bin)和iASP安装目录
(/usr/local)。在安装过程完成后,会选择是否开始对Web服务器进行配置,配置过程在下面讨论,选
  择“N”结束安装。此时iASP被安装在目录/usr/local/iasp下,有五个文件的作用值得注意。
connector.sh:启动iASP自动配置向导 start-server.sh:启动iASP代理服务器
stop-server.sh:关闭iASP代理服务器 start-admin.sh :启动iASP远程管理服务器
    stop-admin.sh :关闭iASP远程管理服务器

(四)、配置iASP
1、关闭Web服务器
      在进行iASP配置前,应首先关闭Web服务器软件。可以用任何方式关闭Apache 1.3.3服务器软件。
2、配置iASP
      iASP配置向导程序可为Apache服务器软件、Netscape Enterprise服务器软件、Internet
Information Service服务器软件进行自动配置,而Zeus、Sun Web Server服务器软件则不需要配置。
在/usr/local/iasp下,运行./connector.sh启动iASP配置向导程序。选择“Y”开始配置;
选择服务器软件及版本号(8:Apache 1.3.3)、Apache配置文件httpd.conf所在目录
(/etc/httpd/conf),其它可保持不变(按回车键采用默认设置)。在提示是否进行另一个服务器的配置时,选择
“N”,完成配置。

(五)、测试iASP
1、启动iASP服务器
    iASP服务器是一个Connector Proxy代理服务器软件,用于与服务器软件进行通信。
进入XWindows,打开一个nxterm窗口,在目录/usr/local/iasp下运行./start-server.sh,
    启动iASP Connector Proxy代理服务器程序。
2、测试iASP
    启动Apache 1.3.3服务器软件。将一个ASP页面文件拷到Apache页面发布目录“/home/httpd/
html”目录中,并用Netscape Communicator浏览器进行访问,如可用“http://localhost/
test.asp”访问ASP文件test.asp,其内容如下:
<html>

<head>
<title>Test iASP</title>
</head>

<body>
<%
Response.Write "<BR><h1>Congradulations!<BR>Instant ASP has worked for you!</h1>"
%>
</body>
</html>
  至此,Apache 1.3.3服务器软件已经可以用iASP解释引擎解释和执行ASP页面了。现在该你来自由发挥聪明才智了。

  另外,开发研制国内第一个中文版Linux--Xteam Linux1.0的形天海公司宣布,他们即将发布ADO引擎的linux版本,可
以使在Windows9X/NT上开发的ASP应用系统可直接运行于Linux平台,有兴趣的网络应用程序开发人员可以到形天海公司站
点( http://www.xteam.com.cn )去了解其产品的动态,也让我们为国内软件开发公司加油和喝彩。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值