设为首页 收藏本站
查看: 835|回复: 0

[经验分享] windows 2003 下的 apache(2.2.23)+tomcat(7.0.35)+php(5.3.21) 集成

[复制链接]

尚未签到

发表于 2015-11-2 12:21:00 | 显示全部楼层 |阅读模式
  

买了一个VPS

由于需求,需要在上面配置可以支持discuz论坛,也可以支持j2ee的项目

配置这个环境搞了我1天多才搞出来,之间很曲折啊,于是用记录下过程,希望能帮助需要帮助的人。

  网上非常多的 apache+tomcat+php

但是都非常旧了,不适合,而且有的地方还有误导。

  

vps装的是 windows 2003 sp2的系统
  首先是准备软件
  discuz http://www.discuz.net/thread-2744369-1-1.html

当前稳定版是 2.5 ,但是必须要5.0以上的php支持
  php http://windows.php.net/download

(我选的是稳定版5.3.21,php版本5.3.21以上后,不分V6和V9,网上很多地方说用apache用V6,IIS用V9当时就让我郁闷半天。因为官网上没有V6版本,只有V9,于是索性我下了一个V9,下载下来安装的时候会发现有apache和iis的选项,所以5.3.21以上的版本不分V6,V9,直接支持apache和iis,还有需要注意的是,5.3.21的php对应的apache版本是2.2.x,所以apache版本也就定了)
  apache http://httpd.apache.org/download.cgi#apache22

现在稳定版是2.2.23
  tomcat http://tomcat.apache.org/download-70.cgi

我选的是32位的解压版7.0.35(个人喜好,我喜欢解压了以后手动批处理注册为系统服务)
  

Tomcat Connectors JK (Apache就是通过这个插件连接的tomcat)http://apache.dataguru.cn//tomcat/tomcat-connectors/jk/binaries/windows/

要根据apache的版本选择下载 我的是apache2.2.x的 所以下载的是 tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip
  我网站根路劲是在D:\WebRoot

D:\WebRoot\qqtool8 放discuz的论坛 域名
http://www.qqtool8.com 以下就称A网站

D:\WebRoot\hainayun 放j2ee的海娜韵网站 域名
http://www.hainayun.com 以下就称B网站

D:\WebRoot\heyefan 放j2ee的荷叶饭网站 域名
http://www.heyefan.cn 以下就称C网站

A网站用php解析,B和C网站都部署在同一个tomcat

  
  第一步:安装apache

apache的安装很简单,不用多说

我的安装路劲是D:\Program Files\Apache Software Foundation\Apache2.2

  安装完了可以启动服务 然后在浏览器输入网址http://localhost
看到 it works 就OK了

启动不了看错误日志,注意windows 2003的vps自动开启了iis 需要手动停止并禁用,避免80端口冲突。

  
  第二步:安装php

php安装也简单,我安装的时候把php附加的所有功能都安装上了,表达式什么的,注意到了一个安装界面后 会让你选择 httpserver  有apache 2.2.x 有iis..

  所以我这里直接选apache
  php安装路劲为:D:\Program Files\PHP
  注意安装好了以后 会直接在D:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf

里的最末尾 大概494行处,自动加上php的环境

  

<span style=&quot;font-size:12px;&quot;>#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir &quot;D:\Program Files\PHP\&quot;
LoadModule php5_module &quot;D:\Program Files\PHP\php5apache2_2.dll&quot;
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL</span>
  所以不用在apache的httpd.conf里面再手动配置php其他东西了

再看D:\Program Files\PHP\php.ini

查找short_open_tag = Off把它修改成short_open_tag = On,让其支持短标签。

不知道这个短标签干啥的,如果没用就什么都不用改了,网上说的那些表达式,都是默认开启了的,不知道是不是我安装的时候选了所有功能的结果。

  安装好了以后自己放一个如index.php的文件到D:\Program Files\Apache Software Foundation\Apache2.2\htdocs(apache的默认web路劲)访问http://localhost/index.php
看php是否正常

  

第四步:部署tomcat

我的tomcat解压在D:\Program Files\Tomcat

然后手动写个批处理注册为系统服务

不会的可以看看我的这篇文章

http://blog.iyunv.com/hexin373/article/details/6631568

启动tomcat的系统服务就可以输入
http://localhost:8080访问了
  这个时候 php 和 jsp都可以单独运行了。
  

第五步:集成apache&#43;tomcat&#43;php

首先说一下原理和目的:

apache收到A网站的请求要用php解析 而且网站目录是D:\WebRoot\qqtool8

apache收到B网站的请求要转发给Tomcat 然后由Tomcat解析D:\WebRoot\hainayun里面的内容

apache收到C网站的请求要转发给Tomcat 然后由Tomcat解析D:\WebRoot\heyefan里面的内容  

注意:转发这里就是关键了apache通过mod_jk插件和tomcat的AJP端口连接的,

tomcat默认的ajp端口为 8009

tomcat默认的http端口为 8080


所以这里也我是当时迷惑的地方

  当apache和tomcat集成了以后 tomcat的8080http端口就可以不用了 整行都可以注释掉...

你也可以保留,这样你可以用apache的80端口间接访问你的项目,也可以用tomcat的8080端口直接访问你的项目

  所以配置mod_jk是重点

开始配置mod_jk

1.把你的mod_jk.so(tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip)解压到D:\Program Files\Apache Software Foundation\Apache2.2\modules下面,这样apache就有了mod_jk支持。

  2.在D:\Program Files\Apache Software Foundation\Apache2.2\conf下建立名字为mod_jk.conf的配置文件,内容为:

<span style=&quot;font-size:12px;&quot;>LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat &quot;[%a %b %d %H:%M:%S %Y] &quot;
JkRequestLogFormat &quot;%w %V %T&quot;</span>
  
  3.在D:\Program Files\Apache Software Foundation\Apache2.2\conf下建立名字为workers.properties的配置文件,内容为:

worker.list=tomcat1   #这里可以有多个tomcat,比如tomcat2  名字是取的别名,可以随意命名,不过要和后面的对应上


<span style=&quot;font-size:12px;&quot;>worker.tomcat1.port=8009
worker.tomcat1.host=127.0.0.1
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=10
#如果有tomcat2 就是如下配置
#worker.tomcat2.port=8019
#worker.tomcat2.host=127.0.0.1
#worker.tomcat2.type=ajp13
#worker.tomcat2.lbfactor=1
</span>
  
  4.在httpd.conf最末尾增加mod_jk的配置



<span style=&quot;font-size:12px;&quot;>#BEGIN TOMCAT JK#
include  conf/mod_jk.conf
#END TOMCAT JK#</span>
  
  5.查找httpd.conf中httpd-vhosts,大概在470行,Include conf/extra/httpd-vhosts.conf 取消注释,作用是让apache收到A,B,C三个域名后解析到不同的服务器
  6.编辑D:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf
  我的整体配置如下

<span style=&quot;font-size:12px;&quot;>NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot &quot;D:/WebRoot/qqtool8&quot;
ServerName www.qqtool8.com
ServerAlias www.qqtool8.com
ErrorLog &quot;logs/qqtool8.com-error_log&quot;
CustomLog &quot;logs/qqtool8.com-access_log&quot; common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot &quot;D:/WebRoot/hainayun&quot;
ServerName  www.hainayun.com
ServerAlias www.hainayun.com
ErrorLog &quot;logs/hainayun.com-error_log&quot;
CustomLog &quot;logs/hainayun.com-access_log&quot; common
<Directory &quot;D:/WebRoot/hainayun/WEB-INF&quot;>
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory &quot;D:/WebRoot/hainayun&quot;>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex index.jsp index.html index.htm
</Directory>
JkMount /* tomcat1
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot &quot;D:/WebRoot/heyefan&quot;
ServerName  www.heyefan.cn
ServerAlias www.heyefan.cn
ErrorLog &quot;logs/heyefan.com-error_log&quot;
CustomLog &quot;logs/heyefan.com-access_log&quot; common
<Directory &quot;D:/WebRoot/heyefan/WEB-INF&quot;>
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory &quot;D:/WebRoot/heyefan&quot;>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex index.jsp index.html index.htm
</Directory>
JkMount /* tomcat1
</VirtualHost>
</span>
  
  我把空&#26684;都去掉了,因为有空&#26684;apache启动不起来,报错。 这里的tomcat1对应上面的workers.properties的tomcat1

上面的属性设置我就不挨个解释了,不懂可以查api,不过直接看英文应该基本都知道是什么作用了。

  

这样配置好了以后,A网站过来的请求就直接解析到了D:/WebRoot/qqtool8

B和C网站过来的请求分发给了tomcat

  

第六步:修改tomcat的server.xml(D:\Program Files\Tomcat\conf)

在文件末尾</Engine>标签前添加


<span style=&quot;font-size:12px;&quot;><Host name=&quot;www.heyefan.cn&quot;  appBase=&quot;&quot;
unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;>
<Context path=&quot;&quot; docBase=&quot;D:\WebRoot\heyefan&quot; debug=&quot;0&quot; reloadable=&quot;true&quot; />
</Host>
<Host name=&quot;www.hainayun.com&quot;  appBase=&quot;&quot;
unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;>
<Context path=&quot;&quot; docBase=&quot;D:\WebRoot\hainayun&quot; debug=&quot;0&quot; reloadable=&quot;true&quot; />
</Host></span>
  
  作用是让tomcat支持多个项目,收到解析后解析到对应的项目路劲。

这里需要特别注意一点 这个问题曾经让我很头疼

http://blog.iyunv.com/hexin373/article/details/8291962这里有说

就是docBase和appBase  路劲只能写在docBase,如果写在了appBase,项目是能运行,但是有权限过滤的话,就不起作用!如果你有这个问题,切忌啊...

  

第七步:部署discuz

修改的配置下Apache的httpd.conf里面的三处

1.查找DirectoryIndex index.html 将其修改成DirectoryIndex index.php default.php index.html index.htm default.html default.htm (索引页)

2.查找DocumentRoot将其修改为指向你需要放置web文件的文件夹上 所以DocumentRoot就是DocumentRoot &quot;D:/WebRoot/qqtool8&quot;,根据自己配置来修改。

3.查找第2个<Directory 大概在206行,将其修改为你自己配置的DocumentRoot的路径(我的是<Directory &quot;D:/WebRoot/qqtool8&quot;>)

傻瓜式部署,把下载好的压缩包中的 upload文件夹解压到 D:/WebRoot/qqtool8

  

第八步:部署j2ee的网站

把自己项目放到对应的D:/WebRoot/hainayun和D:/WebRoot/heyefan

  

第九步:启动apache

如果不出意外,apache就能正常启动了,如果不正常,请看错误日志,如果看不到错误日志以上的每步都要确保正确,每一步配置的时候都检测下配置是否正确。

用命令行

检查错误方法:进入cmd 然后进入 Apache安装目录(具体为你自己的安装目录)\bin> httpd.exe -w -n &quot;Apache2.2&quot; -k start

Apache2.2是我的apache在windows里面的服务名,如果不一样,请修改成你自己的服务名,这样执行后就会提示你httpd.conf的哪一行有问题。

  

这里还要特别注意一点,就是apache的服务启动了,tomcat的服务也是需要启动的,不然就没有j2ee的web服务器了。刚开始我就搞不清楚配置完以后需要启动些什么。
  

这样基本上集成就弄完了。

另外linux配置思路也是一样的。

如果还有问题,就检查以上的每一步。

  

反正当时我配置搞了好久,现在总算搞好了,希望能帮助到看帖的你,呵呵....
  



版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-134074-1-1.html 上篇帖子: windows 2003 IIS 服务器设置 301重定向 出现 eurl.axd 下篇帖子: 从硬盘完整安装windows 2003(非Ghost)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表