[原创]ubuntu新手用apache2和iasp构建ASP开发环境实战

软件和网站开发以及相关技术探讨
出岫之云
帖子: 220
注册时间: 2007-06-21 22:25

[原创]ubuntu新手用apache2和iasp构建ASP开发环境实战

#1

帖子 出岫之云 » 2007-06-27 1:04

ubuntu新手用apache2和iasp构建ASP开发环境实战

从网上了解到ubuntu最近发行了版本号为7.04的新版本,该版本的性能、界面和易用性都获得了很多网友的好评。按捺不住好奇心,遂上网下载了一份LiveCD的ISO文件,刻盘,安装到了我的惠普v3009tu笔记本电脑上,开始了我的ubuntu之旅。
经过几天的试用之后,发现ubuntu 7.04的确不错,使我几乎有了放弃windows的冲动。但很快发现有许多在windows上的应用现在在ubuntu上实现起来还是比较麻烦的。
本人常在windows下学习开发ASP的网站,离开windows,这ASP还能用吗?上网一查,嘿!还真有办法实现。下面就将自己在该版本ubuntu上构建ASP开发环境的“艰苦之旅”描述一下。
一、硬件准备:没什么可说的,惠普v3009tu笔记本电脑。
二、操作系统安装过程:从ubuntu 7.04 LiveCD安装,原先电脑上有windows xp mce 2005,当然是构建双系统啰,安装过程中选择手动分区,将原来windows xp下的扩展分区(原来只有第一个分区是主分区,即windows中的C盘)中的E盘(约15G)删除,重新分三个区,分别挂载为根分区“/”、“/home”和swap,组件选择中我增加了gcc,其他过程略去。
三、资料查找过程:
我萌发构建ASP环境之后,首先想到的就是上网去查找资料,用百度去搜索(百度有“百度快照”,对查看过期信息很有用),发现关于这方面的资料实在是太少了,费了三四个小时,才找到了一些零零碎碎的信息。其中有一篇文章多次被搜索到,但大多支离破碎,只有这个网址http://www.djhui.cn/blog/post/23.html的还算完整,更重要的是该页面下方提供了一个下载该文中提到的关键软件“iasp”的有效链接http://www.linuxeden.com/download/data/soft/1083.html。真是万幸
四、实战第一阶段:
我从上面那个链接中将iasp下载了回来,开始了我的“艰苦之旅”。
首先,我将下载回来的“iASP2.1.01.tar.gz”压缩包放到“/home”目录,在右键菜单中选“解压缩到此处”,得到文件夹“iASP2.1“,打开,看到三个文件:iasp21.tar、install.sh、readme。马上用文本编辑器打开“readme”,仔细阅读了起来。
从“readme“中得知,该软件是由一家叫“stryon“的公司开发的,但奇怪的是当我想获取更多关于此软件的资料而去访问“readme“中提供的公司网址,却死活都打不开,去搜索关于该公司的资料,也几乎没有。真是奇怪,怀疑它是不是已经倒闭了或被卖给别人了。不管他。
“readme“中提到的这样几点我特别留心了一下:
1、系统中必须安装有Java Development Kit (JDK) 1.1.7或以上版本的软件,对Linux系统,强烈建议安装可用的、最新的JDK;
2、iasp 2.1.01版(也就是我下载回来的版本)完全支持apache2.0;
3、要为你的Linux上的系统获取一个自由的许可证,请访问他们的公司网站(网站都打不开了,怎么获取啊?后面还有个电话和传真,我就不打了)。
根据readme提示,我用“新立得软件包管理器”安装了“apache2“(版本显示是2.0.55-4)和”sun-java6-jdk“(版本显示是6.0)。
装好后,想到最好测试一下这两个软件。可怎么测试呢?我连软件装到哪儿去了都不知道。还是上网查,结果查到的又是些支离破碎的资料,又费了我好多时间。
先说apache2测试,资料说apache2安装位置是在“/usr/local/apache2”,启动方法是在终端中输入“sudo /usr/local/apache2/bin/apachectl start“。可我在“/usr/local/apache2“中根本就找不到“bin“目录(还有资料说的“conf“目录在这也找不到),真是奇怪了!用ubuntu面板上的“位置-搜索文件…”功能搜索,也找不到(顺便提一下,ubuntu的搜索功能给人感觉不好使)。后来还是在linuxsir.org上找到了一篇《apache2安装与配置》的文档(http://www.linuxsir.org/main/?q=node/229),比较完整。用该文档中所说方法,终端中输入“sudo /etc/init.d/apache2 start”启动apache2成功。中间会提示没有主机名,用127.0.0.1做主机名,这是因为没有apache2没有配置,没关系,我现在只要apache2能启动成功就行了。打开浏览器浏览“http://127.0.0.1/”,内容出来了。兴奋了一会儿!但心中一直奇怪为什么和有些资料上说的不一样,会不会一个是在以Redhat为代表的linux中的情况,而另一个是在以Debian为代表的linux中的情况呢?
再说jdk的测试,又是找了半天才在“/usr/lib/jvm/java-6-sun-1.6.0.00/”下找到了,终端中进入该目录中的“bin“目录,运行”sudo java -version“,显示如下:
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)
测试成功。
既然这两款软件安装成功了,下面就该安装iasp了。
五、实战第二阶段:
终端中进入前面提到的“/home/iASP2.1“文件夹,根据“readme“的提示,运行”sudo ./install.sh“,过程如下:

***********************************************************************
* Instant ASP(tm)2.1.01 Enterprise Edition Install *
* *
* Instant ASP(tm)2.1.01 requires Java Development Kit(preferably the *
* latest version for your operating system)for its operation.Zeus and *
* SWS Beta users may skip the following step. *
***********************************************************************

i686

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/lib/jvm/java-6-sun-1.6.0.00/bin”)

Enter the absolute directory under which Instant ASP should be installed.
(./iasp21 will be created underneath.)
> (输入安装“iasp”的目录,我输入了“/usr/local”,这样程序会在此目录中自动建一个“iasp21“的目录,程序就被安装到了这里)

接着提示安装结束,并询问是否配置web服务器。输入“n“,结束安装。

安装过程可谓是一帆风顺,接下来开始配置iasp。

先终端中运行“sudo /etc/init.d/apache2 stop”,停止apache2服务。接着进入iasp的安装目录“/usr/local/iasp21“,用“ls“命令查看一下有什么东西,显示如下:
admin default.html index.html README_EN stop-admin.sh
bin docs lib servlets stop-server.sh
connector.sh icon logs start-admin.sh
default.htm index.htm properties start-server.sh

这里,connector.sh是配置程序,stop-server.sh是启动iasp服务,start-server.sh是停止iasp服务,start-admin.sh是开启远程管理,stop-admin.ah是关闭远程管理。
我运行“sudo ./connector.sh”,开始iasp提供的web服务器配置,过程如下:

*************************************************************************

Welcome to Instant ASP connection wizard. This wizard will
allow you to configure Instant ASP for one or more web servers.
Copyright 1998-2001 Halcyon Software, Inc.

*************************************************************************


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 /bin/apache/source/readme.txt

Enter a number [0-10]:(输入“12”)

Please enter the path to the Apache /conf directory >
输入apache2的配置文件“httpd.conf“所在目录,到这里我犯难了。资料上说的都是在”/usr/local/apache2/conf“下,但我的apache2安装后根本就没有这个目录,还是linuxsir.org上的那篇文章帮了忙,我在我的电脑的“/etc/apache2”目录下找到了它。所以我在这里输入了“/etc/apache2“。

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/

看起来一切顺利。
我马上运行“sudo /etc/init.d/apache2 start“,OK,再进入“/usr/local/iasp21”,运行“./start-server.sh”,OK。
我立马打开浏览器浏览“http://127.0.0.1/iasp“,哇!iasp的默认页面出现了!太兴奋了!
点击左边的链接看看,都正常;欸,有个“Samples“,一定是例子,快打开看看,嗯,页面出来了,右边出现一个表格,我点了第一个“General”,又出现一个表格,第一个是“HelloWold“的测试,每个测试又都分“Vbscrip“和”Jscript“,我当然选“Vbscript”啰,“view“是查看源代码的,“run”则是运行ASP文件的,我点“run“,不幸的事情发生了——出来的是源代码!
费了九牛二虎之力,换来的是这么个结果!问题出在哪儿呢?
六、实战第三阶段
难道是apache的版本不对?可iasp的“readme”中说的是“full supports Apache2.0“啊!不行,再来一遍!将apache2卸载,将“/usr/local/iasp21“删除,重来一遍,非常小心地又重来了一遍,问题依旧!
肯定是iasp的ASP引擎没有起作用啊,怎么办?此时已是深夜1点!接着来。前面那篇文章用的软件版本和我这个不一样,换成和他的一样的!于是,又将apach2卸掉,重新用“新立得”装上apache 1.3.34版,重新来过,又折腾了半天,问题依旧!看来问题的原因不在软件的版本上。
想到我前面找半天没找到apache的bin目录,我想难道我通过“新立得”安装的软件不全?这样,我去apache的官网下载软件包回来自己装,看看如何。于是把apache2.0.59下了回来(没敢下2.2.4的版本)。
把下回来的文件放在“/home“目录,解压,得到httpd-2.0.59目录,进入,发现一大堆文件,其中有INSTALL,用文本编辑器打开,仔细阅读了起来。其中这句“If you are building on Mac OS X (Darwin), make sure to use libtool 1.4.2 or newer.”引起了我的注意,查看我的系统,确实没装“libtool”。马上用“新立德”装上了“libtool 1.5.22-4“。
接着终端中进入“/home/httpd-2.0.59“目录,根据INSTALL中的提示,开始安装apache2.0.59。过程如下:
sudo ./configure --prefix=/usr/local/apache2
sudo make
sudo make install
安装过程还是很顺利,成功了。
这次是自己手动安装的,我明确知道了apache2装在了哪儿,马上进入“/usr/local/apache2”,浏览了一下,发现果然和通过“新里得”安装的不一样,有了conf、bin等十几个目录。进入bin,也发现了apachectl文件,用这个启动看看,运行“sudo /usr/local/apache2/bin/apachectl start”,又成功了!浏览器浏览“http://127.0.0.1“,显示的页面中有“您能看见这个页面,说明Apache web server 已经安装成功。”的提示,也成功了!
安装好apache2后,再重新安装并配置iasp,过程一切正常!不过在准备重启动apache2后,新问题出现了——apache2启动不了!出错提示什么mod_iasp.c is not compatible with this version of Apache (found 20020329,need 20020903),应该是mod_iasp.c的版本不对。难道又是软件版本的问题?
七、实战第四阶段
头疼啊!此时是深夜2点了!还干吗?干吧,反正明天没什么事。于是就又去上网查原因,可网上关于此问题的资料依然是难觅踪影,好不容易发现了一个帖子说什么iasp的确是支持apach2的,但要自己重新编译mod_iasp.c的文件,具体在iasp的安装目录中的“/user/local/iasp21/bin/apache/source/2.0/readme.txt”文件中有说明。打开该文件一看,果然如此!文件中有一段说明如下:
If you are using Apache Web Server and have additional modules
such as Front Page Server Extensions, Raven SSL, or you are
using Apache Strong Hold Server, you need to build the iasp
module for Apache Web Server according to the following steps:

*************************************************************
* Compile iASP module for Apache 2.0 on UNIX *
*************************************************************


1. Compile the iasp module with following command:

[Apache-Root]/bin/apxs -i -c *.c

then mod_iasp.so is copied to [Apache-Root]/libexec/

2. Configure the iasp in apache configuration file:

LoadModule iasp_module "[Apache-Root]/libexec/mod_iasp.so"
Alias /iasp "[iASP-Root]"
IaspConfig server "[iASP-Root]/properties/server.properties"
IaspConfig rules "[iASP-Root]/properties/rules.properties"

3. Restart Apache and iasp server.

NOTE: [Apache-Root] is Apache installed path.
[iASP-Root] is iASP installed path.

马上就按该文件中的提示来做啊!运行“sudo /usr/local/apache2/bin/apxs -i -c *.c“,但是,不成功!报错:
……
libtool: compile: libobj name `*.lo' may not contain shell special characters.
gcc: *.c: No such file or directory
gcc: no input files
apxs:Error: Command failed with rc=65536
.
八、实战第五阶段
晕倒啊!查看“/usr/local/apache2”目录,没有readme.txt中所说的“libexec”目录啊,这是为什么呢?而我看出错提示,好像是说没有*.c的文件啊。这个.c的文件在哪儿呢?我在“/usr/local/apache2”的反反复复的找,就是找不到.c类的文件。怎么回事呢?
人已非常困了,我在文件管理器中乱点那些目录,翻来翻去,笔记本电脑屏幕的亮光刺的眼睛很难受,人愈发得困了!不由得恨起来ubuntu系统中居然不能正常使用我的惠普笔记本的fn+f7、fn+f8键来调节屏幕亮度(这个问题也困扰了我两天,调节亮度要么是最亮,要么是最暗,更要命的是,这个功能还时灵时不灵,要它暗的时候它就是不暗!不过笔者写这篇文章时已通过软件变通解决了部分问题,虽然麻烦些)。就这么昏昏沉沉的,突然,眼前一亮,我发现了*.c文件!马上振作起来,是的,没错,.c文件,在“/user/local/iasp21/bin/apache/source/2.0“中呢!mod_iasp.c它在那儿看着我笑呢!
找到这个文件,我似乎是突然间就明白了,我刚才都是在这个目录之外在执行编译的,那怎么能找到.c文件呢!看我笨得!我马上在终端中“cd /user/local/iasp21/bin/apache/source/2.0“
重新执行“sudo /usr/local/apache2/bin/apxs -i -c *.c“,成功!马上到apache2安装目录中去找libexec目录,可惜,我没有找到!看看编译成功的提示,输出的文件原来并没有放到什么libexec目录,而是放到了apache2的modules目录中,打开一看,果然在那儿呢!这回我想应该没问题了!马上运行“sudo gedit /user/local/apache2/conf/httpd.conf”,将“LoadModule iasp_module "/user/local/iasp21/bin/apache/linux/2.0/mod_iasp.so"”这句改成了“/user/local/apache2/modules/mod_iasp.so”,保存。
看来这个该死的“readme.txt”文件,它也不说清楚点儿!
重启apache2,重启iasp,这次再也看不到ASP的“<% %>”了!看看“HelloWorld“吧!

世界是多么美好啊!
一看时间,天哪!凌晨4点多了!赶快去睡觉吧!要不明天老婆孩子老头老娘就又要开我的批斗会了!
唉!折磨人的Linux啊!

九、补遗:
  后来又发现一个问题,就是我的ASP只能运行一会儿,然后就出现服务无法连接的提示,好像是iasp运行一会儿就停止了。经检查,是因为我在终端中运行的iasp,把终端窗口关了,iasp服务就停止了。我后来在桌面创建了一个到“/usr/local/iasp/start-server.sh“的启动器,通过它来启动就没有问题了。
附件
iasp21运行asp成功的测试页面
iasp21运行asp成功的测试页面
头像
forrid
帖子: 659
注册时间: 2007-04-23 17:40

#2

帖子 forrid » 2007-06-27 3:18

very cool

吾生也有涯,而知也无涯,以有涯随无涯,SB啊~~~~~~~~~~
头像
arsui
帖子: 889
注册时间: 2007-05-06 2:01
来自: 特麓村->浦北->五山->罗湖

#3

帖子 arsui » 2007-06-30 8:49

sudo /etc/init.d/apache2 start
* Starting web server (apache2)...
apache2: Syntax error on line 189 of /etc/apache2/apache2.conf: Syntax error on line 10 of /etc/apache2/httpd.conf: Cannot load /usr/local/iasp21/bin/apache/linux/2.0/mod_iasp.so into server: /usr/local/iasp21/bin/apache/linux/2.0/mod_iasp.so: undefined symbol: ap_run_http_method


我按照lz的方法,最后重新启动apache2 的时候失败了。

不知是什么原因?
Ubuntu 9.04 & Win Xp
------------------------------------------------------
Company: http://www.mazingtech.com
HomePage: http://www.arsui.com
出岫之云
帖子: 220
注册时间: 2007-06-21 22:25

#4

帖子 出岫之云 » 2007-06-30 14:42

你是将apache2装在/etc/apache2下面的吗?我是装在/usr/local/apache2里的,我的httpd.conf在此目录下的conf目录里,我也没有你的出错提示中的apache2.conf文件啊。你是怎么装的apache2?是从源里装的?要自己下回来编译安装才可以的。
从你启动apache2的方式来看,你是从源里装的apache2。请看我帖子中的“六、实战第三阶段“。
alex_kame
帖子: 11
注册时间: 2007-06-29 9:37

#5

帖子 alex_kame » 2007-06-30 19:29

有哪位朋友有能力、有时间来把楼主的文章怎现一下呢?
楼主的文章写得不错,但是如果可以独立出一篇纯的指导文章就更好了!

谢谢楼主!
头像
arsui
帖子: 889
注册时间: 2007-05-06 2:01
来自: 特麓村->浦北->五山->罗湖

#6

帖子 arsui » 2007-07-01 10:50

sudo /usr/local/apache2/bin/apachectl start
Syntax error on line 1039 of /usr/local/apache2/conf/httpd.conf:
Cannot load /user/local/apache2/modoules/mod_iasp.so into server: /user/local/apache2/modoules/mod_iasp.so: cannot open shared object file: No such file or directory

---------------------------------------------
不知怎么回事,我已经编译生成了/user/local/apache2/modoules/mod_iasp.so,可是启动的时候老是说找不到,气死我了~~~~
ps,lz的是在写日记的把~~~

谢谢lz
附件
明明看到这个文件哇~~
明明看到这个文件哇~~
Screenshot-7.jpg (8.28 KiB) 查看 5669 次
Ubuntu 9.04 & Win Xp
------------------------------------------------------
Company: http://www.mazingtech.com
HomePage: http://www.arsui.com
出岫之云
帖子: 220
注册时间: 2007-06-21 22:25

#7

帖子 出岫之云 » 2007-07-01 22:44

呵呵!你的出错提示显示文件“mod_iasp.so”的路径是“/user/……”,而你发的图片显示你系统中“mod_iasp.so”的路径是“/usr/……”。请检查一下问题是不是出在这里。一个字母的差别,这个错误我也犯过,的确“usr”很容易就被写成“user”的。
头像
arsui
帖子: 889
注册时间: 2007-05-06 2:01
来自: 特麓村->浦北->五山->罗湖

#8

帖子 arsui » 2007-07-02 22:49

这个错误是晕晕的~~ 不过我改过之后启动的时候结果如下~~~

sudo /usr/local/apache2/bin/apachectl start
Syntax error on line 1039 of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/apache2/modoules/mod_iasp.so into server: /usr/local/apache2/modoules/mod_iasp.so: cannot open shared object file: No such file or directory


不知是什么原因?
Ubuntu 9.04 & Win Xp
------------------------------------------------------
Company: http://www.mazingtech.com
HomePage: http://www.arsui.com
出岫之云
帖子: 220
注册时间: 2007-06-21 22:25

#9

帖子 出岫之云 » 2007-07-02 23:07

昏倒!你又将“modules”写成了“modoules”!
头像
arsui
帖子: 889
注册时间: 2007-05-06 2:01
来自: 特麓村->浦北->五山->罗湖

#10

帖子 arsui » 2007-07-03 0:32

可以了~~~
不过是因为我的java 路径不对~~~
Ubuntu 9.04 & Win Xp
------------------------------------------------------
Company: http://www.mazingtech.com
HomePage: http://www.arsui.com
头像
arsui
帖子: 889
注册时间: 2007-05-06 2:01
来自: 特麓村->浦北->五山->罗湖

#11

帖子 arsui » 2007-07-03 0:45

出岫之云 写了:昏倒!你又将“modules”写成了“modoules”!
我是复制过去的~~~~汗~~
Ubuntu 9.04 & Win Xp
------------------------------------------------------
Company: http://www.mazingtech.com
HomePage: http://www.arsui.com
头像
xport
帖子: 1277
注册时间: 2006-05-19 21:23
联系:

#12

帖子 xport » 2007-08-09 23:56

再次咆哮这种吃饱了没事干的做法...!

配置出来又有什么用呢? 要练习ASP用IIS才是正道,这样的解决方案谁会用在正式环境中呢,其结果就好比你自己说的那个样子,或许开发这个软件的公司都已经倒闭了。
其实我是一个演员!-http://blog.csdn.net/xport/
lont
帖子: 113
注册时间: 2007-09-23 14:23

#13

帖子 lont » 2007-09-28 19:59

xport 写了:再次咆哮这种吃饱了没事干的做法...!

配置出来又有什么用呢? 要练习ASP用IIS才是正道,这样的解决方案谁会用在正式环境中呢,其结果就好比你自己说的那个样子,或许开发这个软件的公司都已经倒闭了。
强烈BS这种人
showboy
帖子: 122
注册时间: 2006-11-26 14:41

#14

帖子 showboy » 2007-09-30 8:00

既然都用上linux,明显应该放弃asp
lont
帖子: 113
注册时间: 2007-09-23 14:23

#15

帖子 lont » 2007-10-01 23:40

showboy 写了:既然都用上linux,明显应该放弃asp
说得对,如果用php就一定要用linux,在windows里运行php的都是白痴(看来中国有很多白痴)
回复