导读:本文以 IIS7.5 为例,记录在为 IIS 添加 jsp & PHP & Python 支持过程中的关键点。所有操作已经设置正确,工作正常。

java项目能在IIS上部署吗 iis支持java_JSP

一、支持 jsp & PHP

    为便于服务器下所有网站无需重复设置,以下操作如无特殊说明的均请在 IIS 服务器顶层操作:


java项目能在IIS上部署吗 iis支持java_PHP_02

 

以下操作参考自: ,

原文有少量版本不匹配的问题,导致安装设置后无法工作,本文为操作实践过程中的修正整理记录。

    因为 Resin 可同时支持 jsp 和 PHP,而且我平常大多数使用的是 IIS ,而且 Resin 作为中小型运用服务器也是足够的,故希望通过 IIS 对它们进行同时解析,便于学习开发部署。

1.下载安装 JDK

    因为 Resin 需要 JAVA 运行环境支持,故先针对你自己服务器操作系统先下载 JDK 进行安装,我的是 Win2008R2,故下载 jdk-8u172-windows-x64.exe 进行安装。

    安装完成后,在系统环境变量中添加 JDK 安装位置的环境变量,如下设置:

JRE_HOME=C:\Program Files\Java\jre1.8.0_172
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_172
CLASSPATH=.;%JAVA_HOME%\lib\;%JRE_HOME%\lib\;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
PATH=;%path%;%JAVA_HOME%\bin\;%JRE_HOME%\bin\;%JAVA_HOME%\lib\;%JRE_HOME%\lib\

注意:以上设置在 DOS 下使用 set 命令设置是无效的,请在我的电脑上单击鼠标右键→属性→高级→环境变量,里面手动设置,如下图:

java项目能在IIS上部署吗 iis支持java_Python_03

2.下载安装 resin

在:http://caucho.com/products/resin/download 选择你需要的版本下载(此处有最新版本),建议下载 Resin Pro ,便于测试我选择下载最新版本 resin-pro-4.0.61.zip,下载的是绿色安装包,直接解压即可,如解压到:D:\resin-pro-4.0.61

添加安装路径到系统环境变量: RESIN_HOME = D:\resin-pro-4.0.61

java项目能在IIS上部署吗 iis支持java_Python_04

3.复制 resin 文件

如果目录 C:\inetpub\scripts 不存在则建立目录,根据你的操作系统位数,将 D:\resin-pro-4.0.61\win64 或 D:\resin-pro-4.0.61\win32 下的所有文件复制到 C:\inetpub\scripts 下,我的系统 Win2008R2 是64位系统,故复制 D:\resin-pro-4.0.61\win64 下的文件。

关于 resin.ini 文件(引用内容,暂未经证实,我目前只是一个站点测试,没建立这个文件。):

(官方的文档上说只有需要建立多个站点的时候才必须使用 resin.ini 。如果只有一个站点就没必要新建resin.ini。推荐使用)

如有需要,在 C:\inetpub\scripts 下新建 resin.ini 文件,文件内容为以下两行:

ResinConfigServer localhost 6802

IISPriority high

4.设置IIS

(此处以 IIS7.5 为例,故需修改参考文档中的操作)

配置 ISAPI 和 CGI 限制

打开 ISAPI 和 CGI 限制,点击添加,

ISAPI 或 CGI 路径:C:\inetpub\scripts\isapi_srun.dll

描述:为了便于区分直接写 resin

勾选:允许执行扩展路径

确定保存。

java项目能在IIS上部署吗 iis支持java_java项目能在IIS上部署吗_05

添加处理程序映射

  添加 JSP 支持:

  打开“处理程序映射”,点击右上角:添加模块映射

  请求路径: *.jsp

  模块:选择: IsapiModule 

  可执行文件:同ISAPI 或 CGI 路径:C:\inetpub\scripts\isapi_srun.dll

  名称:为了便于区分写 resin-jsp

  确定保存

  出现弹出框,点“是”。

添加完成。

java项目能在IIS上部署吗 iis支持java_java项目能在IIS上部署吗_06

添加 PHP 支持:

打开“处理程序映射”,点击右上角:添加模块映射

请求路径: *.php

模块:选择: IsapiModule 

可执行文件:同ISAPI 或 CGI 路径:C:\inetpub\scripts\isapi_srun.dll

名称:为了便于区分写 resin-php

确定保存

出现弹出框,点“是”。

添加完成。

java项目能在IIS上部署吗 iis支持java_JSP_07

最后重启 IIS 。

5.运行 resin

执行 resin 安装目录下的 setup.exe,检查各项参数是否正确,按需要进行适当修改,我一般是直接默认设置,如下图:

java项目能在IIS上部署吗 iis支持java_PHP_08

然后点击:Install/Chang 按钮,等待它自动安装完成。

 

java项目能在IIS上部署吗 iis支持java_JSP_09

若要增加 resin 服务器,请设置 Services 为:New Service ... ,即可增加第二个 resin 服务。

注意: jsp 和 php 网页默认放置在: resin 安装目录下的 .\webapps\ROOT 内。但是,可将其合并到 IIS 网站目录内:

打开 resin 安装目录下 D:\resin-pro-4.0.61\conf\resin.xml  文件,找到以下内容:

<host id="" root-directory=".">
      <!--
         - webapps can be overridden/extended in the resin.xml 
        -->
      <web-app id="/" root-directory="webapps/ROOT"/>

    </host>

将其中的: webapps/ROOT  修改为你 IIS 网站绝对路径,如 :

<host id="" root-directory=".">
      <!--
         - webapps can be overridden/extended in the resin.xml , webapps/ROOT
        -->
      <web-app id="/" root-directory="D:/webroot/site1"/>

    </host>

之后重启一次 Resin-app-0 服务,这样JSP、PHP文件内就可以直接使用网站目录下的相对路径资源了。如:下面的 t.php内可以引用 <img src="\img\close.png" /> :

<html>
<head>
<title>test jsp & php </title>
</head>
<body>
Hello World!!!<img src="\img\close.png" />
<br/>
<?=phpinfo()?>
</body>
</html>

安装完服务后,默认是不启动的(随操作系统自动启动),打开系统服务,手动启动一次 Resin-app-0 服务:

java项目能在IIS上部署吗 iis支持java_JSP_10

6.测试

首先测试 resin 服务本身是否运行正常:

打开浏览器,访问:http://127.0.0.1:8080/ ,因为安装包自带了一个 index.jsp 页面,因此,访问该链接后,如果你服务器8080端口未冲突,那么应该可以看见这个“首页”,如下图:

java项目能在IIS上部署吗 iis支持java_IIS支持_11

若出现端口冲突,请打开安装目录下:.\conf\resin.properties ,找到:

# http          : 8080

app.http          : 8080

# app.https         : 8443

web.http          : 8080

# web.https         : 8443

修改:app.http: 8080 和 web.http: 8080 为可用端口,如:8011 ,

java项目能在IIS上部署吗 iis支持java_JSP_12

修改完成后保存,重启 Resin-app-0 服务(参照上面第5条),重新用新端口访问,即可看见 resin 默认的首页。

java项目能在IIS上部署吗 iis支持java_JSP_13

其次,测试与 resin 与 IIS 配合是否正常:

测试 JSP:

打开浏览器,访问你的 IIS 根目录\index.jsp ,按照以上设置,应该能正确工作,如下图:

java项目能在IIS上部署吗 iis支持java_PHP_14

测试 php :

用记事本编写 t.php:                  

<html>

<head>

<title>test jsp & php </title>

</head>

<body>

Hello World!!!

<br/>

<?=phpinfo()?>

</body>

</html>

保存在 resin 安装目录下的 .\webapps\ROOT 内。

打开浏览器,访问你的 IIS 根目录\t.php  ,按照以上设置,应该能正确工作,如下图:

java项目能在IIS上部署吗 iis支持java_PHP_15

二、支持 Python

    为便于服务器下所有网站无需重复设置,以下操作请在 IIS 服务器顶层操作:

java项目能在IIS上部署吗 iis支持java_PHP_16

    以下操作参考自以下两处,

    参考:http://www.runoob.com/python/python-install.html

    参考:

    本文为操作实践过程的整理记录。

1.安装 python

    鉴于 python 现在比较热门,故此处略。

2.设置环境变量    

    添加 python 安装路径如:D:\Python27 ,到系统变量 path

3.检查 IIS,需要安装CGI    

java项目能在IIS上部署吗 iis支持java_IIS支持_17

java项目能在IIS上部署吗 iis支持java_PHP_18

4.配置 ISAPI 和 CGI 限制

    打开 ISAPI 和 CGI 限制,点击添加,根据 python 安装路径设置:

    ISAPI 或 CGI 路径:D:\Python27\python.exe %s %s

    描述:为了便于区分直接写 python

    勾选:允许执行扩展路径

    确定保存。

java项目能在IIS上部署吗 iis支持java_IIS支持_19

5.添加处理程序映射

java项目能在IIS上部署吗 iis支持java_PHP_20

    打开“处理程序映射”,点击右上角:添加模块映射

    请求路径: *.py

    模块:选择:CgiModule    

    可执行文件:同ISAPI 或 CGI 路径:D:\Python27\python.exe %s %s

    名称:为了便于区分直接写 python

    确定保存

java项目能在IIS上部署吗 iis支持java_Python_21

    出现弹出框,点“是”。

java项目能在IIS上部署吗 iis支持java_PHP_22

    添加完成。

java项目能在IIS上部署吗 iis支持java_Python_23

6.测试Hello World!!!

用记事本编写 t.py 保存,如下:

#!/usr/bin/env python

import cgi

print("Content-Type: text/html\n")

print("Hello World!!!")

在浏览器输入服务器路径访问:

java项目能在IIS上部署吗 iis支持java_java项目能在IIS上部署吗_24

三、后记

至此,所有设置完成,再次提醒注意:

注意: jsp 和 php 网页默认放置在: resin 安装目录下的 .\webapps\ROOT 内。但是,可将其合并到 IIS 网站目录内。

注意:Python 网页 *.py 应放置在 IIS 网站目录下。