如果您能点开这篇文章,说明您已对熟悉Apache HTTP Server(下文用Apache简称)配置的重要性已很清楚了,本文不在赘述,直接介入正题,请往下阅读:
为便于阅读,列出文章目录:
一、Apache 的安装说明
二、Apache 的基本配置
三、Apache 整合 Tomcat 的配置
以下为正文内容:
一、Apache 的安装说明
1、首先打开Apache官网,进入Windows版本的下载地址页面:http://archive.apache.org/dist/httpd/binaries/win32/ 并选择2.2.22_no_ssl版本的msi安装包下载(高版本的截止到本文编写时还未官网还未提供msi安装包),如图:
下载好就可以开始安装了。
2、运行刚下载好的msi文件(httpd-2.2.22-win32-x86-no_ssl.msi),安装过程如下:
点击Next,继续:
上面的Network Domain、Server Name和Email Address三项内容如果是本机用于测试个人认为填什么都没有问题,但如果是真实的网络环境域名等参数是唯一的,应该如实填写,填好后点击 Next 继续:
此处选择Custom,可以自定义安装路径等,点击 Next 继续:
红框中的内容为Apache的安装路径,可以点击Change更改,其它信息默认,点击 Next 继续:
点击 Install 开始安装:
安装过程中会弹出几个CMD窗口,会自动关闭,不用管,最后:
点击 Finish 安装完成,开始运行里输入services.msc,即可看到Apache已经注册为Windows服务了:
Windows任务栏右下角也自动开启了Apache Monitor:,如果此时Apache服务没有自动启动或者启动Apache服务时弹出类似下图中的窗口:
说明Apache默认的 80 端口已被占用了。你可以关掉占用80端口的软件,也可以更改Apache的默认配置,使其监听其它端口即可。
二、Apache 的基本配置
打开 Apache 的安装目录,其主要配置都集中在conf文件夹下的 httpd.conf 文件中,位置如图所示:
用UltraEdit 或 Notepad++打开httpd.conf文件,从上往下阅读:
1、第35行,ServerRoot 为Apache的安装路径,这个了解就可以,不用管它;
2、第46行,Listen 80 指定了 80 为Apache的默认监听端口,这里我们改成 88,防止和其它占用80端口的软件冲突。改完后在启动Windows服务中启动它,此时可以看到没有报错窗口了。打开浏览器,地址栏中输入http://localhost:88 如果看到如下信息说明Apache已经正常安装并启动成功了:
3、第172行,ServerName 为之前安装时设置的DNS域名(如果没有域名就输入IP,记得跟上端口号),#号为注释,这里去掉#号,修改后的内容如下:
ServerName 127.0.0.1:88
修改完之后,先测试下配置是否正确:打开开始菜单-》所有程序,找到Apache HTTP Server 2.2 下的Test Configuration,并运行,如图:
如果弹出的CMD串口的内容为 Syntax OK 并一闪而过,说明配置是没有问题的;否则的话会提示出错信息并停留30后才自动关闭。
4、第179行,DocumentRoot 一般为js、css、html、png、gif、jpg等静态资源文件的存放目录,这里我们定义存放在D盘的Apache_Statics文件夹下。修改后的内容如下:
DocumentRoot "D:/Apache_Statics"
5、第193行,将 Deny from all 改成 allow from all 否则访问静态文件时页面会提示 Forbidden 禁止访问的信息。修改后的内容如下图:
6、第206行,Directory 修改成和 DocumentRoot 对应的值相同,修改后的内容如下:
<Directory "D:/Apache_Statics">
7、第219行,将 Options Indexes FollowSymLinks 注释掉,并在其下追加一行 Options None。作用和 Tomcat下的conf/web.xml中的 listings 设置成 false 一样,为了避免在浏览器中列出 服务端资源 的目录结构。
三、Apache 整合 Tomcat 的配置
Apache 可通过集成不同的模块来完成默认未提供的功能,如整合 Tomcat 就需要安装 mod_jk 这个模块。通过加载这个模块并进行相应的配置,即可实现 Apache 通过监听指定的端口(上面配置了 88 端口)来解析静态资源内容,动态资源内容如 jsp、servlet、action 则交给Tomcat来解析。具体说明如下:
1、先去官网下载mod_jk模块,地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/ 选择最新版本的 mod_jk-1.2.31-httpd-2.2.3.so 下载;
2、将 mod_jk-1.2.31-httpd-2.2.3.so 文件拷贝到Apache安装目录的 modules 文件夹下,如下图:
3、在conf 文件夹(httpd.conf 所在的文件夹)新建一个 workers.properties 文件,内容如下图:
workers.tomcat_home 为 tomcat的安装路径;workers.java_home 为 jdk 的安装路径;mod_jk 一般 使用 ajp13 协议 与 tomcat 连接,默认使用8009端口,端口可以在Tomcat 的 conf/server.xml中查看,如下图:
4、在httpd.conf 的最末尾处 添加一段代码,如下图(红框内):
上述代码加载了 mod_jk 模块 和 workers.properties 文件,并定义了日志文件的输出位置(logs/mod_jk.log);ServerAdmin、DocumentRoot、ServerName和之前配置的相同即可;JkMount 指定了 那些路径 会通过 ajp13 协议 交给Tomcat 去处理,多个路径定义多个 JkMount ... ajp13 即可。这样以WEB-INF开头的或者以.action或.jsp结尾的或者以 servlet/ 开头的 URL 都会 交由 Tomcat 去解析。自此,Apache 与 Tomcat 整合完毕,通常情况下程序的静态资源部分部署到之前提到的D:\Apache_Statis文件夹下,而非静态资源则部署到Tomcat下。