Xampp 1.7.3 启用 asp.net 支持

  我这人特懒,加之并不是专业、职业的php开发者,所以一向在 php 环境配置方面追求、多、快、好、省、高的目标,因此之前一直在用可以跨平台的 xampp 1.7.1。在 ubuntu 下也是一样,通过前面笔记中记录的方式实现 htdocs 与 mysql 进行不同操作系统间的文件共享。

  最近本地开发环境更换,由原来的 xampp 1.7.1 升级至 1.7.3。

  我们在官网或者 phpinfo() 中都可以看到,php 升级到了较新的 5.2.1,apache 升级到了 2.2.14,同时这个版本的xampp还新增或加强了对 asp、perl、pear、filezilla、mercury 和 tomcat 的支持。

  Perl 和 pear 暂且不论,asp 确实已经比较过时的语言了。限于其安全性和程序的执行效能,应付一般的小型企业站点和 blog 还可以,应付较大规模的产品就比较吃力了。而编程语言又一时众口难调,于是为 apache 添加 asp.net 支持就被提上了日程。

  其实启用 asp.net 支持很简单。在 2006 年的时候 apache 发布过一个基于 2.2 系列的 mod,也就是 mod_aspdotnet,现在的版本应该是 2.2,因为后来不再开发了。原因有多方面,但服务器操作系统方面的压力可能是最大的,这里不分析。我们要做的就是利用它来为我们开启 apache 的 asp.net 支持。

  特殊说明,因为使用 netbeans 这个 IDE,我的 jdk 环境已经先期配好。大家可以去翻以前的笔记,上周更新过。原来写错了一个路径。

  首先下载 mod_aspdotnet,比如我下载到的是 mod_aspdotnet-2.2.0.2006-setup-r2.msi, 400k 左右的东东。文件大小不对的请小心,我最近看到不少朋友被虚假广告中的下载链接给骗了,有的甚至损失惨重。下载完毕直接双击安装到当前 apache 所在的目录下即可,比如我的是 d:xamppapache。如果中间提示该文件 is not a valid path to ……。表示你mod_aspdotnet的版本与当前 apache 不匹配,请重新找一个。如果实在找不到,也可以给我留言要,留言方式自己找。

  安装完 mod_aspdotnet 并不是就万事大吉了,我们还需要手动加入 httpd.conf 才能让 mod_aspdotnet 生效。

  打开 apache 安装目录下的 httpd.conf 文件,比如我的路径是 d:xamppapacheconfhttpd.conf。在最末添加如下代码,当然,你喜欢添加在别的位置也行,开头、中间都可以,注意看代码的注释。我只是纯业余人员,注释也纯属娱乐,大家看看也应该能了解到大概的意思。

  #加载 asp.net 支持组件 mod_aspdotnet。

  LoadModule aspdotnet_module 'modules/mod_aspdotnet.so'

  #添加 apache 的解析文件扩展名/格式到mod_aspdotnet下。

  AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj licx rem resources resx soap vb vbproj vsdisco webinfo

  #如果加载 mod_aspdotnet.cpp

  #asp.net 文件放置目录,比如我放置在htdocs下的Active目录中。大家可根据自己的情况更改该目录位置,但注意保持一致。

  AspNetMount /Active 'D:/xampp/htdocs/Active'

  #asp.net 文件放置目录别名,其实就是设置一个 http://localhost/ 后面的那个东东,下面的设置将会指向 http://localhost/active。也就是说你访问上述网址的时候,apache 会把你定位到 asp.net 文件放置的目录。

  Alias /active 'D:/xampp/htdocs/Active'

  #允许脚本的执行,大家都知道伪静态也可以在这里动手脚的。

  Options FollowSymlinks ExecCGI

  Order allow,deny

  Allow from all

  #设定默认首页,要什么格式的自己添加,到时候大家不要找不到或者打不开来骂街,呵呵。再说一下我不喜欢.htm,除非必须,我都使用.html。

  DirectoryIndex index.html index.aspx

  # 做到这里我们已经完成了 apache 支持 asp.net 组件 mod_aspdotnet 的加载与设置,apache也可以顺利调用了。但还不够,那么一个 400k 无法执行 asp.net 那么多库啊。所以,还要加载系统自身的 asp.net 组件,所以获取系统的 .net framework 并加载。

  AliasMatch /aspnet_client/system_web/(d+)_(d+)_(d+)_(d+)/(.*) 'C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4'

  #允许.net framework脚本的执行。

  Options FollowSymlinks

  Order allow,deny

  Allow from all

  #加载 asp.net 支持组件 mod_aspdotnet 及相关设置完毕。

  好了,重启 apache,打开 http://localhost/active/,娃哈哈,正常运行了。Ubuntu 的设置有空再贴出来,其实看完这个你也已经可以设置了,就是去找下 linux 下的 mod_aspdotnet 和 .net framework 即可。没搞定的再看一遍笔记就行了。