apache+tomcat+php 整合与虚拟主机的配置[实践总结篇]

一.整合apache+tomcat+php

1》下载需要的软件:
Apache : apache_2.2.6-win32-x86-no_ssl.msi http://httpd.apache.org/
Tomcat : apache-tomcat-6.0.14.exe http://tomcat.apache.org/
Php : php-5.2.5-Win32.zip http://www.php.net
Mysql : mysql-5.0.45-win32.zip http://www.mysql.org
JDK : jdk-5-windows-i586.exe http://java.sun.com
JK插件 : mod_jk-1.2.26-httpd-2.2.4.so http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/mod_jk-1.2.26-httpd-2.2.4
2》安装软件
<1>安装Apache
在安装的过程中将会出现叫你填服务器的地址
我是这样写的:
127.0.0.1 或者localhost 或者是真实的ip地址或域名
127.0.0.1
your@yahoo.com 也就是你的油箱
我的Apache的安装目录是:D:\Apache2.2
<2>安装JDK环境
我的JDK的安装目录是:d:\j2sdk
并增加JAVA_HOME和PATH变量
分别是:JAVA_HOME=d:\j2sdk
PATH=%JAVA_HOME%\bin
CLASSPATH=.;c:\j2k1.5.0\lib\tools.jar;D:\jdk1.5.0\lib\dt.jar #有的说不用添加的,我也没有试,反正我的添加上了,没有问题的

<3>安装Tomcat
Tomcat我采用的是默认安装
安装目录是:D:\tomcat
端口:8080

<4>安装Mysql数据库
安装密码是:admin
数据库编码是:gbk
安装的目录是:D:\tomcat

<5>安装php
解压php-5.2.4-Win32.zip到目录:D:\root\php

3》配置服务器,使能够提供jsp,php服务
<1>配置php
将php安装目录下的php.ini-dist文件改名为php.ini
修改办法:将扩展加入文件当中
并将:
extension=php_mbstring.dll
extension=php_dbase.dll
extension=php_gd2.dll
extension=php_mysql.dll
这些扩展前面的分号去掉
我做的修改是:
extension_dir = "d:/root/php/ext/"
extension=php_mbstring.dll
extension=php_dbase.dll
extension=php_gd2.dll
extension=php_mysql.dll

<2>配置Apache
将JK插件拷贝到D:\Apache2.2\modules目录中,它的作用是将jsp请求转发给Tomcat
修改http.conf 文件在D:\Apache2.2\conf目录中
web服务的目录D:\root\webroot
主要修改:
1:修改DocumentRoot
改后的值:DocumentRoot "D:/root/webroot"
2:修改Directory
改后的值:<Directory "D:/root/webroot">
3:增加php服务功能
在ScriptAlias下面加上:
ScriptAlias /cgi-bin/ "D:/root/Apache2/cgi-bin/"
ScriptAlias /php/ "d:/root/php/"
AddType application/x-httpd-php .php

4:加载模块

加载的模块分别是php模块和jk模块
LoadModule php5_module d:\php\php5apache2_2.dll #这里不是php5apache2.dll的,注意apache的版本,老版本请使用下面的语句:
#LoadModule php5_module "d:/root/php/php5apache2.dll" # 老版本请使用此语句

LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so

5:增加tomcat转发配置
在文件结尾加入:

JkWorkersFile d:\tomcat\conf\workers.properties # workers.properties这个文件不存在,下面要手动创建此文件
JkLogFile d:\tomcat\logs\mod_jk.log
JkLogLevel info
JkLogStampformat "[%a %b %d %H:%M:%S %Y]"

#JkMount /*.jsp ajp13
#JkMount /*.do ajp13
#JkMount /Servlet/* ajp13

保存http.conf文件即可.

6:配置和Tomcat的集成
在d:/tomcat/conf目录里新建tomcat的转发器配置属性文件 workers.properties

将写好的workers.properties文件保存到该目录中
文件内容是:
workers.tomcat_home="d:\tomcat"
workers.java_home="d:\j2sdk"

worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1

修改Tomcat的配置文件:server.xml

<Host name="localhost" appBase="D:\root\webroot"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>

保存即可

在D:\root\webroot目录添加.html .jsp .php文件便可运行.
jsp的话还是要放入D:\root\webroot\root\*.jsp这样才能在http://localhost/*.jsp显示出来

二.虚拟主机的配置

1>.修改Apache的虚拟主机配置文件,由于我们用的是apache2.2版本的,所以使用的是一个单独的虚拟主机配置文件,在D:\Apache2.2\conf\extra目录里的httpd-vhosts.conf,别忘记了在httpd.conf文件里把启用虚拟主机配置文件这一行的注释去掉.如果您使用的是老版本的apache,可以直接在修改conf/httpd.conf文件,在文件尾部加入:

NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin admin@aaa.com
DocumentRoot D:/root/webroot/aaa
ServerName www.aaa.com
ServerAlias *.aaa.com
DirectoryIndex index.jsp index.php index.htm index.html
ErrorLog logs/aaa.example.com-error_log
CustomLog logs/aaa.example.com-access_log common

#重新加载文件类型,不加载好像不行的,如果使用的是httpd.conf文件的话,好像不用修改的
JkMount /*.jsp ajp13
JkMount /*.do ajp13
JkMount /Servlet/* ajp13

</VirtualHost>

<VirtualHost *:80>
ServerAdmin admin@bbb.com
DocumentRoot D:/root/webroot/bbb
ServerName www.bbb.com
ServerAlias *.bbb.com
DirectoryIndex index.jsp index.php index.htm index.html
ErrorLog logs/bbb.example.com-error_log
CustomLog logs/bbb.example.com-access_log common

#重新加载文件类型,不加载好像不行的,如果使用的是httpd.conf文件的话,好像不用修改的
JkMount /*.jsp ajp13
JkMount /*.do ajp13
JkMount /Servlet/* ajp13

</VirtualHost>

2>.修改D:\tomcat\server.xml 文件:

<Host name="www.aaa.com" appBase="D:\root\webroot\aaa"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<alias>aaa.com</alias>
<alias>aaa</alias>
<Context path="" docBase="D:\root\webroot\aaa" debug="0" reloadable="true"/>
</Host>

<Host name="www.bbb.com" appBase="D:\root\webroot\bbb"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<alias>bbb.com</alias>
<alias>bbb</alias>
<Context path="" docBase="D:\root\webroot\bbb" debug="0" reloadable="true"/>
</Host>

同时在D:\root\webroot\aaa和D:\root\webroot\bbb放入相应的测试文件,重启Apache与Tomcat.
注:现在jsp文件不用放入ROOT目录中

按上面的做法应该可以实现虚拟主机的功能,如果有什么问题可以经我留言.

Leave a Reply