在Linux中运行ASP
一直希望能找在Linux环境下运行的ASP运行环境,今天总算得偿所愿,将iasp配置成功。有了这个解决方案,将asp迁移到Linux主机当中成为了可能。对数据库的支持我比较担心的是对Access数据库的支持,有纯Java实现的UCanAccess的开源项目,可以支持在Linux平台下访问Access数据,但所有连接数据库的代码都需要修改。另外我测试了一下iasp对JScript的语法的支持程度,发现不支持匿名函数,原型链等特性,这是JScript最为强大和吸引人的地方。所以这个方案并没有实施的价值,真正有价值的方案应该是不需要修改源代码的。随着自己对虚拟机的深入理解,应对遗留Window的程序,用kvm虚拟机应该是最佳的解决方案。
1 系统环境
系统:Arch Linux 4.6.3-1-ARCH WebServer: apache 2.0.63 ASP:iasp 2.1.01 JDK: 1.6
2 安装apache 2.0.x
我在apache 2.4上面安装iasp,启动apache的时候,出现以下提示:
httpd: Syntax error on line 527 of /etc/httpd/conf/httpd.conf: Cannot load /usr/lib/httpd/modules/mod_iasp.so into server: /usr/lib/httpd/modules/mod_iasp.so: undefined symbol: ap_pstrdup |
出现这个问题是因为iasp2.1.1发布的时候apache最高的版本是2.0.x,而2.0和2.4是两个不同的开发分支,api会有一些差异导致的。想支持apache2.4,需要自己动手去修改modiasp.c的源代码,这个难度就会比较大了。 托网友的福,已经有人已经把iasp修改成支持2.2版本的apache,可以用2.2版本的apache也不错,起码官方还在维护2.2版本的apache。我看到多数网友使用的2.0.x来做的测试,我也首先从apache 2.0.x开始搭建测试环境,确实把这个测试环境搭建起来了。 首先下载apache 2.0.x,http://archive.apache.org/dist/httpd/httpd-2.0.63.tar.bz2
cd /tmp |
3 安装iasp
安装iasp困难的地方在于选择合适的apache版本,由于iasp已经没有人维护了,默认只支持到apache 2.0.x。网友测测试过默认支持的最高版本是apache 2.0.56。有个比较耐心的网友,将iasp修改到可以支持apache 2.2.x。 我只在csdn找到iasp 2.1.01的下载地址,如果要下载的,去注册个账号。
cd /tmp |
4 运行例子
测试环境搭建起来了,我比较关心的是iasp对jscript的支持程度,发现结果并不如意。我简单地做了如下测试
<%@language="jscript" codepage="65001"%> |
5 测试连接数据库
iasp的sample中的样例程序已经比较旧了,例子中所用到的驱动程序,现在已经不适用了,我下载了最新版的jdbc驱动,修改start-server.sh脚本,把驱动添加到启动脚本的classpath中,我测试了三种最常用的数据库,都可以成功连接到数据库。
5.1 MySQL
好久没有实用过mysql,Arch Linux已经抛弃了Oracle版的mysql,用社区维护的mysql分支MariaDB取而代之。安装过程参考https://wiki.archlinux.org/index.php/MySQL_(简体中文)
#导入测试数据 |
5.2 Access
Linux也有查看Access数据库的GUI工具gmdb2,这个工具在mdbtools工具集中,可以在BlackArch的源里面下载安装到这个工具,具体安装方法可以查看参考文章MDB Tools project。
firefox http://localhost/iasp/docs/iasp/samples/vbscript/ado/animals/selectdb.asp & |