mod_aspdotnet实现Apache支持ASP.NET+JSP


  本文标签:mod_aspdotnet Apache支持ASP.NET

  一、Apache支持ASP.NET简要说明:

  1、安装所用到的软件:

  apache_2.0.55-win32-x86-no_ssl.msi

  mod_aspdotnet-2.0.0.msi

  dotNetFramework1.1

  Sun Java System Active Server Pages 4.0

  jdk-1_5_0_04-windows-i586-p.exe

  apache-tomcat-6.0

  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文件,在文件的最底部加入:

  1. #加载asp.net模块  
  2. LoadModule aspdotnet_module "modules/mod_aspdotnet.so" 
  3. #如果mod_aspdotnet加载成功  
  4. < IfModule mod_aspdotnet.cpp>  
  5.               AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj licx rem resources resx soap vb vbproj vsdisco webinfo  
  6.               # For all virtual ASP.NET webs, we need the aspnet_client files  
  7.               # to serve the client-side helper scripts.  
  8.               AliasMatch ^/(?i)aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*) "C:/WINNT/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4" 
  9.                
  10.               < Directory "C:/WINNT/Microsoft.NET/Framework/v*/ASP.NETClientFiles">  
  11.                             Options FollowSymlinks  
  12.                             Order allow,deny  
  13.                             Allow from all  
  14.               < /Directory>  
  15. < /IfModule>  
  16. < VirtualHost *:80>  
  17.     ServerAdmin $Mail_address  
  18.     DocumentRoot "$Apache_home\htdocs" 
  19.     ServerName $serverName  
  20.     DirectoryIndex index.jsp index.asp index.aspx index.htm  
  21.      
  22.     #如果mod_aspdotnet加载成功  
  23.               < IfModule mod_aspdotnet.cpp>  
  24.                             # 加载 ASP.NET 应用,当第一个参数为“/”时为整个虚拟主机都需要支持asp.net  
  25.                             AspNetMount / "$Apache_home\htdocs" 
  26.                              
  27.                             # 设置应用asp.net的虚拟目录,当整个虚拟主机都需要支持asp.net时不要设  
  28.                             #Alias /active "$Apache_home\htdocs\active"  
  29.                              
  30.                             # 允许 asp.net scripts 执行以下目录  
  31.                             < Directory "$Apache_home\htdocs">  
  32.                                           Options FollowSymlinks ExecCGI  
  33.                                           Order allow,deny  
  34.                                           Allow from all  
  35.                             < /Directory>  
  36.               < /IfModule>  
  37. < /VirtualHost>  
  38. # 加载 mod_jk module  
  39. LoadModule jk_module "modules/mod_jk.dll" 
  40. < IfModule mod_jk.c>  
  41.               # workers.properties的地址  
  42.               JkWorkersFile $Tomcat_home/conf/workers.properties  
  43.                
  44.               # 日志文件  
  45.               JkLogFile     $Tomcat_home/logs/mod_jk.log  
  46.                
  47.               # Set the jk log level [debug/error/info]  
  48.               JkLogLevel    info  
  49.                
  50.               # Select the timestamp log format  
  51.               JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " 
  52.                
  53.               # Send *.do,*.jsp,*.xls files to worker named ajp13  
  54.               JkMount /*.do ajp13  
  55.               JkMount /*.jsp ajp13  
  56. < /IfModule>  

  你在应用中要把上面的$Tomcat_home改成Tomcat的安装目录;把$Apache_home改成Apache的安装目录;把$serverName改成主机名,没有主机名也可以写成IP地址;把$Mail_address改成你的电子邮箱地址  。

  十、配置workers.properties

  在Tomcat安装目录下的conf目录中新建一个文件

  1. workers.properties:  
  2. workers.tomcat_home=$Tomcat_home  
  3. workers.java_home=$Java_home  
  4. ps=\  
  5. worker.list=ajp13  
  6.               
  7. worker.ajp13.port=8009          
  8. worker.ajp13.host=$serverName  
  9. worker.ajp13.type=ajp13  
  10. worker.ajp13.lbfactor=1  

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

  十一、配置Tomcat虚拟主机

  在Tomcat安装目录下的conf目录中打开server.xml文件,找到< /Engine>标签,在它上面加入:

  1. < Host name="$serverName " appBase="$Apache_home\htdocs" 
  2.       unpackWARs="true" autoDeploy="true" 
  3.       xmlValidation="false" xmlNamespaceAware="false"> 
  4.    < Context path="" docBase="." debug="0"/>< !--一定要有这一句,这一句设定当前目录为根目录 --> 
  5. < /Host> 

  你在应用中要把上面的$Apache_home改成Apache的安装目录;把$serverName改成主机名,没有主机名也可以写成IP地址

  注意:Tomcat虚拟主机的目录和Apache虚拟主机的目录一定要是同一个,主机名也一定要相同(即Tomcat中Host标签的appBase属性值要和Apache中VirtualHost标签的DocumentRoot要相同;即Tomcat中Host标签的name属性值要和Apache中VirtualHost标签的ServerName要相同;),只是端口不同而已,一个是80,一个是8080,否则在该问index.jsp时会有问题  。

  十二、测试Apache支持ASP.NET情况

  在虚拟主机根目录中加添加三个HelloWorld文件,分别为HelloWorld.aspx、HelloWorld.asp、HelloWorld.jsp测试一下:

  HelloWorld.aspx:

  1. < %@ Page Language="VB" %> 
  2. < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. < script runat="server"> 
  4. < /script> 
  5. < html xmlns="http://www.w3.org/1999/xhtml"> 
  6. < head runat="server"> 
  7.     < title>Hello World! - mod_aspdotnet< /title> 
  8. < /head> 
  9. < body> 
  10.     < form id="form1" runat="server"> 
  11.     < div> 
  12.         < % Response.Write("< h1>Hello World!< /h1>")%> 
  13.     < /div> 
  14.     < /form> 
  15. < /body> 
  16. < /html> 

  打开浏览器,在地址栏输入:http://$serverName/HelloWorld.aspx,把上面的$serverName改成主机名

  如果正确输出Hello World!

  说明你的配置是正确的,现在Apache支持ASP.NET了  。

  HelloWorld.asp:

  1. < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. < html xmlns="http://www.w3.org/1999/xhtml"> 
  3. < head> 
  4.     < title>Hello World! - Sun One ASP< /title> 
  5. < /head> 
  6. < body> 
  7.     < form id="form1"> 
  8.     < div> 
  9.         < % Response.Write "< h1>Hello World!< /h1>"%> 
  10.     < /div> 
  11.     < /form> 
  12. < /body> 
  13. < /html> 

  打开浏览器,在地址栏输入:http://$serverName/HelloWorld.asp,把上面的$serverName改成主机名

  如果正确输出Hello World!

  说明你的配置是正确的,现在Apache支持ASP了  。

  HelloWorld.jsp:

  1. < %@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %> 
  2. < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  3. < html xmlns="http://www.w3.org/1999/xhtml"> 
  4. < head> 
  5.     < title>Hello World! - Tomcat< /title> 
  6. < /head> 
  7. < body> 
  8.     < form id="form1"> 
  9.     < div> 
  10.         < % out.print ("< h1>Hello World!< /h1>");%> 
  11.     < /div> 
  12.     < /form> 
  13. < /body> 
  14. < /html> 

  打开浏览器,在地址栏输入:http://$serverName/HelloWorld.jsp,把上面的$serverName改成主机名

  如果正确输出Hello World!

  说明你的配置是正确的,现在你可以在Apache中使用JSP了  。

  十三、Apache支持ASP.NET的注意事项

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