Apache支持ASP.Net+ASP+JSP

来源:互联网 发布:淘宝上的黑莓手机 编辑:程序博客网 时间:2024/05/24 05:32

Apache支持ASP.Net+ASP+JSP


2008年07月23日 星期三 14:58
作者:greathack
网址:blog.greathack.com
Email:greathack@3java.com
转载请保留作者信息


一、简要说明:


1、安装所用到的软件:
apache_2.0.55-win32-x86-no_ssl.msi
http://archive.apache.org/dist/httpd/binaries/win32/apache_2.0.55-win32-x86-no_ssl.msi
mod_aspdotnet-2.0.0.msi
http://archive.apache.org/dist/httpd/mod_aspdotnet/mod_aspdotnet-2.0.0.msi
dotNetFramework1.1
http://download.microsoft.com/download/7/b/9/7b90644d-1af0-42b9-b76d-a2770319a568/dotnetfx.exe
Sun Java System Active Server Pages 4.0
http://www.sun.com/download/products.xml?id=420a8e72
jdk-1_5_0_04-windows-i586-p.exe
https://sdlc3e.sun.com/ECom/EComActionServlet;jsessionid=3A57864E769D189A8EFC1FE401CF9F3C
apache-tomcat-6.0
http://www.apache.org/dist/tomcat/tomcat-6/
mod_jk_1.2.6_2.0.50.dll
http://archive.apache.org/dist/jakarta/tomcat-connectors/jk/binaries/win32/jk-1.2.6/mod_jk_1.2.6_2.0.50.dll


2、mod_aspdotnet说明:mod_aspdotnet 是Apache基金会一个已经停止的项目,该项目以模块方式为Apache Web 服务器提供对微软 ASP.NET 应用支持。我们下载到的mod_aspdotnet-2.0.0.msi只支持Apache2.0.x。目前该模块配合 .NET Framework v1.0 or V1.1 完整支持 Asp.Net 1.1、试验性支持 Asp.Net 2.0,但不能配合 .NET Framework 2.0 工作。目前,这个mod_aspdotnet模块最大的问题是在认证支持上的不足,比如windows和form都还不能支持
现在新更新了的mod_aspdotnet-2.2.0.2004-snapshot-rev419792.msi提供了针对 Apache 2.2.x 准备的 mod_aspdotnet 模块。


3、Sun Java System Active Server Pages 4.0说明:Sun Java System Active Server Pages 4.0(以前称为 Sun ONE Active Server Pages)是一个安全的跨平台 Active Server Pages (ASP) 引擎。Java System ASP 允许组织通过将部署的 ASP 应用程序从 Microsoft IIS 提升到在 Solaris 操作系统、Linux 或 Windows 上运行的 Java System Web Server(以前称为 Sun ONE Web Server)或 Apache,提高 Web 安全性。Java System ASP 与 Microsoft ASP 3.0 和诸如 Macromedia 的 Dreamweaver MX 、Microsoft FrontPage 等通用的 Web 撰写工具完全兼容。
Sun ONE Active Server Pages 4.0允许在多种 Web 服务和平台上部署用 Active Server Pages 编写的Web 应用。这就意味着 Microsoft Web 开发人员可以使用现有工具创建跨平台 Active Server Pages 应用,而机构可以在安全、高度可用的 Web 服务器和操作环境中部署基于 Active Server Pages 软件的内容。


4、mod_jk_1.2.6_2.0.50说明:mod_jk_1.2.6_2.0.50 是比较旧的mod_jk,从Apache2.0.59以后,Apache对于mod_jk,有一套新的对应了,详细见Apache网站


二、安装Apache
下载完Apache后,双击apache_2.0.55-win32-x86-no_ssl.msi文件。选择同意条款,点Next;在Network Domain的框里填入域名(不带www的),在ServerName填入带前缀的域名(有带www或其他前缀的),在Email Address填入你的Email地址;点选For All Users单选框;然后一路Next。


三、安装.NET Framework
双击dotnetfx.exe,也是一路Next就行了。


四、安装mod_aspdotnet
在安装mod_aspdotnet之前一定要先安装好Apache和.NET Framework。
双击mod_aspdotnet-2.0.0.msi,选择同意条款,点Next;选择All Users单选框,一路Next就行了。


五、安装JDK
双击jdk-1_5_0_04-windows-i586-p.exe文件。一路Next就行了。


六、安装Sun Java System Active Server Pages 4.0
安装之前一定要先装好Apache。如果安装之前没有先安装JDK,则双击sjsasp402-windows.exe后会先安装J2SE v1.4.2_05,等J2SE v1.4.2_05安装安后,再次双击sjsasp402-windows.exe,才会进行Sun One ASP的安装。开始安装,一路Next到出现Choose A Web Server,选择Apache Web Server 2.0.55,点击Next,跳出一个要求关闭Apache服务的提示框,按要求关掉Apache的服务,点击确定,开始进入最后安装阶段,安装完后点击finish按钮,安装成功。安装成功后开启Apache的服务。


七、安装Tomcat
Tomcat安装按默认安装即可。


八、安装mod_jk
将mod_jk_1.2.6_2.0.50.dll拷贝到Apache安装目录下的modules目录里,重合名为mod_jk.dll


九、配置httpd.conf
进入Apache安装目录下,找到conf文件夹,双击进入。用文本打开httpd.conf文件,在文件的最底部加入:
#加载asp.net模块
LoadModule aspdotnet_module "modules/mod_aspdotnet.so"
#如果mod_aspdotnet加载成功
<IfModule mod_aspdotnet.cpp>
AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj licx rem resources resx soap vb vbproj vsdisco webinfo
# For all virtual ASP.NET webs, we need the aspnet_client files
# to serve the client-side helper scripts.
AliasMatch ^/(?i)aspnet_client/system_web/(/d+)_(/d+)_(/d+)_(/d+)/(.*) "C:/WINNT/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"

<Directory "C:/WINNT/Microsoft.NET/Framework/v*/ASP.NETClientFiles">
Options FollowSymlinks
Order allow,deny
Allow from all
</Directory>
</IfModule>
<VirtualHost *:80>
ServerAdmin $Mail_address
DocumentRoot "$Apache_home/htdocs"
ServerName $serverName
DirectoryIndex index.jsp index.asp index.aspx index.htm

#如果mod_aspdotnet加载成功
<IfModule mod_aspdotnet.cpp>
# 加载 ASP.NET 应用,当第一个参数为"/"时为整个虚拟主机都需要支持asp.net
AspNetMount / "$Apache_home/htdocs"

# 设置应用asp.net的虚拟目录,当整个虚拟主机都需要支持asp.net时不要设
#Alias /active "$Apache_home/htdocs/active"

# 允许 asp.net scripts 执行以下目录
<Directory "$Apache_home/htdocs">
Options FollowSymlinks ExecCGI
Order allow,deny
Allow from all
</Directory>
</IfModule>
</VirtualHost>
# 加载 mod_jk module
LoadModule jk_module "modules/mod_jk.dll"
<IfModule mod_jk.c>
# workers.properties的地址
JkWorkersFile $Tomcat_home/conf/workers.properties

# 日志文件
JkLogFile $Tomcat_home/logs/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info

# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# Send *.do,*.jsp,*.xls files to worker named ajp13
JkMount /*.do ajp13
JkMount /*.jsp ajp13
</IfModule>
你在应用中要把上面的$Tomcat_home改成Tomcat的安装目录;把$Apache_home改成Apache的安装目录;把$serverName改成主机名,没有主机名也可以写成IP地址;把$Mail_address改成你的电子邮箱地址。


十、配置workers.properties
在Tomcat安装目录下的conf目录中新建一个文件
workers.properties:
workers.tomcat_home=$Tomcat_home
workers.java_home=$Java_home
ps=/
worker.list=ajp13

worker.ajp13.port=8009
worker.ajp13.host=$serverName
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
你在应用中要把上面的$Tomcat_home改成Tomcat的安装目录;把$Java_home改成JDK的安装目录;把$serverName改成主机名,没有设置虚拟主机的也可以写上IP地址。


十一、配置Tomcat虚拟主机
在Tomcat安装目录下的conf目录中打开server.xml文件,找到</Engine>标签,在它上面加入:
<Host name="$serverName " appBase="$Apache_home/htdocs"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="." debug="0"/><!--一定要有这一句,这一句设定当前目录为根目录 -->
</Host>
你在应用中要把上面的$Apache_home改成Apache的安装目录;把$serverName改成主机名,没有主机名也可以写成IP地址
注意:Tomcat虚拟主机的目录和Apache虚拟主机的目录一定要是同一个,主机名也一定要相同(即Tomcat中Host标签的appBase属性值要和Apache中VirtualHost标签的DocumentRoot要相同;即Tomcat中Host标签的name属性值要和Apache中VirtualHost标签的ServerName要相同;),只是端口不同而已,一个是80,一个是8080,否则在该问index.jsp时会有问题。


十二、测试
在虚拟主机根目录中加添加三个HelloWorld文件,分别为HelloWorld.aspx、HelloWorld.asp、HelloWorld.jsp测试一下:
HelloWorld.aspx:
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml"; >
<head runat="server">
<title>Hello World! - mod_aspdotnet</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<% Response.Write("<h1>Hello World!</h1>")%>
</div>
</form>
</body>
</html>
打开浏览器,在地址栏输入:http://$serverName/HelloWorld.aspx,把上面的$serverName改成主机名
如果正确输出Hello World!
说明你的配置是正确的,现在你可以在Apache中使用JSP了。
HelloWorld.asp:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"; >
<head>
<title>Hello World! - Sun One ASP</title>
</head>
<body>
<form id="form1">
<div>
<% Response.Write "<h1>Hello World!</h1>"%>
</div>
</form>
</body>
</html>
打开浏览器,在地址栏输入:http://$serverName/HelloWorld.asp,把上面的$serverName改成主机名
如果正确输出Hello World!
说明你的配置是正确的,现在你可以在Apache中使用JSP了。
HelloWorld.jsp:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"; >
<head>
<title>Hello World! - Tomcat</title>
</head>
<body>
<form id="form1">
<div>
<% out.print ("<h1>Hello World!</h1>");%>
</div>
</form>
</body>
</html>
打开浏览器,在地址栏输入:http://$serverName/HelloWorld.jsp,把上面的$serverName改成主机名
如果正确输出Hello World!
说明你的配置是正确的,现在你可以在Apache中使用JSP了。


十三、注意
1、由于apache本身对于url的目录和文件名是大小写敏感的,所以asp.net的虚拟目录必须要注意大小写,否则访问的时候不会出错,不过将会找不到任何的文件,就像访问一个空的目录一样。除了虚拟目录名外,由于其它的aspx文件是mod_aspdotnet模块载入的,所以又仍然是非大小写敏感的。

原创粉丝点击