Believe it,do it!

Ideal is the beacon. Without ideal, there is no secure direction; without direction ,there is no life.
理想是指路明灯。没有理想,就没有坚定的方向;没有方向,就没有生活。
CTRL+T eclipse
posts - 35, comments - 3, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Apache整合Tomcat

Posted on 2012-02-08 19:30 三羽 阅读(1164) 评论(0)  编辑  收藏

 

1           前言

最近有个需要我的团队开发一个BBS,当然我们不会自己去开发,因为现在成熟的BBS比比皆是,就拿Discuz来说好了,应该是目前国内比较的好的版本了吧。大家可以打开http://www.discuz.net/这个网址来访问他们的论坛,现在成熟的论坛当然是PHP的,网站上有很多的资源可以下来,比如搭建的用户手册啦,都写的非常的不错,那我为什么还要写这个文档呢,因为我发现没有基于apache下面的用户手册,因为我们已经给用户开发了一套系统是基于J2EE的,运行在Tomcat下面,当然Tomcat无法支持PHP,所以我一定要把这个论坛部署apache下面,这样能形成apache+tomcat+j2ee+php的环境即能支持java相关web技术的访问,又能支持phpweb访问,这个就是我的目的。然后我就查阅了相关的资料来搭建这个环境,中间遇到了非常多的问题,提出来跟大家说,希望能给大家一点点的帮助,能给一些自己想动手搭建apache下面论坛的朋友一点帮助,写的不好的地方往见谅,好了废话不说了,我们现在就开始。

 

2           前期准备

搭建BBS之前所需要准备的软件:

(1)       PHP

官方下载的网址:http://snaps.php.net/win32/php5.2-win32-200808060430.zip

 

(2)       Mysql

官方下载的网址:http://dev.mysql.com/downloads/

或者百度去搜索mysql,我这里给出了华军的下载:http://www.onlinedown.net/soft/3573.htm

 

(3)       Jdktomcat

这里先不写了,因为我这里搭建论坛,至于想整合的人,应该这2个都有。

Tomcat下载地址:http://apache.mirror.phpchina.co ... e-tomcat-6.0.16.zip

Jdk下载地址:http://cds.sun.com/is-bin/INTERS ... -windows-i586-p.exe

(4)       Apache

官方下载的网址:

华军的下载:http://www.onlinedown.net/soft/11528.htm

 

(5)       Discuz! 6.1.0_UC1.0.0 整合安装包【20080725

下载的网址:http://download.comsenz.com/Discuz/6.1.0/Discuz610_UC100_GBK.zip

直接下载这个DiscuzUCenter Home合在一起的,装起来特别的方便。

(6)       UCenter Home 使用手册正式发布

下载的网址:http://dz.s18.mydiscuz.com/doc/UCenter_Home_usersguide.zip

强烈建议先看这个用户手册。

 

系统约定

环境软件下载后存放位置:X:/Server_Tools

环境软件安装位置:X:/Server_Core

PHP安装位置:X:/Server_Core/PHP

MySQL安装位置:X:/Server_Core/MySQL

Apache网站站点根目录:X:/wwwroot

MySQL 数据库位置:X:/Database

Apache安装位置:X:/ Server_Core/apache

这个可以跟用户手册上一样。

 

3           安装

3.1        安装apache

安装成功,且已运行,在IE中输入http://localhost/可以看到
apache
的主页。安装成功!

接下来就需要配置httpd.conf文件, apache的配置文件是httpd.conf,位于apache根目录的下的conf文件夹下

(1).修改默认网站根目录:
X:/下建立文件夹wwwroot,以此作为网站的根目录
DocumentRoot "X:/
 Server_Core /Apache Group/Apache2/htdocs"
改为DocumentRoot "X:/wwwroot"

注意:Apache修改DocumentRoot后访问页面出现403错误,解决办法如下:

修改Apache配置文件httpd.conf中的:

<Directory />
     Options FollowSymLinks
     AllowOverride None
     Order deny,allow
     Deny from all
     Satisfy all
</Directory>

<Directory />
     Options FollowSymLinks
     AllowOverride None
     Order deny,allow
#     Deny from all
     Satisfy all
</Directory>

即删除Deny from all

(2).修改默认主页
当访问目录时,apache会自动导入的主页,优先级以先后顺序为准
DirectoryIndex index.html改为
DirectoryIndex index.html index.jsp index.php default.jsp default.php index.html.var

 

(3).  Apache 解析 php 页面

用你喜欢的文本编辑器打开httpd.conf文件,让我们加几行进去,这样我们Apache 就可以解析.php .phps文件了。我们需要注意conf文件的两个部分,第一部分是 Dynamic Shared Object (DSO) Support list,第二部分是 cgi-bin directory

首先让我们找到如下所示的 DSO 列表. 


# Dynamic Shared Object (DSO) Support 
# 
# to be able to use the functionality of a module which was built as a DSO you 
# have to place corresponding `LoadModule' lines at this location so the 
# directives contained in it are actually available _before_ they are used. 
# Statically compiled modules (those listed by `httpd -l') do not need 
# to be loaded here. 
# 
# Example: 
# LoadModule foo_module modules/mod_foo.so 
这还有许多,一直找到最后一行:

#LoadModule ssl_module modules/mod_ssl.so 
上面一行是该列表的最后一行,按回车产生一个空的行,在这个空行内加入下面这行:

LoadModule php5_module X:/Server_Core/PHP /
 php5apache2_2.dll

注意:这里是根据你自己apachephp的版本来确认的,如果你是PHP4设置就不一样了,有可能是:

LoadModule php4_module X:/Server_Core /php/sapi/php4apache2.dll

在关闭conf文件之前,我们需要再加入两行。找到CGI-BIN目录,为了节省时间,可以这样找:按CTRL+F(译者注:如果你是在记事本而不是写字板里编辑这个文本,那么,应该用快捷键F3)查找 <Directory "C:/Apache2/cgi-bin"> ,在第二个</Directory>后面两次回车,以便加入下面两行:
AddType application/x-httpd-php .php .phtml .php3 .php4 
AddType application/x-httpd-php-source .phps 
添加好后,保存你的conf文件,并重新启动你的apache服务器,如果不能启动apache,这个时候要查看哪里设置错误了。

 

3.2        安装PHP

(1) 解压缩下载的 php-5.2.4-Win32.zip 文件,并将其复制到:X:/Server_Core/PHP 

(2) 进入 X:/Server_Core/PHP 文件夹,将 php.ini-dist 重命名为 php.ini 

(3) 打开 php.ini 文件,找到:extension_dir = "./"

将其改为;

extension_dir = "X:/Server_Core/PHP/ext"

(4) 找到:Windows Extensions

 Windows Extensions 下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)

extension=php_mbstring.dll

extension=php_gd2.dll

extension=php_mysql.dll

(5) 找到:

disable_functions =

改为:

disable_functions = phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

(6) 保存 php.ini 文件,并将其复制到 C:/Windows/

以上是用户手册的配置方法,可以按照如上的方法配置PHP,没有问题,但是中间我们会有一些东西需要更改进行校验,避免后期部署产生问题。

在第(5)步

disable_functions =phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

去掉红色部分的字,这个是PHP的一个函数,官方的把这个函数给禁用了,造成函数不能运行,先把“phpinfo”先去掉,可以让我们测试PHP的环境有没有部署好。

 

现在就开始测试我们的PHP环境部署好了没有?

打开apache,在X:/wwwroot建立phpinfo.php,编辑输入如下内容

<?php

phpinfo();

?>

保存。

重新启动apache

IE中输入http://localhost/phpinfo.php ,如果出现php的环境变量,说明php,安装成功一半,为什么说一半呢,因为有可能你的机器以前装过php,可能配置文件的读取是不正确的。

现在就让我们校对下相关的配置正确不?

现在特别要注意:红色框框出现的php.iniC:/Windows/,如果不是就需要你注意了,这个时候需要删除其他路径下面的配置文件,然后重新启动apache

如果这个成功了以后,这样PHP就完全的成功了,这个时候可以把这个phpinfo的函数重新加入disable_functions中去了。

现在php也配置好了,现在就开始部署工程吧。

 

3.3        安装MYSQL

Mysql的安装完全按照用户手册上的内容进行安装就ok了,不过有些机器因为环境的问题可能相关mysql的动态链接库dll需要进行更改。

 

(4) 准备 LibMySQL 动态链接库

 X:/Server_Core/MySQL/bin/libmySQL.dll 文件复制到 C:/Windows/System32 

在安装手册是拷贝了mysql的安装目录的libmySQL.dllsystem32下面,在后期安装BBS验证数据库的时候就会不通过,

重要:需要复制php目录下的libmysql.dll文件到system32下。

 

3.4        安装Discuz论坛

(1)       X:/wwwroot/下面建立bbs目录

(2)       讲下载好的Discuz610_UC100_GBK.zip打开,

        然后把upload下面所有文件拷贝到你的X:/wwwroot/bbs/下面。

(3)       重新启动apache

(4)       完毕后,在浏览器中运行安装程序(http://localhost/install)进入准备安装页面,如下图所示:

 

(5)       验证数据库安装

有些安装不能通过,需要留意下3.3安装mysql这个地方。

恭喜你成功安装了BBS了,这个时候你就可以享受自己的成果了。

由于apache已经占了机器的80端口,如果你原先需要有Tomcat80端口上跑的就麻烦了,这个时候就需要往下看了,这个时候我们需要整合apacheTomcat了。

 

3.5        整合Tomcatapache

整合,需要下载JK-1.2.26-httpd-2.2.4
下载地址:
http://www.apache.org/dist/tomca ... 2.26-httpd-2.2.4.so
注意JK的版本一定要与Apache版本相同。如果你的版本与我的不同,可以去官网下载,有多种版本,适用于各种操作系统,下载适用的既可,地址:
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/

 

1配置Tomcat
查找Tomcat目录下的 conf/server.xml文件,在<host></host>中间加入以下语句以修改其默认的目录:

<Context path="" docBase="X:/wwwroot" reloadable="true" crossContext="true"/>

在这里,如果 path 不为空,则设置的是虚拟目录,path 的值为虚拟目录名。Docbase表示你现在工程的目录,工程的目录要在X:/wwwroot下面。

查找Tomcat目录下的 conf/workers.properties文件,并对比下方文本内容,如有不同处,以下方文本为准进行修改。

workers.tomcat_home=D:/Program Files/Tomcat #mod_jk模块知道Tomcat的位置
workers.java_home=D:/Program Files/Java/jre1.6.0_07 #
mod_jk模块知道jre的位置
ps=/
worker.list=ajp13 #
模块版本
worker.ajp13.port=8009 #
工作端口,若没占用则不用修改
worker.ajp13.host=localhost #
本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13 #
类型
worker.ajp13.lbfactor=1 #
代理数,不用修改

如果此文件不存在,则依以上内容创建。对Tomcat的设置进行任何修改后都要重启才可以生效。

2)配置Apache
打开D:/Program Files/Apache2.2/conf下的httpd.conf,在最后加入下面这段代码并保存。

LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so
#
此处mod_jk的文件为你下载的文件

JkWorkersFile "D:/Program Files/Tomcat/conf/workers.properties"
#
指定tomcat监听配置文件地址
JkLogFile "D:/Program Files/Tomcat/logs/mod_jk2.log" 
#
指定日志存放位置
JkLogLevel info

JkMount /servlet/* ajp13 
#
Apache支持对servlet传送,用以Tomcat解析

JkMount /*.jsp ajp13 
#
Apache支持对jsp传送,用以Tomcat解析
JkMount /*.do ajp13 
#
Apache支持对.do传送,用以Tomcat解析

注意:以上语句的基本意思是:
loadModule
一行:加载mod_jk.dll动态链接库模块,使之与tomcat通讯
jkWorkersFile:
指明工作时tomcat相关文件workers.properties位置
jkMount:
两行指明当遇到*.jspservlet时,交由ajp13协议,继而转发给tomcat处理。

 

3)设置tomcat监听端口,找到下面的内容:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
 port="8080" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="0"
useURIValidationHack="false" disableUploadTimeout="true" />
默认的端口是8080,但这个大家都知道,最好修改一下,假设修改为:8123,则如下
:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
 port="8123" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="0"
useURIValidationHack="false" disableUploadTimeout="true" />
3.
找到以下8009端口的地方,这个很重要,通过8009,tomcatapache互相通讯,如果下面的部分

<!---->注释掉,一定要把<!---->去掉.
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="0"
useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>

 

4)配置httpd.conf文件
这种方法把tomcatapache的根目录设置为同一目录,但是必须限制客户对目录下一些文件的访问,比如存入class
web-inf,在httpd.conf下添加以下代码:

#deny the access to WEB-INF
<Directory ~ "/WEB-INF/"> 
Order allow,deny 
Deny from all 
</Directory> 
 
这样,当试图记问http://localhost/web-inf/时,apache将会拒绝.

到此为至,tomcatapache的整合就完成啦.重新启动tomcatapache,
 
jsp网页放到X:/wwwroot/下,例如
:
 <html>
<h1>JSP test<hr>

<%out.println("Hello World!");%>

</html>
存为index.jsp,在IE中输入
http://localhost:8123/index.jsp
如果出现了
Hello World!
刚说明tomcat运行正常,在IE中输入http://localhost/index.jsp,如果也出现
Hello World!
恭喜你!整合成功啦,你在jsp漫长艰辛的道路上迈出了一大步~!


只有注册用户登录后才能发表评论。


网站导航: