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。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/22417.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/22417.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/22417.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【TB作品】msp430g2553單片機,讀取GY-30光強,串口發送

硬件 //GY-30 //SCL–P1.4 //SDA–P1.5 //VCC–3.3V //GND–GND //ADDR–不接 部分程序 #include <msp430.h> #include "gy30.h"void Send_Byte(char data) {while (!(IFG2 & UCA0TXIFG)); // USCI_A0 TX buffer ready?UCA0TXBUF data…

藍橋杯物聯網競賽_STM32L071_20_用printf將數據顯示在OLED上

需求&#xff1a; 第十五屆國賽確實有點變態&#xff0c;顯示部分大概有6個所以需要大量將sprintf與OLED_ShowString配合使用才能顯示相應格式的數據&#xff0c;所以我在想能不能簡化一下這一部分直接用寫好的printf語句將數據顯示到顯示屏上呢&#xff1f; 代碼&#xff1a…

樹--搜索二叉樹

現有一棵結點數目為n的二叉樹&#xff0c;采用二叉鏈表的形式存儲。對于每個結點均有指向左右孩子的兩個指針域&#xff0c;而結點為n的二叉樹一共有n-1條有效分支路徑。那么&#xff0c;則二叉鏈表中存在2n-(n-1)n1個空指針域。那么&#xff0c;這些空指針造成了空間浪費。 例…

【TB作品】msp430g2553單片機,秒表,LCD1602,Proteus仿真

功能 秒表 動圖&#xff1a; 部分代碼 這段代碼是用C語言編寫的&#xff0c;用于在基于德州儀器MSP430微控制器的平臺上實現一個簡易的電子秒表功能。 #include <msp430.h> #include "LCD.h"unsigned int second 0; unsigned int millisecond10…

【HarmonyOS】應用振動效果實現

一、問題背景&#xff1a; 應用在強提醒場景下&#xff0c;一般會有馬達振動的效果&#xff0c;提示用戶注意力的關注。 比如消息提醒&#xff0c;掃碼提示&#xff0c;刪除鍵確認提示等。 針對高定制化或者固定的振動方式&#xff0c;我們需要有不同的方案實現&#xff0c;馬…

php項目加密源碼

軟件簡介 壓縮包里有多少個php就會被加密多少個PHP、php無需安裝任何插件。源碼全開源 如果上傳的壓縮包里有子文件夾&#xff08;子文件夾里的php文件也會被加密&#xff09;&#xff0c;加密后的壓縮包需要先修復一下&#xff0c;步驟&#xff1a;打開壓縮包 》 工具 》 修…

【云原生】Kubernetes----Ingress對外服務

目錄 引言 一、K8S對外方式 &#xff08;一&#xff09;NodePort 1.作用 2.弊端 3.示例 &#xff08;二&#xff09;externalIPs 1.作用 2.弊端 3.示例 &#xff08;三&#xff09;LoadBalancer 1.作用 2.弊端 &#xff08;四&#xff09;Ingress 二、Ingress的…

Linux文件I/O與標準I/O緩沖機制及性能分析

目錄 1、文件I/O 1.1、數據緩沖機制 1.2、性能影響 2、標準I/O 2.1、數據緩沖機制 2.2、性能影響 3、文件I/O與標準I/O的對比 在Linux中&#xff0c;文件I/O和標準I/O是兩種常見的I/O操作方式&#xff0c;它們在數據緩沖的原理和機制上有所不同。理解這些原理和機制對優…

gitea的git庫備份與恢復

文章目錄 gitea庫的備份與恢復概述筆記實驗環境更新git for windows更新 TortoiseGit備份已經存在的gitea的git庫目錄使用gitea本身來備份所有git庫目錄將gitea庫恢復到新目錄m1m2m3啟動gitea - 此時已經恢復完成FETCH_HEAD 中有硬寫位置再查一下app.ini, 是否改漏了。m1m2 總結…

容器中運行ip addr提示bash: ip: command not found【筆記】

容器中運行ip addr提示bash: ip: command not found 原因沒有安裝ip命令。 rootdocker-desktop:/# ip addr bash: ip: command not found rootdocker-desktop:/# apt-get install -y iproute2

谷歌廣告怎么開戶?Google推廣開戶費用、代運營流程、代理開戶、投放價格

谷歌推廣&#xff08;Google Ads廣告&#xff09;是指Google公司面向全球用戶&#xff0c;在其自有搜索引擎、YouTube視頻、Gmail郵箱等各類自有產品提供的廣告位中&#xff0c;展示的各類互聯網廣告。谷歌廣告&#xff0c;有很多種衍生的叫法&#xff1a;谷歌SEM、谷歌競價、谷…

渦輪流量傳感器

渦輪流量傳感器是一種精密的流量測量儀表&#xff0c;廣泛應用于石油、化工、冶金、科研等領域的計量和控制系統。配備有衛生接頭的渦輪流量傳感器還可以應用于制藥行業。該傳感器的主要工作原理基于流體動力學和電磁感應原理&#xff0c;當流體流經傳感器時&#xff0c;流體的…

cron表達式的講解及其在若依定時任務中的使用

目錄 前言介紹一 cron的結構二 各域的含義三 常用cron表達式 實例1 后臺添加定時任務處理類2 前端新建定時任務信息3 點擊執行一次4 啟動定時任務 前言 在實際項目開發中Web應用有一類不可缺少的&#xff0c;那就是定時任務。 定時任務的場景可以說非常廣泛&#xff0c;比如某…

JS跨頁面或跨JS文件對變量賦值

JS跨頁面或跨JS文件對變量賦值&#xff0c;這是很小的一個問題。 但問題雖小&#xff0c;卻總覺得有點不夠自然&#xff0c;不爽。 為什么呢&#xff1f;訪問一個頁面上的變量不是什么難事&#xff0c;比如用parent.變量名&#xff0c;或者windows名.變量名&#xff0c;都可以…

Day42 代碼隨想錄打卡|二叉樹篇---二叉樹的所有路徑

題目&#xff08;leecode T257&#xff09;&#xff1a; 給你一個二叉樹的根節點 root &#xff0c;按 任意順序 &#xff0c;返回所有從根節點到葉子節點的路徑。 葉子節點 是指沒有子節點的節點。 方法&#xff1a;本題需要對二叉樹中的所有路徑進行遍歷&#xff0c;并且是…

vue-router 源碼分析——2. router-link 組件是如何實現導航的

這是對vue-router 3 版本的源碼分析。 本次分析會按以下方法進行&#xff1a; 按官網的使用文檔順序&#xff0c;圍繞著某一功能點進行分析。這樣不僅能學習優秀的項目源碼&#xff0c;更能加深對項目的某個功能是如何實現的理解。這個對自己的技能提升&#xff0c;甚至面試時…

CSS選擇器和樣式

CSS CSS&#xff1a;選擇器&#xff1a;通配符選擇器&#xff1a;基本選擇器&#xff1a;標簽選擇器&#xff1a;類選擇器&#xff1a;ID選擇器&#xff1a;基本選擇器的優先級別: 群組選擇器:派生選擇器&#xff1a;后代選擇器&#xff1a;子代選擇器&#xff1a;相鄰兄弟選擇…

sed批量修改shell腳本內容

需求:郵件服務器腳本ip做了切換,由原先的11.22.33.44,切換為11.22.33.55 需要把所有使用了11.22.33.44該ip的腳本改為11.22.33.55 示例: #建2個測試文件 cat test1.txt 11.22.33.44 hello 11.22.33.44cat test2.txt 11.22.33.44 world#1.先找出哪些腳本包含該ip grep 11.22.3…

正邦科技(day3)

出廠測試 設備校準 這個需要注意的是校準電流、電壓、電感的時候有時候負感器會裝反&#xff0c;mcu會壞&#xff0c;需要flash一下清空內存

【貓狗識別系統】圖像識別Python+TensorFlow+卷積神經網絡算法+人工智能深度學習

貓狗識別系統。通過TensorFlow搭建MobileNetV2輕量級卷積神經算法網絡模型&#xff0c;通過對貓狗的圖片數據集進行訓練&#xff0c;得到一個進度較高的H5格式的模型文件。然后使用Django框架搭建了一個Web網頁端可視化操作界面。實現用戶上傳一張圖片識別其名稱。 一、前言 …