IIS7整合Tomcat9服务器,并搭建ASP+PHP+JSP完整运行环境
本文以Windows Vista系统为例,详细讲解IIS7整合Tomcat服务器,同时支持ASP+PHP+JSP三种Web动态网页技术的方法。
 Vista系统自带的IIS版本为7.0,能安装的IE浏览器的最高版本为IE9。IE9也是Vue2前端框架支持的最低浏览器版本。
【准备工作】
 去微软官网下载VC14运行库:
 Visual C++ Redistributable for Visual Studio 2015
 https://www.microsoft.com/zh-cn/download/details.aspx?id=48145
 Windows 32位版本:vc_redist.x86.exe
 Windows 64位版本:vc_redist.x64.exe
去PHP官网下载PHP7.1.33压缩包:
 https://windows.php.net/downloads/releases/archives
 Windows 32位版本:php-7.1.33-nts-Win32-VC14-x86.zip
 Windows 64位版本:php-7.1.33-nts-Win32-VC14-x64.zip
 nts(非线程安全)版本为IIS的专用版本,VC14表示这个版本需要VC14运行库才能运行。
 Windows 95最高只能安装PHP4.2。
 Windows 98、Windows ME和Windows 2000最高只能安装PHP5.2。
 Windows XP和Windows Server 2003最高只能安装PHP5.4。
 Windows Vista和Windows Server 2008最高只能安装PHP7.1。
 Windows 7和Windows Server 2008 R2最高只能安装PHP8.2。
去Oracle官网下载JDK 8u202(Java最后的免费版本)的安装包。
 https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
 Windows 32位版本:jdk-8u202-windows-i586.exe
 Windows 64位版本:jdk-8u202-windows-x64.exe
 Java 8u202是最后一个免费的版本,之后的版本都是收费的,都不能免费使用!
去Tomcat官网下载Tomcat 9.0.89的安装包。(Tomcat 10不支持免费的Java 8,所以选择安装Tomcat 9)
 https://tomcat.apache.org/download-90.cgi
 栏目:32-bit/64-bit Windows Service Installer
 文件名:apache-tomcat-9.0.89.exe
去Tomcat官网下载tomcat-connectors连接器。
 https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/binaries/windows/
 32位版本:tomcat-connectors-1.2.49-windows-i386-iis.zip
 64位版本:tomcat-connectors-1.2.49-windows-x86_64-iis.zip
【安装IIS并测试ASP】
 在控制面板的程序与功能里面安装Internet 信息服务,注意要手动勾选应用程序开发功能里面的所有选项。

 
安装好之后IIS服务器会自动启动,可以直接用浏览器访问http://localhost/。

在C:\inetpub\wwwroot中创建test.asp文件,内容如下:
 <%@ language="javascript" %>
 <%
 Response.Write("Hello World!");
 %>
 保存文件后,用IE浏览器访问http://localhost/test.asp,即可看到Hello World!输出。

【在IIS中配置PHP】
 创建C:\Web文件夹,将php-7.1.33-nts-Win32-VC14-x86.zip解压到C:\Web\php-7.1.33-nts-Win32-VC14-x86文件夹中。

复制里面的php.ini-development文件,将复制的文件命名为php.ini。
 打开php.ini,把; extension_dir = "ext"和;extension=php_mbstring.dll前面的分号去掉。

打开计算机管理里面的Internet信息服务,选择左边最上面的根节点(计算机名,如OCT1158-VISTA),再打开右边的“处理程序映射”,点击右边的“添加模块映射”。

请求路径填写*.php。
 模块选择FastCgiModule。
 可执行文件填写C:\Web\php-7.1.33-nts-Win32-VC14-x86\php-cgi.exe。
 名称填写PHP7。
 点击确定后再点击是。


在根节点处(OCT1158-VISTA)处重启IIS服务器。

在C:\inetpub\wwwroot中创建info.php文件,内容如下:
 <?php
 phpinfo();
 ?>
 保存文件后,用IE浏览器访问http://localhost/info.php,即可看到PHP版本信息输出,并且还可以看到我们刚才在php.ini里面启用的mbstring扩展。

【安装JDK和Tomcat】
 运行JDK的安装程序:jdk-8u202-windows-i586.exe
 JDK以及附带的JRE的安装路径为C:\Program Files\Java。

运行Tomcat的安装程序:apache-tomcat-9.0.89.exe
 Tomcat的安装路径为C:\Program Files\Apache Software Foundation\Tomcat 9.0。




安装好之后即可用IE浏览器访问http://localhost:8080。

【在IIS中配置JSP】
 解压tomcat-connectors-1.2.49-windows-i386-iis.zip压缩包到C:\Web\tomcat-connectors-1.2.49-windows-i386-iis文件夹中。
在里面创建workers.properties文件,内容为
 worker.list=worker1
worker.worker1.port=8009
 worker.worker1.host=localhost
 worker.worker1.type=ajp13
 worker.worker1.secret=helloworld
再创建一个uriworkermap.properties文件,内容为
 /*.jsp=worker1
再创建一个.reg文件,内容如下:
 Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
 "extension_uri"="/jakarta/isapi_redirect.dll"
 "log_file"="C:/Web/tomcat-connectors-1.2.49-windows-i386-iis/isapi.log"
 "log_level"="info"
 "worker_file"="C:/Web/tomcat-connectors-1.2.49-windows-i386-iis/workers.properties"
 "worker_mount_file"="C:/Web/tomcat-connectors-1.2.49-windows-i386-iis/uriworkermap.properties"
 双击这个reg文件导入进注册表。

打开Internet信息服务,选择左边的根节点,再打开右边的“ISAPI和CGI限制”,点击右边的添加。
 ISAPI或CGI路径为C:\Web\tomcat-connectors-1.2.49-windows-i386-iis\isapi_redirect.dll。
 描述为isapi_redirect。
 勾选“允许执行扩展路径”,然后点击确定。

返回主页面,打开“ISAPI筛选器”,点击右边的添加。
 筛选器名称为jakarta。
 可执行文件为C:\Web\tomcat-connectors-1.2.49-windows-i386-iis\isapi_redirect.dll。
 点击确定。

在默认网站里面添加一个虚拟目录。
 别名为jakarta。
 物理路径为C:\Web\tomcat-connectors-1.2.49-windows-i386-iis。


添加后选中左边的虚拟目录,再打开右边的“处理程序映射”。

选中已禁用的“ISAPI-dll”,点击右边的“编辑功能权限”,勾选“执行”,点击确定。这样就把“ISAPI-dll”设置为了已启用。

编辑Tomcat的配置文件C:\Program Files\Apache Software Foundation\Tomcat 9.0\conf\server.xml。(编辑前要给当前用户添加写权限,不然保存不了)

找到8009端口的Connector节点,取消注释,并把address改成127.0.0.1,添加secretRequired="true"和secret="helloworld",保存文件。

重启IIS和Tomcat服务器。
 用IE浏览器访问http://localhost/index.jsp可以成功打开Tomcat页面,只是看不到图片。(因为uriworkermap.properties里面只映射了*.jsp,没有映射其他扩展名或目录)
 并且C:\Web\tomcat-connectors-1.2.49-windows-i386-iis目录下自动生成了isapi.log日志文件。

在C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\ROOT下建立test.jsp文件,内容如下(注意以UTF-8编码方式保存):
 <%@ page language="java" contentType="text/html; charset=UTF-8"
     pageEncoding="UTF-8"%>
 <%!
 String getURL(HttpServletRequest request) {
     String scheme = request.getScheme();
     int port = request.getServerPort();
     boolean hasPort = true;
     if (scheme.equals("http")) {
         if (port == 80) {
             hasPort = false;
         }
     } else if (scheme.equals("https")) {
         if (port == 443) {
             hasPort = false;
         }
     }
     String url = scheme + "://" + request.getServerName();
     if (hasPort) {
         url += ":" + port;
     }
     url += request.getRequestURI();
     String query = request.getQueryString();
     if (query != null) {
         url += "?" + query;
     }
     return url;
 }
 %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>IIS JSP测试页</title>
 </head>
<body>
 <b>Tomcat版本: </b><%= application.getServerInfo() %><br />
 <b>Java版本: </b><%= System.getProperty("java.version") %>
 <hr />
 <b>URL1: </b><%= request.getRequestURL() %><br />
 <b>URL2: </b><%= getURL(request) %><br />
 <b>ContextPath: </b><%= request.getContextPath() %><br />
 <b>ServletPath: </b><%= request.getServletPath() %><br />
 <b>IP地址: </b><%= request.getRemoteAddr() %>
 </body>
 </html>
保存后,即可访问http://localhost/test.jsp。

访问一个不存在的jsp页面:

访问一个不存在的asp页面:

我们还可以把index.php添加到默认文档里面去。
 index.jsp不需要添加,只要我们在uriworkermap.properties里面映射了整个目录,那么Tomcat会自动识别index.jsp。

相关文章:
IIS7整合Tomcat9服务器,并搭建ASP+PHP+JSP完整运行环境
本文以Windows Vista系统为例,详细讲解IIS7整合Tomcat服务器,同时支持ASPPHPJSP三种Web动态网页技术的方法。 Vista系统自带的IIS版本为7.0,能安装的IE浏览器的最高版本为IE9。IE9也是Vue2前端框架支持的最低浏览器版本。 【准备工作】 去微…...
IT运维重难点剖析及应对策略
运维工作作为信息技术领域的重要组成部分,对于保障企业信息系统的稳定运行具有至关重要的作用。然而,在实际工作中,运维人员常常面临各种重难点问题,这些问题不仅影响运维效率,还可能对企业的正常运营造成不利影响。本…...
【Python学习】面向对象(OOP)
让我们从Python面向对象编程(OOP)的基础概念开始,逐步深入到继承、多态、特殊方法和运算符重载。 一、类和对象 什么是类和对象? - 类(Class):类是创建对象的蓝图或模板。它定义了一组属性和方法…...
鸿蒙HarmonyOS实战—如何使用Video组件播放视频
1.视频播放 鸿蒙系统中,关于视频播放,可以使用上层视频组件Video。 参数如下 src 支持file:///data/storage路径前缀的字符串,用于读取应用沙箱路径内的资源。需要保证目录包路径下的文件有可读权限。 说明:视频支持的格式是&am…...
【Paddle2ONNX】为 Paddle2ONNX 升级自适应ONNX IR Version功能
1 简介 最近在浏览 Paddle2ONNX 的 Issues 时,我发现有用户需要让 Paddle2ONNX 支持导出的 ONNX 模型根据opset版本自适应 ONNX IR 版本,于是我动手添加了这个功能。 能否指定 IR representation的版本 Issue #1248 PaddlePaddle/Paddle2ONNX 2 什么…...
JS 中的DOM 操作
目录 概念Node接口NodeList接口,HTMLCollection接口ParentNode接口,ChildNode接口Document节点Element节点属性的操作Text节点和DocumentFragment节点CSS操作Mutation Observer API概念 D...
短剧出海怎么做?
短剧出海,即是指将制作的短剧内容推广到国际市场,吸引海外观众。以下是一些策略和步骤,可以帮助你实现这一目标: 研究目标市场:了解你想要进入的海外市场的文化、偏好和消费习惯。这包括语言、流行文化、媒体消费习惯等…...
【C++修行之道】类和对象(四)运算符重载
目录 一、 运算符重载 函数重载和运算符重载有什么关系? 二、.*运算符的作用 三、运算符重载的正常使用 四、重载成成员函数 五、赋值运算符重载 1.赋值运算符重载格式 传值返回和引用返回 有没有办法不生成拷贝? 2. 赋值运算符只能重载成类的…...
伯克希尔也被ST?
地球(最)贵股票突然闪崩,美股故障再次上演。昨晚齐刷刷一片的美股出现行情异常,伯克希尔、蒙特利尔银行、巴里克黄金等股票股价跌幅超过98%。其中,巴菲特旗下伯克希尔哈撒韦A类股股价更是暴跌99.97%,股价从…...
低代码和零代码软件时代质量管理(QM)和质量管理系统(QMS)
【前言】 质量控制过程的目的是为了确保产品的制造标准得到保持和改进。质量控制过程使公司能够满足客户的期望,同时确保产品质量的一致水平。采用这些标准创造了一种公司文化,鼓励所有员工努力实现高质量的生产标准。低代码和零代码软件可以成为质量控…...
JS跨页面或跨JS文件对变量赋值
JS跨页面或跨JS文件对变量赋值,这是很小的一个问题。 但问题虽小,却总觉得有点不够自然,不爽。 为什么呢?访问一个页面上的变量不是什么难事,比如用parent.变量名,或者windows名.变量名,都可以…...
xxe漏洞——无回显(ctfshow web374——378)
ctfshow——web374 <?php/* # -*- coding: utf-8 -*- # Author: h1xa # Date: 2021-01-07 12:59:52 # Last Modified by: h1xa # Last Modified time: 2021-01-07 13:36:47 # email: h1xactfer.com # link: https://ctfer.com*/error_reporting(0); libxml_disable_en…...
深入解读 Android Hook 技术-从原理到实践
在Android开发中,Hook技术是一种强大的手段,它允许开发者拦截和修改系统或应用的行为。通过Hook,我们可以在事件传递的过程中插入自定义的逻辑,从而实现对应用行为的监控和修改。 Android 系统有自己的事件分发机制,…...
架构每日一学 15:想要提升协作效率,必须先统一语义
谭sir与二仙桥大爷的经典对话: 谭sir:你该走哪?(非机动车能走机动车道吗?) 大爷:走二仙桥去成华大道(因为我要去成华大道,当然要走二仙桥) 谭sir:…...
基于树莓派4B设计的智能家居系统(华为云IOT)
基于树莓派的智能家居控制系统(华为云IOT) 文章目录 一、设计需求前言【1】 项目背景【2】需求总结【3】研究的内容【4】 国内外研究状况【5】本课题要解决的问题【6】开发工具的选择 二、硬件选型【1】 树莓派开发板【2】TFT卡-烧写系统使用【3】0.5米网线-远程登录【4】MQ2烟…...
路由懒加载
在 Vue.js 中,路由懒加载(也称为代码分割)是一种优化策略,它允许你将 Vue 组件分割成不同的代码块,并在需要时按需加载它们。这有助于减少初始加载时间,提高用户体验。 Vue Router 支持 Webpack 的动态 im…...
在Spring中实现资源的动态加载和卸载
在Spring框架中,实现资源的动态加载和卸载通常涉及以下几个方面: 1. 使用Bean注解动态注册Bean 通过在配置类中使用Bean注解,可以在运行时动态创建和注册Bean。 Configuration public class DynamicBeanConfig {Beanpublic MyBean myBean(…...
Windows下 CLion中,配置 OpenCV、LibTorch
首先按照win下C部署深度学习模型之clion配置pytorchopencv教程记录 步骤配置。 LibTorch 部分 在测试LibTorch时会出现类似 c10.dll not found 的问题(Debug才有): 参考C部署Pytorch(Libtorch)出现问题、错误汇总和 …...
机器学习知识点总结
简介:随着人工智能(AI)蓬勃发展,也有越来越多的人涌入到这一行业。下面简单介绍一下机器学习的各大领域,机器学习包含深度学习以及强化学习,在本节的机器学习中主要阐述一下机器学习的线性回归逻辑回归&…...
OBproxy基础运维
简介 obproxy 属于OceanBase的代理,生产环境中 OceanBase 数据库的数据 会以 多副本的形式 存放在各个 OBServer 节点上,obproxy 接收用户发出的 SQL 请求,并将 SQL 请求转发至最佳目标 OBServer 节点,最后将执行结果返回给用户&…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
