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 节点,最后将执行结果返回给用户&…...
【Python】 探索Pytz库中的时区列表
基本原理 在Python中,处理时区是一个常见但复杂的问题。pytz是一个Python库,它提供了对时区的精确和丰富的支持。pytz库是datetime模块的补充,它允许更准确地处理时区信息。pytz库包括了IANA时区数据库,这个数据库包含了全球的时…...
第六讲:AD、DA的工作原理及实现、运放电路
DA 数模转换器 (DAC) 数模转换器(Digital-to-Analog Converter,简称DAC)是一种将数字信号转换为模拟信号的电子装置。DAC在各种电子设备中广泛应用,如音频设备、通信系统、测量设备和控制系统中。以下是DAC的主要概念和应用。…...
计网ppt标黄知识点整理第(4)章节——谢希仁版本、期末复习自用
路由器:查找转发表,转发分组。 IP网的意义:当互联网上的主机进行通信时,就好像在一个网络上通信一样,看不见互连的各具体的网络异构细节。如果在这种覆盖全球的 IP 网的上层使用 TCP 协议,那么就…...
[数据集][目标检测]RSNA肺炎检测数据集VOC+YOLO格式6012张1类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):6012 标注数量(xml文件个数):6012 标注数量(txt文件个数):6012 标注…...
AndroidStudio中debug.keystore的创建和配置使用
1.如果没有debug.keystore,可以按照下面方法创建 首先在C:\Users\Admin\.android路径下打开cmd窗口 之后输入命令:keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000 输入两次密码(密码不可见,打码处随便填写没关系) 2.在build…...
什么是最好的手机数据恢复软件?6 款手机数据恢复软件 [2024 年更新]
什么是最好的手机数据恢复软件?在这篇文章中,您将了解 6 款最好的免费手机数据恢复软件,并学习如何恢复数据的完整指南。 最好的手机数据恢复软件是什么? 手机数据恢复软件是恢复智能手机中丢失或删除的文件、消息、照片和其他宝…...
力扣2653.滑动子数组的美丽值
力扣2653.滑动子数组的美丽值 计数排序:数值作为下标 记录个数 求第x小的数 : 暴力枚举负数 直到找到第x个负数 class Solution {public:vector<int> getSubarrayBeauty(vector<int>& nums, int k, int x) {const int BIAS 50;int c…...
2024-06-04 架构-不同层次的抽象的处理-分析
摘要: 2024-06-04 架构-不同层次的抽象的处理-分析. 不同层次的抽象: 将事情做不同的情况的解耦,关于在于理解事情本身的性质,如何解耦,如何处理当将事情解耦成不同的情况后,就可以针对不同的事情,最不同的处理。这么…...
MySQL——C语言连接数据库
MySQL Connection 连接数据库的客户端除了命令行式的还有图形化界面版本,网页版本,当然也包括语言级别的库或者是包,能够帮助我们直接连接数据库; 一、语言连接库下载 方式一:不建议使用,需要自己配置…...
有什么做设计接任务的网站/国家市场监管总局
https://docs.microsoft.com/zh-cn/azure/machine-learning/team-data-science-process/ 数据团队的过程 本章的目的是演示如何将数据从其原始格式加载到不同的模式,从而使各种不同类型的下游分析能够在同一数据上运行。 在编写分析甚至更好地构建可重用软件的库时…...
哈尔滨做网站价格/影响关键词优化的因素
参考链接:onjava8 函数式编程与流式编程:https://blog.csdn.net/wangzibai/article/details/108900712 Lambda表达式和流式编程:https://www.cnblogs.com/zhangyaru/p/15160621.html 【java】集合流式编程总结:https://www.cnblog…...
网站托管方式/2024年3月份病毒会爆发吗
fastFDS的客户端jar包在maven中心仓库下载的都不好使,所以我自己在网上找了一个. 通过右键项目Build Path --->Configure Build Path.. --->Add External JARS 这样导入的jar包 只存在工作环境当中。 当项目部署到tomcat以后,我们会发现 webapp文…...
常州做网站yongjiaweb/上海网站推广系统
问题 如何使写好的拦截器生效 解决 1、继承WebMvcConfigurer接口 2、重写addInterceptors方法 代码示例 public class xxxInterceptor implements HandlerInterceptor, WebMvcConfigurer {Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.…...
详情页设计ppt/针对百度关键词策划和seo的优化
参考网址,亲测可用:https://blog.csdn.net/u013400939/article/details/55223631...
wordpress 独立页面下载/自媒体营销推广方案
Allegro中封装库中的封装更新到PCB中出现焊盘中心错位 今天在画一个板子的时候,直接复制的上一个工程的LIB,在导入原理图网表更新后,焊盘中心出现错位。 使用的是一个锅仔片的封装,出现错误如下图: 从上图可以看出,这…...