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